aboutsummaryrefslogtreecommitdiff
path: root/node/node_node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/node_node.cpp')
-rw-r--r--node/node_node.cpp52
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;
}