X-Git-Url: http://www.git.cypherpunks.ru/?p=pygost.git;a=blobdiff_plain;f=pygost%2Ftest_gost3410.py;h=681902ce66546e1b9ef5a8ac50ff8a7e8c05e087;hp=b69afae81cd13ffe8e5f15208e06bd5e95d68c8a;hb=312c6b813adbf8a04253e3b1da28e02780c61d07;hpb=0f9eff2c693f021fd502d5a4f2b98ccc0d3e13c5 diff --git a/pygost/test_gost3410.py b/pygost/test_gost3410.py index b69afae..681902c 100644 --- a/pygost/test_gost3410.py +++ b/pygost/test_gost3410.py @@ -22,7 +22,9 @@ from pygost.gost3410 import CURVES from pygost.gost3410 import GOST3410Curve from pygost.gost3410 import public_key from pygost.gost3410 import sign +from pygost.gost3410 import uv2xy from pygost.gost3410 import verify +from pygost.gost3410 import xy2uv from pygost.utils import bytes2long from pygost.utils import hexdec from pygost.utils import long2bytes @@ -230,6 +232,22 @@ class Test34102012(TestCase): self.assertNotIn(b"\x00" * 8, s) +class TestUVXYConversion(TestCase): + """Twisted Edwards to Weierstrass coordinates conversion and vice versa + """ + def test_curve1(self): + c = CURVES["id-tc26-gost-3410-2012-256-paramSetA"] + u, v = (0x0D, bytes2long(hexdec("60CA1E32AA475B348488C38FAB07649CE7EF8DBE87F22E81F92B2592DBA300E7"))) + self.assertEqual(uv2xy(c, u, v), (c.x, c.y)) + self.assertEqual(xy2uv(c, c.x, c.y), (u, v)) + + def test_curve2(self): + c = CURVES["id-tc26-gost-3410-2012-512-paramSetC"] + u, v = (0x12, bytes2long(hexdec("469AF79D1FB1F5E16B99592B77A01E2A0FDFB0D01794368D9A56117F7B38669522DD4B650CF789EEBF068C5D139732F0905622C04B2BAAE7600303EE73001A3D"))) + self.assertEqual(uv2xy(c, u, v), (c.x, c.y)) + self.assertEqual(xy2uv(c, c.x, c.y), (u, v)) + + class Test34102012SESPAKE(TestCase): """Test vectors for multiplication from :rfc:`8133` """