X-Git-Url: http://www.git.cypherpunks.ru/?p=gogost.git;a=blobdiff_plain;f=internal%2Fgost34112012%2Fhash.go;h=2c1b4b989448076194b81d06136ca6bda460ee66;hp=5f6b707d87a05a001326d464693406e10aa60672;hb=0da4d634ac5368d024489baf4bdd5d422b84dd84;hpb=ce6c45e481a59d843a3b9caab55608c738aac2f4 diff --git a/internal/gost34112012/hash.go b/internal/gost34112012/hash.go index 5f6b707..2c1b4b9 100644 --- a/internal/gost34112012/hash.go +++ b/internal/gost34112012/hash.go @@ -21,6 +21,7 @@ import ( "bytes" "encoding/binary" "errors" + "fmt" ) const ( @@ -426,11 +427,12 @@ func (h *Hash) MarshalBinary() (data []byte, err error) { } func (h *Hash) UnmarshalBinary(data []byte) error { - if len(data) < len(MarshaledName)+1+8+3*BlockSize { - return errors.New("too short data") + expectedLen := len(MarshaledName) + 1 + 8 + 3*BlockSize + if len(data) < expectedLen { + return fmt.Errorf("gogost/internal/gost34112012: len(data) != %d", expectedLen) } if !bytes.HasPrefix(data, []byte(MarshaledName)) { - return errors.New("no hash name prefix") + return errors.New("gogost/internal/gost34112012: no hash name prefix") } idx := len(MarshaledName) h.size = int(data[idx])