X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=gost34112012256%2Fkdf.go;h=2f9d1c350b9fe3a8d837b402f52fe6200566c676;hb=6d9056bfe4a2d69469a1e70f3bf08f89b377b06e;hp=43c08aea7729147ffdcd6f7ba6131be6d4eaf9df;hpb=c40d1e5634cf6d540d908a57423f4b504e39f186;p=gogost.git diff --git a/gost34112012256/kdf.go b/gost34112012256/kdf.go index 43c08ae..2f9d1c3 100644 --- a/gost34112012256/kdf.go +++ b/gost34112012256/kdf.go @@ -1,5 +1,5 @@ // GoGOST -- Pure Go GOST cryptographic functions library -// Copyright (C) 2015-2020 Sergey Matveev +// Copyright (C) 2015-2021 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