diff options
Diffstat (limited to 'pyecsca/codegen/__init__.py')
| -rw-r--r-- | pyecsca/codegen/__init__.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pyecsca/codegen/__init__.py b/pyecsca/codegen/__init__.py index e69de29..894c843 100644 --- a/pyecsca/codegen/__init__.py +++ b/pyecsca/codegen/__init__.py @@ -0,0 +1,33 @@ +from jinja2 import Environment, PackageLoader +from pyecsca.ec.model import CurveModel, ShortWeierstrassModel +from pyecsca.ec.coordinates import CoordinateModel + +env = Environment( + loader=PackageLoader("pyecsca.codegen") +) + + +def get_curve_definition(model: CurveModel): + return env.get_template("curve.h").render(params=model.parameter_names) + +def get_curve_impl(model: CurveModel): + return env.get_template("curve.c").render(params=model.parameter_names) + +def get_coords_definition(coords: CoordinateModel): + return env.get_template("coords.h").render(variables=coords.variables) + +def get_coords_impl(coords: CoordinateModel): + print(coords.satisfying) + return env.get_template("coords.c").render(variables=coords.variables) + +if __name__ == "__main__": + model = ShortWeierstrassModel() + s = get_curve_definition(model) + + s = get_curve_impl(model) + + coords = model.coordinates["projective"] + + s = get_coords_definition(coords) + + s = get_coords_impl(coords)
\ No newline at end of file |
