X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=gost3410%2Fvko.go;h=a6df7f402b415ddfca6126c265a2973ecb2004be;hb=f4078e53da769ade0d92e80ad9093040e7f71d58;hp=1ac5ea3722f108b7b1860bffeccb2f71b9b48b44;hpb=c40d1e5634cf6d540d908a57423f4b504e39f186;p=gogost.git diff --git a/gost3410/vko.go b/gost3410/vko.go index 1ac5ea3..a6df7f4 100644 --- a/gost3410/vko.go +++ b/gost3410/vko.go @@ -24,12 +24,13 @@ func (prv *PrivateKey) KEK(pub *PublicKey, ukm *big.Int) ([]byte, error) { if err != nil { return nil, err } - if ukm.Cmp(bigInt1) != 0 { - keyX, keyY, err = prv.C.Exp(ukm, keyX, keyY) + u := big.NewInt(0).Set(ukm).Mul(ukm, prv.C.Co) + if u.Cmp(bigInt1) != 0 { + keyX, keyY, err = prv.C.Exp(u, keyX, keyY) if err != nil { return nil, err } } - pk := PublicKey{prv.C, prv.Mode, keyX, keyY} + pk := PublicKey{prv.C, keyX, keyY} return pk.Raw(), nil }