diff options
Diffstat (limited to 'test/ec/test_mult.py')
| -rw-r--r-- | test/ec/test_mult.py | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py index 6fadec7..ec26335 100644 --- a/test/ec/test_mult.py +++ b/test/ec/test_mult.py @@ -1,25 +1,41 @@ from unittest import TestCase -from pyecsca.ec.context import Context from pyecsca.ec.curve import EllipticCurve from pyecsca.ec.mod import Mod from pyecsca.ec.model import ShortWeierstrassModel -from pyecsca.ec.mult import RTLMultiplier +from pyecsca.ec.mult import LTRMultiplier, RTLMultiplier from pyecsca.ec.point import Point class ScalarMultiplierTests(TestCase): + def setUp(self): + self.p = 0xfffffffdffffffffffffffffffffffff + self.coords = ShortWeierstrassModel.coordinates["projective"] + self.secp128r1 = EllipticCurve(ShortWeierstrassModel, self.coords, + dict(a=0xfffffffdfffffffffffffffffffffffc, + b=0xe87579c11079f43dd824993c2cee5ed3), + Point(self.coords, X=Mod(0, self.p), Y=Mod(1, self.p), + Z=Mod(0, self.p))) + self.base = Point(self.coords, X=Mod(0x161ff7528b899b2d0c28607ca52c5b86, self.p), + Y=Mod(0xcf5ac8395bafeb13c02da292dded7a83, self.p), + Z=Mod(1, self.p)) + def test_rtl_simple(self): - p = 0xfffffffdffffffffffffffffffffffff - coords = ShortWeierstrassModel.coordinates["projective"] - curve = EllipticCurve(ShortWeierstrassModel, coords, - dict(a=0xfffffffdfffffffffffffffffffffffc, - b=0xe87579c11079f43dd824993c2cee5ed3), - Point(coords, X=Mod(0, p), Y=Mod(1, p), Z=Mod(0, p))) - with Context() as ctx: - mult = RTLMultiplier(curve, coords.formulas["add-1998-cmo"], - coords.formulas["dbl-1998-cmo"], coords.formulas["z"], ctx=ctx) - mult.multiply(10, Point(coords, X=Mod(0x161ff7528b899b2d0c28607ca52c5b86, p), - Y=Mod(0xcf5ac8395bafeb13c02da292dded7a83, p), - Z=Mod(1, p))) + mult = RTLMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], self.coords.formulas["z"]) + mult.multiply(10, self.base) + + def test_ltr_simple(self): + mult = LTRMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], self.coords.formulas["z"]) + mult.multiply(10, self.base) + + def test_basic_multipliers(self): + ltr = LTRMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], self.coords.formulas["z"]) + res_ltr = ltr.multiply(10, self.base) + rtl = RTLMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], self.coords.formulas["z"]) + res_rtl = rtl.multiply(10, self.base) + self.assertEqual(res_ltr, res_rtl) |
