// GoGOST -- Pure Go GOST cryptographic functions library
-// Copyright (C) 2015-2019 Sergey Matveev <stargrave@stargrave.org>
+// Copyright (C) 2015-2021 Sergey Matveev <stargrave@stargrave.org>
//
// 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
}
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