diff options
Diffstat (limited to 'pyecsca/ec/curve.py')
| -rw-r--r-- | pyecsca/ec/curve.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/pyecsca/ec/curve.py b/pyecsca/ec/curve.py new file mode 100644 index 0000000..79939b7 --- /dev/null +++ b/pyecsca/ec/curve.py @@ -0,0 +1,23 @@ +from typing import Type, Mapping + +from .point import Point +from .coordinates import CoordinateModel +from .model import CurveModel + + +class EllipticCurve(object): + model: Type[CurveModel] + coordinate_model: CoordinateModel + parameters: Mapping[str, int] + neutral: Point + + def __init__(self, model: Type[CurveModel], coordinate_model: CoordinateModel, + parameters: Mapping[str, int], neutral: Point = None): + if coordinate_model not in model.coordinates.values(): + raise ValueError + if set(model.parameter_names).symmetric_difference(parameters.keys()): + raise ValueError + self.model = model + self.coordinate_model = coordinate_model + self.parameters = dict(parameters) + self.neutral = neutral |
