diff options
Diffstat (limited to 'test/ec/test_mult.py')
| -rw-r--r-- | test/ec/test_mult.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py index 1a2bc7e..258a525 100644 --- a/test/ec/test_mult.py +++ b/test/ec/test_mult.py @@ -3,7 +3,7 @@ from unittest import TestCase from pyecsca.ec.curve import EllipticCurve from pyecsca.ec.mod import Mod from pyecsca.ec.model import ShortWeierstrassModel, MontgomeryModel -from pyecsca.ec.mult import LTRMultiplier, RTLMultiplier, LadderMultiplier +from pyecsca.ec.mult import LTRMultiplier, RTLMultiplier, LadderMultiplier, BinaryNAFMultiplier, WindowNAFMultiplier from pyecsca.ec.point import Point @@ -54,6 +54,24 @@ class ScalarMultiplierTests(TestCase): other = mult.multiply(5, other) self.assertEqual(res, other) + def test_binary_naf_simple(self): + mult = BinaryNAFMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], + self.coords.formulas["neg"], self.coords.formulas["z"]) + res = mult.multiply(10, self.base) + other = mult.multiply(5, self.base) + other = mult.multiply(2, other) + self.assertEqual(res, other) + + def test_window_naf_simple(self): + mult = WindowNAFMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], + self.coords.formulas["neg"], 3, self.coords.formulas["z"]) + res = mult.multiply(10, self.base) + other = mult.multiply(5, self.base) + other = mult.multiply(2, other) + self.assertEqual(res, other) + 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"]) @@ -73,3 +91,15 @@ class ScalarMultiplierTests(TestCase): res_rtl_always = rtl_always.multiply(10, self.base) self.assertEqual(res_ltr, res_ltr_always) self.assertEqual(res_rtl, res_rtl_always) + + bnaf = BinaryNAFMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], + self.coords.formulas["neg"], self.coords.formulas["z"]) + res_bnaf = bnaf.multiply(10, self.base) + self.assertEqual(res_bnaf, res_ltr) + + wnaf = WindowNAFMultiplier(self.secp128r1, self.coords.formulas["add-1998-cmo"], + self.coords.formulas["dbl-1998-cmo"], + self.coords.formulas["neg"], 3, self.coords.formulas["z"]) + res_wnaf = wnaf.multiply(10, self.base) + self.assertEqual(res_wnaf, res_ltr) |
