diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/cmixclient.cpp | 29 | ||||
| -rw-r--r-- | client/cmixclient.hpp | 3 | ||||
| -rw-r--r-- | client/main.cpp | 5 |
3 files changed, 30 insertions, 7 deletions
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<char> 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>(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<NodeDetails> 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<std::vector<std::string>>()->multitoken(), "The addresses of the network nodes in order") ("certdir", po::value<std::string>(), "Directory containing trusted certificates.") + ("nr_mixes,x", po::value<unsigned int>()->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<unsigned int>(); - NetworkDetails details{node_details, certdir}; + NetworkDetails details{node_details, certdir, nr_mixes}; CMixClient cmix_client(details); cmix_client.run(); |
