]> Cypherpunks.ru repositories - gogost.git/blobdiff - gost34112012256/kdf.go
Panic on all possible hash write errors
[gogost.git] / gost34112012256 / kdf.go
index 43c08aea7729147ffdcd6f7ba6131be6d4eaf9df..d818fb287102b403cb2cf8e7c05fdb9a40368b68 100644 (file)
@@ -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