X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=gost34112012256%2Fkdf.go;h=dc3a0a5be6a500c536a01f5bbcefd9b2d6000c12;hb=f8f91a38bd9f2d99b2b8d3785b91b69f5b20caa6;hp=eab8edc8ee33f777ad68894a8704446e0e578ec7;hpb=c07494bbd559b9d00f391e28cfd070e18afe9900;p=gogost.git diff --git a/gost34112012256/kdf.go b/gost34112012256/kdf.go index eab8edc..dc3a0a5 100644 --- a/gost34112012256/kdf.go +++ b/gost34112012256/kdf.go @@ -1,5 +1,5 @@ // GoGOST -- Pure Go GOST cryptographic functions library -// Copyright (C) 2015-2019 Sergey Matveev +// Copyright (C) 2015-2022 Sergey Matveev // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -29,12 +29,24 @@ func NewKDF(key []byte) *KDF { } func (kdf *KDF) Derive(dst, label, seed []byte) (r []byte) { - kdf.h.Write([]byte{0x01}) - kdf.h.Write(label) - kdf.h.Write([]byte{0x00}) - kdf.h.Write(seed) - kdf.h.Write([]byte{0x01}) - kdf.h.Write([]byte{0x00}) + if _, err := kdf.h.Write([]byte{0x01}); err != nil { + panic(err) + } + if _, err := kdf.h.Write(label); err != nil { + panic(err) + } + if _, err := kdf.h.Write([]byte{0x00}); err != nil { + panic(err) + } + if _, err := kdf.h.Write(seed); err != nil { + panic(err) + } + if _, err := kdf.h.Write([]byte{0x01}); err != nil { + panic(err) + } + if _, err := kdf.h.Write([]byte{0x00}); err != nil { + panic(err) + } r = kdf.h.Sum(dst) kdf.h.Reset() return r