From c75e023930ddbd8e94021510b8a631abda184d49 Mon Sep 17 00:00:00 2001 From: Sebastian Stammler Date: Mon, 8 Oct 2018 20:34:00 +0200 Subject: [PATCH 1/2] PutGateFromFile: Add 'V' gate lines as OR gates --- src/abycore/circuit/booleancircuits.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/abycore/circuit/booleancircuits.cpp b/src/abycore/circuit/booleancircuits.cpp index a2a47383..d0340810 100644 --- a/src/abycore/circuit/booleancircuits.cpp +++ b/src/abycore/circuit/booleancircuits.cpp @@ -2303,6 +2303,10 @@ std::vector BooleanCircuit::PutGateFromFile(const std::string filename wires[tokens[2]] = PutXORGate(wires[tokens[0]], wires[tokens[1]]); break; + case 'V': // OR Gate + wires[tokens[2]] = PutORGate(wires[tokens[0]], wires[tokens[1]]); + break; + case 'M': // MUX Gate wires[tokens[3]] = PutVecANDMUXGate(wires[tokens[1]], wires[tokens[0]], wires[tokens[2]]); break; From 6d6da1b59638040e84a2c220455d5e070e0874db Mon Sep 17 00:00:00 2001 From: Sebastian Stammler Date: Mon, 8 Oct 2018 20:38:28 +0200 Subject: [PATCH 2/2] Use int tokens in PutGateFromFile This is dependent on ENCRYPTO_utils's tokenize_verilog making the same change. --- extern/ENCRYPTO_utils | 2 +- src/abycore/circuit/booleancircuits.cpp | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/extern/ENCRYPTO_utils b/extern/ENCRYPTO_utils index 9bb8af36..dd219d4a 160000 --- a/extern/ENCRYPTO_utils +++ b/extern/ENCRYPTO_utils @@ -1 +1 @@ -Subproject commit 9bb8af36cde8c23465c385145561bcba5adf217d +Subproject commit dd219d4a17c98d050b06283869223d776770a1ef diff --git a/src/abycore/circuit/booleancircuits.cpp b/src/abycore/circuit/booleancircuits.cpp index d0340810..d99b00de 100644 --- a/src/abycore/circuit/booleancircuits.cpp +++ b/src/abycore/circuit/booleancircuits.cpp @@ -2250,8 +2250,9 @@ std::vector BooleanCircuit::PutFPGate(const std::string func, std::vec std::vector BooleanCircuit::PutGateFromFile(const std::string filename, std::vector inputs, uint32_t nvals){ std::string line; - std::vector tokens, outputs; - std::map wires; + std::vector tokens; + std::vector outputs; + std::map wires; std::ifstream myfile; @@ -2346,8 +2347,9 @@ share* BooleanCircuit::PutLUTGateFromFile(const std::string filename, share* inp std::vector BooleanCircuit::PutLUTGateFromFile(const std::string filename, std::vector inputs){ std::string line; - std::vector tokens, outputs; - std::map wires; + std::vector tokens; + std::vector outputs; + std::map wires; std::vector lut_inputs, lut_outputs, token_outputs; uint32_t n_inputs, n_outputs, ttable_vals, ctr; @@ -2467,7 +2469,7 @@ std::vector BooleanCircuit::PutLUTGateFromFile(const std::string filen uint32_t BooleanCircuit::GetInputLengthFromFile(const std::string filename){ std::string line; - std::vector tokens; + std::vector tokens; std::ifstream myfile; //std::cout << "opening " << filename << std::endl;