aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/ec
diff options
context:
space:
mode:
authorvojtechsu2023-11-23 16:24:15 +0100
committerJ08nY2023-12-05 14:06:07 +0100
commitcab6cf16e55910cb95fe79aa12c826997bb82da3 (patch)
treea1afc15d927516813e2c54979259ff5dff5cdf29 /pyecsca/ec
parent94073d82238cacbaa41ee9dcb9d8201fa69e569a (diff)
downloadpyecsca-cab6cf16e55910cb95fe79aa12c826997bb82da3.tar.gz
pyecsca-cab6cf16e55910cb95fe79aa12c826997bb82da3.tar.zst
pyecsca-cab6cf16e55910cb95fe79aa12c826997bb82da3.zip
Add rename to efdgraph
Diffstat (limited to 'pyecsca/ec')
-rw-r--r--pyecsca/ec/formula_gen/formula_graph.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/pyecsca/ec/formula_gen/formula_graph.py b/pyecsca/ec/formula_gen/formula_graph.py
index 402e77f..0d6c145 100644
--- a/pyecsca/ec/formula_gen/formula_graph.py
+++ b/pyecsca/ec/formula_gen/formula_graph.py
@@ -156,7 +156,7 @@ class EFDFormulaGraph:
self.output_names: Set = None
self.roots: List = None
- def construct_graph(self, formula: EFDFormula):
+ def construct_graph(self, formula: EFDFormula, rename = True):
self._formula = formula # TODO remove, its here only for to_EFDFormula
self.output_names = formula.outputs
self.input_nodes = {v: InputNode(v) for v in formula_input_variables(formula)}
@@ -186,7 +186,8 @@ class EFDFormulaGraph:
for node in self.nodes:
if not node.incoming_nodes and not node in self.roots:
self.roots.append(node)
- self.reindex()
+ if rename:
+ self.reindex()
def node_index(self, node: CodeOpNode) -> int:
return self.nodes.index(node)
@@ -308,3 +309,9 @@ class EFDFormulaGraph:
def print(self):
for node in self.nodes:
print(node)
+
+
+def rename_ivs(formula: EFDFormula):
+ graph = EFDFormulaGraph()
+ graph.construct_graph(formula)
+ return graph.to_EFDFormula() \ No newline at end of file