X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=gost3410%2Fvko2001.go;h=7472e29cba310920e7226bd4b5ee8d5e920a3e9c;hb=d27ade88208cf35cce14cfad2b2d7e29b68d0761;hp=c9aeada21a90a36f782a49497aaa8c4af347a813;hpb=9f3355e3239fed2b0110b0724e7ba1ed509b8a19;p=gogost.git diff --git a/gost3410/vko2001.go b/gost3410/vko2001.go index c9aeada..7472e29 100644 --- a/gost3410/vko2001.go +++ b/gost3410/vko2001.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 @@ -19,15 +19,15 @@ import ( "errors" "math/big" - "go.cypherpunks.ru/gogost/v4/gost28147" - "go.cypherpunks.ru/gogost/v4/gost341194" + "go.cypherpunks.ru/gogost/v5/gost28147" + "go.cypherpunks.ru/gogost/v5/gost341194" ) // RFC 4357 VKO GOST R 34.10-2001 key agreement function. // UKM is user keying material, also called VKO-factor. func (prv *PrivateKey) KEK2001(pub *PublicKey, ukm *big.Int) ([]byte, error) { - if prv.Mode != Mode2001 { - return nil, errors.New("gogost/gost3410: KEK2001 can not be used in Mode2012") + if prv.C.PointSize() != 32 { + return nil, errors.New("gogost/gost3410: KEK2001 is only for 256-bit curves") } key, err := prv.KEK(pub, ukm) if err != nil {