]> Cypherpunks.ru repositories - gogost.git/blobdiff - src/cypherpunks.ru/gogost/gost3410/vko.go
Forbid any later GNU GPL versions autousage
[gogost.git] / src / cypherpunks.ru / gogost / gost3410 / vko.go
index f3ea1bf1eca0d362997f027db666156d73094a65..bb10f9430b98bbf818c24e2bbb912bafb8fffa6e 100644 (file)
@@ -3,8 +3,7 @@
 //
 // 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
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// the Free Software Foundation, version 3 of the License.
 //
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,9 +24,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