X-Git-Url: http://www.git.cypherpunks.ru/?p=gogost.git;a=blobdiff_plain;f=gost34112012256%2Fkdf.go;h=d818fb287102b403cb2cf8e7c05fdb9a40368b68;hp=43c08aea7729147ffdcd6f7ba6131be6d4eaf9df;hb=9f3355e3239fed2b0110b0724e7ba1ed509b8a19;hpb=f67aa7535756b19758df610771b36f01e8475788 diff --git a/gost34112012256/kdf.go b/gost34112012256/kdf.go index 43c08ae..d818fb2 100644 --- a/gost34112012256/kdf.go +++ b/gost34112012256/kdf.go @@ -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