diff options
Diffstat (limited to 'test/sca/test_epa.py')
| -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 |
