X-Git-Url: http://www.git.cypherpunks.ru/?p=pygost.git;a=blobdiff_plain;f=pygost%2Fgost3410_vko.py;fp=pygost%2Fgost3410_vko.py;h=3f169dc106df8fba40d46cc5fb198e9dc4e23152;hp=92f4a2610d7093eb77340aaf7bc5493ad3d23983;hb=b529ed29328fafc3061c6b83358e3ee03b343189;hpb=b9ccf524fdce4b77dab1aa8020b09d7c7e1e55af diff --git a/pygost/gost3410_vko.py b/pygost/gost3410_vko.py index 92f4a26..3f169dc 100644 --- a/pygost/gost3410_vko.py +++ b/pygost/gost3410_vko.py @@ -32,11 +32,13 @@ def ukm_unmarshal(ukm): return bytes2long(ukm[::-1]) -def kek(curve, prv, pub, ukm): +def kek(curve, prv, pub, ukm, mask=None): if not curve.contains(pub): raise ValueError("pub is not on the curve") key = curve.exp(prv, pub[0], pub[1]) key = curve.exp(curve.cofactor * ukm, key[0], key[1]) + if mask is not None: + key = curve.exp(mask, key[0], key[1]) return pub_marshal(key)