diff options
| author | J08nY | 2019-11-25 21:25:29 +0100 |
|---|---|---|
| committer | J08nY | 2019-11-25 21:25:29 +0100 |
| commit | de491a6191b465edb7bd9a01a5177ac9bf836747 (patch) | |
| tree | 18459bc2cb101782e2157b0e9313d288d1b6a43b /pyecsca/codegen/__init__.py | |
| parent | 8a56c7a95e662862cfe78b834ccb091e95d5372f (diff) | |
| download | pyecsca-codegen-de491a6191b465edb7bd9a01a5177ac9bf836747.tar.gz pyecsca-codegen-de491a6191b465edb7bd9a01a5177ac9bf836747.tar.zst pyecsca-codegen-de491a6191b465edb7bd9a01a5177ac9bf836747.zip | |
Start Python codegen impl.
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 |
