diff options
Diffstat (limited to 'node/node_node.cpp')
| -rw-r--r-- | node/node_node.cpp | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/node/node_node.cpp b/node/node_node.cpp index 8faa4cf..f6e5071 100644 --- a/node/node_node.cpp +++ b/node/node_node.cpp @@ -20,36 +20,36 @@ cmix_proto::PrePre fill_precomputation_pre_message(CMixContext& ctx, T const& rs cmix_proto::PrePre prepre; + size_t len = get_group_element_array_size(&ctx); + std::vector<char*> r_ers(ms.size(), nullptr); + std::vector<char*> m_ers(ms.size(), nullptr); + std::vector<char const*> rsv(ms.size(), nullptr); + std::vector<char const*> msv(ms.size(), nullptr); + for(size_t i = 0; i < ms.size(); ++i) { - prepre.add_m_er(); - prepre.add_r_er(); + std::string* r = prepre.add_r_er(); + r->resize(len); + r_ers[i] = &(*r)[0]; - size_t len = get_group_element_array_size(&ctx); - - prepre.mutable_m_er(i)->resize(len); - prepre.mutable_r_er(i)->resize(len); - - { - std::stringstream ss; - ss << "r: "; - std::string r = to_string(ctx.r[i], ctx); - for(auto&& c : r) { - ss << "\\" << std::setw(3) << std::setfill('0') << std::oct << (unsigned int) c; - } - BOOST_LOG_TRIVIAL(trace) << ss.str(); - } + std::string* m = prepre.add_m_er(); + m->resize(len); + m_ers[i] = &(*m)[0]; - if(encrypt_r_and_multiply( - &ctx, - &(*prepre.mutable_r_er(i))[0], - &(*prepre.mutable_m_er(i))[0], - rs.Get(i).data(), - ms.Get(i).data(), - i - ) != no_error) { - exit(-1); - } + rsv[i] = rs.Get(i).data(); + msv[i] = ms.Get(i).data(); } + + if(encrypt_r_and_multiply( + &ctx, + r_ers.data(), + m_ers.data(), + rsv.data(), + msv.data(), + ms.size() + ) != no_error) { + exit(-1); + } + return prepre; } |
