aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/codegen/render.py
diff options
context:
space:
mode:
authorJ08nY2020-03-02 17:23:20 +0100
committerJ08nY2020-03-02 17:23:20 +0100
commit49018aa37f44b56292193b763ed4a8bb15389c30 (patch)
tree9d62101f699075d18c9406a2a175bdd5c377954a /pyecsca/codegen/render.py
parent81e5f24363cf8f50099b7fbed0fd3bcfaac9d5ea (diff)
downloadpyecsca-codegen-49018aa37f44b56292193b763ed4a8bb15389c30.tar.gz
pyecsca-codegen-49018aa37f44b56292193b763ed4a8bb15389c30.tar.zst
pyecsca-codegen-49018aa37f44b56292193b763ed4a8bb15389c30.zip
Add support for specifying multiplication and square algos.
Diffstat (limited to 'pyecsca/codegen/render.py')
-rw-r--r--pyecsca/codegen/render.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pyecsca/codegen/render.py b/pyecsca/codegen/render.py
index 8350146..50d15af 100644
--- a/pyecsca/codegen/render.py
+++ b/pyecsca/codegen/render.py
@@ -9,7 +9,7 @@ from typing import Optional, List, Set, Mapping, MutableMapping, Any, Tuple
from jinja2 import Environment, PackageLoader
from pkg_resources import resource_filename
from public import public
-from pyecsca.ec.configuration import HashType, RandomMod, Reduction
+from pyecsca.ec.configuration import HashType, RandomMod, Reduction, Multiplication, Squaring
from pyecsca.ec.coordinates import CoordinateModel
from pyecsca.ec.formula import (Formula)
from pyecsca.ec.model import CurveModel
@@ -190,9 +190,11 @@ def render_main(model: CurveModel, coords: CoordinateModel, keygen: bool, ecdh:
keygen=keygen, ecdh=ecdh, ecdsa=ecdsa)
-def render_makefile(platform: Platform, hash_type: HashType, mod_rand: RandomMod, reduction: Reduction) -> str:
+def render_makefile(platform: Platform, hash_type: HashType, mod_rand: RandomMod,
+ reduction: Reduction, mul: Multiplication, sqr: Squaring) -> str:
return env.get_template("Makefile").render(platform=str(platform), hash_type=str(hash_type),
- mod_rand=str(mod_rand), reduction=str(reduction))
+ mod_rand=str(mod_rand), reduction=str(reduction),
+ mul=str(mul), sqr=str(sqr))
def save_render(dir: str, fname: str, rendered: str):
@@ -216,7 +218,7 @@ def render(config: DeviceConfiguration) -> Tuple[str, str, str]:
os.mkdir(gen_dir)
save_render(temp, "Makefile",
- render_makefile(config.platform, config.hash_type, config.mod_rand, config.red))
+ render_makefile(config.platform, config.hash_type, config.mod_rand, config.red, config.mult, config.sqr))
save_render(temp, "main.c",
render_main(config.model, config.coords, config.keygen, config.ecdh, config.ecdsa))
save_render(gen_dir, "defs.h", render_defs(config.model, config.coords))