aboutsummaryrefslogtreecommitdiff
path: root/pyecsca/ec/coordinates.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyecsca/ec/coordinates.py')
-rw-r--r--pyecsca/ec/coordinates.py26
1 files changed, 11 insertions, 15 deletions
diff --git a/pyecsca/ec/coordinates.py b/pyecsca/ec/coordinates.py
index e8f4710..a5840a3 100644
--- a/pyecsca/ec/coordinates.py
+++ b/pyecsca/ec/coordinates.py
@@ -3,7 +3,7 @@ from pkg_resources import resource_listdir, resource_isdir, resource_stream
from typing import List, Any, MutableMapping
from .formula import (Formula, AdditionFormula, DoublingFormula, TriplingFormula,
- DifferentialAdditionFormula, LadderFormula, ScalingFormula)
+ DifferentialAdditionFormula, LadderFormula, ScalingFormula, NegationFormula)
class CoordinateModel(object):
@@ -64,20 +64,16 @@ class EFDCoordinateModel(CoordinateModel):
for fname in resource_listdir(__name__, dir_path):
if fname.endswith(".op3"):
continue
- if formula_type == "addition":
- cls = AdditionFormula
- elif formula_type == "doubling":
- cls = DoublingFormula
- elif formula_type == "tripling":
- cls = TriplingFormula
- elif formula_type == "diffadd":
- cls = DifferentialAdditionFormula
- elif formula_type == "ladder":
- cls = LadderFormula
- elif formula_type == "scaling":
- cls = ScalingFormula
- else:
- cls = Formula
+ formula_types = {
+ "addition": AdditionFormula,
+ "doubling": DoublingFormula,
+ "tripling": TriplingFormula,
+ "diffadd": DifferentialAdditionFormula,
+ "ladder": LadderFormula,
+ "scaling": ScalingFormula,
+ "negation": NegationFormula
+ }
+ cls = formula_types.get(formula_type, Formula)
self.formulas[fname] = cls(dir_path + "/" + fname, fname, self)
def __read_coordinates_file(self, file_path):