From de491a6191b465edb7bd9a01a5177ac9bf836747 Mon Sep 17 00:00:00 2001 From: J08nY Date: Mon, 25 Nov 2019 21:25:29 +0100 Subject: Start Python codegen impl. --- pyecsca/codegen/__init__.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'pyecsca/codegen/__init__.py') 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 -- cgit v1.3.1