From 21474893efe0ab38461c3d08727c7c778caa9323 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Sun, 4 Feb 2018 12:47:09 +0100 Subject: Both algorithms are now batchable. --- client/cmixclient.cpp | 29 ++++++++++++++++++++++++----- client/cmixclient.hpp | 3 ++- client/main.cpp | 5 ++++- 3 files changed, 30 insertions(+), 7 deletions(-) (limited to 'client') diff --git a/client/cmixclient.cpp b/client/cmixclient.cpp index fca653b..17f6e76 100644 --- a/client/cmixclient.cpp +++ b/client/cmixclient.cpp @@ -76,22 +76,41 @@ void CMixClient::handle_key_exchange(size_t node_id, cmix_proto::KeyExchange con ); if(std::all_of(shared_values.begin(), shared_values.end(), [](GroupElement const& value){return value != nullptr;})) { - size_t len = get_message_size(&cmix_ctx); - + size_t len = cmix_ctx.nr_mixes * get_message_size(&cmix_ctx); std::vector vec(len, '\0'); char* id; size_t id_len; get_pub_key_hash(&cmix_ctx, &id, &id_len); - std::string s = "abcdefghijklmnopqrstuvwxyz"; + std::string s = "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz" + "abcdefghijklmnopqrstuvwxyz"; create_message(&cmix_ctx, vec.data(), id, id_len, s.data(), s.size()); free(id); cmix_proto::UserMessage message; - message.mutable_m()->resize(get_group_element_array_size(&cmix_ctx)); + message.mutable_m()->resize(get_group_element_array_size(&cmix_ctx) * cmix_ctx.nr_mixes); blind_message(&cmix_ctx, &(*message.mutable_m())[0], vec.data(), shared_values.data(), shared_values.size()); @@ -145,7 +164,7 @@ void CMixClient::handle_message(size_t node_id, cmix_proto::CMixMessage message) CMixClient::CMixClient(NetworkDetails details) : io_service() , ssl_ctx(std::make_shared(boost::asio::ssl::context::sslv23)) -, cmix_ctx(initialize_cmix_context(get_implementation())) +, cmix_ctx(initialize_cmix_context(get_implementation(), details.nr_mixes)) , network_details(details) , network_connections() , secret_values() diff --git a/client/cmixclient.hpp b/client/cmixclient.hpp index 6291bd1..d684c88 100644 --- a/client/cmixclient.hpp +++ b/client/cmixclient.hpp @@ -36,6 +36,7 @@ struct NodeDetails { struct NetworkDetails { std::vector node_details; ///< Vector with all the node hosts and ports in network order. std::string certdir; ///< The directory with trusted certificates. + unsigned int nr_mixes; ///< The number of simultaneous mixes the nodes are set to do. }; /*! @@ -78,4 +79,4 @@ public: * \brief run Runs the underlying io_service. */ void run(); -}; \ No newline at end of file +}; diff --git a/client/main.cpp b/client/main.cpp index 63d1ebf..efea166 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -33,6 +33,7 @@ int main(int argc, char* argv[]) { ("help,h", "produce help message.") ("network,n", po::value>()->multitoken(), "The addresses of the network nodes in order") ("certdir", po::value(), "Directory containing trusted certificates.") + ("nr_mixes,x", po::value()->default_value(1), "The number of simultanous mixes the network will perform.") ; po::variables_map vm; @@ -69,8 +70,10 @@ int main(int argc, char* argv[]) { return -1; } } + + unsigned int nr_mixes = vm["nr_mixes"].as(); - NetworkDetails details{node_details, certdir}; + NetworkDetails details{node_details, certdir, nr_mixes}; CMixClient cmix_client(details); cmix_client.run(); -- cgit v1.2.3-70-g09d2