]> Cypherpunks.ru repositories - gogost.git/commitdiff
Do not perform exponentiation if UKM=1, optimization
authorSergey Matveev <stargrave@stargrave.org>
Fri, 26 Jul 2019 10:21:13 +0000 (13:21 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 26 Jul 2019 10:21:13 +0000 (13:21 +0300)
src/cypherpunks.ru/gogost/gost3410/vko.go

index f3ea1bf1eca0d362997f027db666156d73094a65..aad430b139413de793ce3121e4b8d1d2467a6f99 100644 (file)
@@ -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