diff options
| author | J08nY | 2025-07-28 17:52:11 +0200 |
|---|---|---|
| committer | J08nY | 2025-07-28 17:52:11 +0200 |
| commit | 839cb94bb7ec2469b3287cfb9943ef03590724a9 (patch) | |
| tree | 708c4db2bf6c5aa36ee1de316ffe58633ff39d42 /test/sca | |
| parent | 7128a0c8eeab229a4c97057833c680314158baf3 (diff) | |
| download | pyecsca-839cb94bb7ec2469b3287cfb9943ef03590724a9.tar.gz pyecsca-839cb94bb7ec2469b3287cfb9943ef03590724a9.tar.zst pyecsca-839cb94bb7ec2469b3287cfb9943ef03590724a9.zip | |
Diffstat (limited to 'test/sca')
| -rw-r--r-- | test/sca/test_epa.py | 70 |
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 |
