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