diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/data/formulas/add-openssl-z256.op3 | 2 | ||||
| -rw-r--r-- | test/data/formulas/add-sunec-v21-ed25519 | 2 | ||||
| -rw-r--r-- | test/data/formulas/dbl-sunec-v21-ed25519 | 2 | ||||
| -rw-r--r-- | test/sca/test_structural.py | 14 |
4 files changed, 15 insertions, 5 deletions
diff --git a/test/data/formulas/add-openssl-z256.op3 b/test/data/formulas/add-openssl-z256.op3 index bc0ccfc..3819546 100644 --- a/test/data/formulas/add-openssl-z256.op3 +++ b/test/data/formulas/add-openssl-z256.op3 @@ -11,7 +11,7 @@ H = U2 - U1 Rsqr = R^2 Z3 = H * Z1 Hsqr = H^2 -Z3 = H * Z2 +Z3 = Z3 * Z2 Hcub = Hsqr * H U2 = U1 * Hsqr Hsqr = 2 * U2 diff --git a/test/data/formulas/add-sunec-v21-ed25519 b/test/data/formulas/add-sunec-v21-ed25519 index 078aa39..5814455 100644 --- a/test/data/formulas/add-sunec-v21-ed25519 +++ b/test/data/formulas/add-sunec-v21-ed25519 @@ -1,2 +1,2 @@ source Java JDK 21 https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.crypto.ec/share/classes/sun/security/ec/ed/Ed25519Operations.java#L147 -coords extended +coords extended-1 diff --git a/test/data/formulas/dbl-sunec-v21-ed25519 b/test/data/formulas/dbl-sunec-v21-ed25519 index 6814542..f20095f 100644 --- a/test/data/formulas/dbl-sunec-v21-ed25519 +++ b/test/data/formulas/dbl-sunec-v21-ed25519 @@ -1,2 +1,2 @@ source Java JDK 21 https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.crypto.ec/share/classes/sun/security/ec/ed/Ed25519Operations.java#L184 -coords extended +coords extended-1 diff --git a/test/sca/test_structural.py b/test/sca/test_structural.py index be1f45f..0587f7a 100644 --- a/test/sca/test_structural.py +++ b/test/sca/test_structural.py @@ -11,8 +11,18 @@ from pyecsca.ec.formula import ( ) from pyecsca.ec.model import ShortWeierstrassModel, MontgomeryModel, TwistedEdwardsModel from pyecsca.ec.params import get_params -from pyecsca.sca.re.structural import formula_similarity, formula_similarity_fuzz -import itertools +from pyecsca.sca.re.structural import formula_similarity + + +def test_formula_similarity(secp128r1): + add_bl = secp128r1.curve.coordinate_model.formulas["add-2007-bl"] + add_rcb = secp128r1.curve.coordinate_model.formulas["add-2015-rcb"] + out = formula_similarity(add_bl, add_rcb) + assert out["output"] == 0 + assert out["ivs"] < 0.5 + out_same = formula_similarity(add_bl, add_bl) + assert out_same["output"] == 1 + assert out_same["ivs"] == 1 @pytest.mark.parametrize( |
