From 7f2ae6e37f6e78d7edd561e7c2f91e69e93be85b Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Fri, 18 Nov 2016 13:36:53 +0100 Subject: The Precomputation precomputation step is now done on batch level. --- node/node.cpp | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) (limited to 'node/node.cpp') diff --git a/node/node.cpp b/node/node.cpp index a6ad1e1..b29a873 100644 --- a/node/node.cpp +++ b/node/node.cpp @@ -176,28 +176,27 @@ void Node::start_precomputation() { cmix_proto::PrePre prepre; - for(size_t i = 0; i < cmix_ctx.nr_participants; ++i) { - prepre.add_m_er(); - prepre.add_r_er(); + size_t len = get_group_element_array_size(&cmix_ctx); + std::vector r_er(cmix_ctx.nr_participants, nullptr); + std::vector m_er(cmix_ctx.nr_participants, nullptr); - size_t len = get_group_element_array_size(&cmix_ctx); - - prepre.mutable_r_er(i)->resize(len); - prepre.mutable_m_er(i)->resize(len); - - { - std::stringstream ss; - ss << "r: "; - std::string r = to_string(cmix_ctx.r[i], cmix_ctx); - for(auto&& c : r) { - ss << "\\" << std::setw(3) << std::setfill('0') << std::oct << (unsigned int) c; - } - BOOST_LOG_TRIVIAL(trace) << ss.str(); - } + for(size_t i = 0; i < cmix_ctx.nr_participants; ++i) { + std::string* r = prepre.add_r_er(); + r->resize(len); + r_er[i] = &(*r)[0]; - if(encrypt_r(&cmix_ctx, &(*prepre.mutable_r_er(i))[0], &(*prepre.mutable_m_er(i))[0], i) != no_error) { - exit(-1); - } + std::string* m = prepre.add_m_er(); + m->resize(len); + m_er[i] = &(*m)[0]; + } + + if(encrypt_r( + &cmix_ctx, + r_er.data(), + m_er.data(), + cmix_ctx.nr_participants + ) != no_error) { + exit(-1); } BOOST_LOG_TRIVIAL(trace) << "Sending prepre message: " << prepre.ShortDebugString(); -- cgit v1.2.3-70-g09d2