From 0ccfdcc0f43ab56a10773cb0a774ba84aae752b1 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 26 Jul 2019 13:21:13 +0300 Subject: [PATCH] Do not perform exponentiation if UKM=1, optimization --- src/cypherpunks.ru/gogost/gost3410/vko.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cypherpunks.ru/gogost/gost3410/vko.go b/src/cypherpunks.ru/gogost/gost3410/vko.go index f3ea1bf..aad430b 100644 --- a/src/cypherpunks.ru/gogost/gost3410/vko.go +++ b/src/cypherpunks.ru/gogost/gost3410/vko.go @@ -25,9 +25,11 @@ func (prv *PrivateKey) KEK(pub *PublicKey, ukm *big.Int) ([]byte, error) { if err != nil { return nil, err } - keyX, keyY, err = prv.C.Exp(ukm, keyX, keyY) - if err != nil { - return nil, err + if ukm.Cmp(bigInt1) != 0 { + keyX, keyY, err = prv.C.Exp(ukm, keyX, keyY) + if err != nil { + return nil, err + } } pk := PublicKey{prv.C, prv.Mode, keyX, keyY} return pk.Raw(), nil -- 2.44.0