aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-01-27 15:48:12 +0100
committerJ08nY2024-01-27 15:48:12 +0100
commite24568e64de9093f40fc788341cd526da9405c72 (patch)
tree669510314702656898603c26ba53fc46e7440d75
parent03674b43a9900cf14a996e1a3dca74fc95591b23 (diff)
downloadpyecsca-e24568e64de9093f40fc788341cd526da9405c72.tar.gz
pyecsca-e24568e64de9093f40fc788341cd526da9405c72.tar.zst
pyecsca-e24568e64de9093f40fc788341cd526da9405c72.zip
Fix CodeFormula hash.
-rw-r--r--pyecsca/ec/formula/code.py2
-rw-r--r--test/ec/test_pickle.py13
2 files changed, 12 insertions, 3 deletions
diff --git a/pyecsca/ec/formula/code.py b/pyecsca/ec/formula/code.py
index 307870f..9d2d7d6 100644
--- a/pyecsca/ec/formula/code.py
+++ b/pyecsca/ec/formula/code.py
@@ -44,7 +44,7 @@ class CodeFormula(Formula):
self.coordinate_model,
tuple(self.code),
tuple(self.parameters),
- tuple(self.assumptions),
+ tuple(self.assumptions_str),
self.unified,
)
)
diff --git a/test/ec/test_pickle.py b/test/ec/test_pickle.py
index 36f014d..67adcb7 100644
--- a/test/ec/test_pickle.py
+++ b/test/ec/test_pickle.py
@@ -5,6 +5,7 @@ from multiprocessing.context import BaseContext
import pytest
+from pyecsca.ec.formula import EFDFormula
from pyecsca.ec.formula.graph import FormulaGraph
from pyecsca.ec.model import ShortWeierstrassModel
from pyecsca.ec.params import get_params
@@ -45,7 +46,7 @@ def test_coords():
def test_formula():
sw = ShortWeierstrassModel()
coords = sw.coordinates["projective"]
- formula = coords.formulas["add-2007-bl"]
+ formula: EFDFormula = coords.formulas["add-2007-bl"]
data = pickle.dumps(formula)
back = pickle.loads(data)
assert formula == back
@@ -53,6 +54,10 @@ def test_formula():
data = pickle.dumps(formulas)
back = pickle.loads(data)
assert formulas == back
+ code_formula = formula.to_code()
+ assert formula != code_formula
+ back_code = pickle.loads(pickle.dumps(code_formula))
+ assert code_formula == back_code
def formula_target(formula):
@@ -62,7 +67,11 @@ def formula_target(formula):
def test_formula_loads(ctx):
sw = ShortWeierstrassModel()
coords = sw.coordinates["projective"]
- formula = coords.formulas["add-2007-bl"]
+ formula: EFDFormula = coords.formulas["add-2007-bl"]
+ with ctx.Pool(processes=1) as pool:
+ res = pool.apply(formula_target, args=(formula,))
+ assert res
+ formula = formula.to_code()
with ctx.Pool(processes=1) as pool:
res = pool.apply(formula_target, args=(formula,))
assert res