aboutsummaryrefslogtreecommitdiff
path: root/test/sca
diff options
context:
space:
mode:
authorJ08nY2025-07-28 17:52:11 +0200
committerJ08nY2025-07-28 17:52:11 +0200
commit839cb94bb7ec2469b3287cfb9943ef03590724a9 (patch)
tree708c4db2bf6c5aa36ee1de316ffe58633ff39d42 /test/sca
parent7128a0c8eeab229a4c97057833c680314158baf3 (diff)
downloadpyecsca-839cb94bb7ec2469b3287cfb9943ef03590724a9.tar.gz
pyecsca-839cb94bb7ec2469b3287cfb9943ef03590724a9.tar.zst
pyecsca-839cb94bb7ec2469b3287cfb9943ef03590724a9.zip
Diffstat (limited to 'test/sca')
-rw-r--r--test/sca/test_epa.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/test/sca/test_epa.py b/test/sca/test_epa.py
new file mode 100644
index 0000000..0362e4e
--- /dev/null
+++ b/test/sca/test_epa.py
@@ -0,0 +1,70 @@
+from functools import partial
+
+from pyecsca.ec.mult import LTRMultiplier, CombMultiplier
+from pyecsca.sca.re.epa import errors_out
+
+
+def test_errors_out(secp128r1):
+ res_empty_checks = errors_out(
+ scalar=15,
+ params=secp128r1,
+ mult_class=LTRMultiplier,
+ mult_factory=LTRMultiplier,
+ check_funcs={},
+ check_condition="all",
+ precomp_to_affine=True,
+ )
+ assert not res_empty_checks
+
+ def add_check(k, l): # noqa
+ return k == 6
+
+ res_check_k_add = errors_out(
+ scalar=15,
+ params=secp128r1,
+ mult_class=LTRMultiplier,
+ mult_factory=LTRMultiplier,
+ check_funcs={"add": add_check},
+ check_condition="all",
+ precomp_to_affine=True,
+ )
+ assert res_check_k_add
+
+ def affine_check(k):
+ return k == 15
+
+ res_check_k_affine = errors_out(
+ scalar=15,
+ params=secp128r1,
+ mult_class=LTRMultiplier,
+ mult_factory=LTRMultiplier,
+ check_funcs={"affine": affine_check},
+ check_condition="all",
+ precomp_to_affine=True,
+ )
+ assert res_check_k_affine
+
+ def affine_check_comb(k):
+ return k == 2**64
+
+ res_check_k_affine_precomp = errors_out(
+ scalar=15,
+ params=secp128r1,
+ mult_class=CombMultiplier,
+ mult_factory=partial(CombMultiplier, width=2),
+ check_funcs={"affine": affine_check_comb},
+ check_condition="all",
+ precomp_to_affine=True,
+ )
+ assert res_check_k_affine_precomp
+
+ res_check_k_no_affine_precomp = errors_out(
+ scalar=15,
+ params=secp128r1,
+ mult_class=CombMultiplier,
+ mult_factory=partial(CombMultiplier, width=2),
+ check_funcs={"affine": affine_check_comb},
+ check_condition="all",
+ precomp_to_affine=False,
+ )
+ assert not res_check_k_no_affine_precomp