From e4cf0d04c4afff98603df440d12a4a19b3717a34 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Fri, 18 Nov 2016 15:04:56 +0100 Subject: The Realtime precomputation step is now done on batch level. --- node/node_node.cpp | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'node/node_node.cpp') diff --git a/node/node_node.cpp b/node/node_node.cpp index 63a44df..7990a12 100644 --- a/node/node_node.cpp +++ b/node/node_node.cpp @@ -126,31 +126,31 @@ cmix_proto::RealPre fill_realtime_pre_message(CMixContext& ctx, T const& hs, T c cmix_proto::RealPre realpre; size_t len = get_group_element_array_size(&ctx); + + std::vector msv1(ms.size(), nullptr); + std::vector msv2(ms.size(), nullptr); + std::vector gs(ms.size(), nullptr); + for(int i = 0; i < ms.size(); ++i) { - realpre.add_h(); - realpre.add_m(); - realpre.mutable_m(i)->resize(len); + std::string* m = realpre.add_m(); + m->resize(len); + msv1[i] = &(*m)[0]; - std::string x = to_string(data.at(hs.Get(i)).shared_value, ctx); - { - std::stringstream ss; - ss << "shared_key: "; - for(auto&& c : x) { - ss << "\\" << std::setw(3) << std::setfill('0') << std::oct << (unsigned int) c; - } - BOOST_LOG_TRIVIAL(trace) << ss.str(); - } + msv2[i] = ms.Get(i).data(); + + realpre.add_h(hs.Get(i)); - swap_k_for_r( - &ctx, - &(*realpre.mutable_m(i))[0], - ms.Get(i).data(), - data.at(hs.Get(i)).shared_value, - i - ); - *realpre.mutable_h(i) = hs.Get(i); + gs[i] = data.at(hs.Get(i)).shared_value; } + swap_k_for_r( + &ctx, + msv1.data(), + msv2.data(), + gs.data(), + ms.size() + ); + return realpre; } -- cgit v1.2.3-70-g09d2