aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/ec/test_mult.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ec/test_mult.py')
-rw-r--r--test/ec/test_mult.py44
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)