Loading ccsrc/Framework/include/params.hh +2 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ public: //! \publicsection static const std::string& server; //! HTTP server address (e.g. www.etsi.org) static const std::string& port; //! HTTP server port. Default: 80 static const std::string& use_ssl; //! Set to 1 to use SSL to communicate with the HTTP server. Default: false static const std::string& mutual_auth; //! Set to 1 to use mutual authentication. Default: false static const std::string& trusted_ca_list; //! List of trusted CA certificates static const std::string& server_mode; //! Does the test sytem acting as a server. Default: 0 static const std::string& local_port; //! Local listener port. Default: 80 Loading ccsrc/Framework/src/params.cc +2 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,8 @@ const std::string& params::interface_id = std::string("interface_id"); const std::string& params::server = std::string("server"); const std::string& params::port = std::string("port"); const std::string& params::use_ssl = std::string("use_ssl"); const std::string& params::mutual_auth = std::string("mutual_auth"); const std::string& params::trusted_ca_list = std::string("trusted_ca_list"); const std::string& params::server_mode = std::string("server_mode"); const std::string& params::local_port = std::string("local_port"); Loading ccsrc/Protocols/Http/http_layer.cc +3 −3 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ void http_layer::receive_data(OCTETSTRING& data, params& params) // Decode HTTP message LibItsHttp__TypesAndValues::HttpMessage http_message; if (_codec.decode(data, http_message) == -1) { if (_codec.decode(data, http_message, ¶ms) == -1) { loggers::get_instance().warning("http_layer::receive_data: Failed to decode data"); return; } Loading ccsrc/Protocols/Json/json_codec.cc +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ int json_codec::encode (const LibItsHttp__JsonMessageBodyTypes::JsonBody& msg, O } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_userTrackingSubscription)) { const LocationAPI__TypesAndValues::UserTrackingSubscription& user_tracking_subscription = msg.userTrackingSubscription(); user_tracking_subscription.encode(LocationAPI__TypesAndValues::UserTrackingSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); data = /*char2oct(CHARSTRING("{\"userTrackingSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; data = char2oct(CHARSTRING("{\"userTrackingSubscription\": ")) + OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()) + char2oct(CHARSTRING("}")); } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_zonalTrafficSubscription)) { const LocationAPI__TypesAndValues::ZonalTrafficSubscription& zonal_traffic_subscription = msg.zonalTrafficSubscription(); zonal_traffic_subscription.encode(LocationAPI__TypesAndValues::ZonalTrafficSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); Loading ccsrc/Protocols/Tcp/tcp_layer.cc +36 −17 Original line number Diff line number Diff line Loading @@ -77,12 +77,30 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la set_server_mode(server_mode); if (server_mode) { parameter_set("serverPort", _params[params::local_port].c_str()); } if (ssl_mode) { // Add certificate bundle // Check mutual authentication param _params.insert(std::pair<std::string, std::string>(std::string("mutual_tls"), "0")); parameter_set(ssl_verifycertificate_name(), "no"); it = _params.find(params::mutual_auth); if (it == _params.cend()) { if (_params[params::mutual_auth].compare("1") == 0) { // Use mutual authentication parameter_set(ssl_verifycertificate_name(), "yes"); parameter_set(ssl_private_key_file_name(), "../certificates/out/privates/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.key.pem"); parameter_set(ssl_certificate_file_name(), "../certificates/out/certs/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.cert.pem"); parameter_set(ssl_trustedCAlist_file_name(), "../certificates/out/certs/CA_dsa.cert.pem"); // FIXME Use a parameter _params.insert(std::pair<std::string, std::string>(std::string("mutual_tls"), "1")); } } // Set trusted CA file it = _params.find(params::mutual_auth); if (it == _params.cend()) { parameter_set(ssl_trustedCAlist_file_name(), it->second.c_str()); _params.insert(std::pair<std::string, std::string>(std::string("mutual_tls"), it->second)); } else { parameter_set(ssl_trustedCAlist_file_name(), "/usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt"); } // Set additional certificates //parameter_set(ssl_trustedCAlist_file_name(), "../certificates/out/certs/CA_dsa.cert.pem"); // FIXME Use a parameter //parameter_set(ssl_private_key_file_name(), "../certificates/out/privates/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.key.pem"); //parameter_set(ssl_certificate_file_name(), "../certificates/out/certs/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.cert.pem"); } set_ttcn_buffer_usercontrol(false); set_handle_half_close(true); Loading @@ -91,7 +109,7 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la parameter_set(client_TCP_reconnect_name(), "yes"); if (!server_mode) { if (server_mode == 0) { loggers::get_instance().log("tcp_layer::tcp_layer: Establish connection: %s/%s", _params[params::server].c_str(), _params[params::port].c_str()); open_client_connection(_params[params::server].c_str(), _params[params::port].c_str(), NULL, NULL); } Loading Loading @@ -175,8 +193,7 @@ int tcp_layer::send_message_on_fd(int p_client_id, const unsigned char * message { loggers::get_instance().log(">>> tcp_layer::send_message_on_fd: %d", p_client_id); if(get_user_data(p_client_id)) { if(get_user_data(p_client_id)) { loggers::get_instance().log("tcp_layer::send_message_on_fd: SSL mode"); return SSL_Socket::send_message_on_fd(p_client_id, message_buffer, length_of_message); } Loading @@ -189,8 +206,7 @@ int tcp_layer::send_message_on_nonblocking_fd(int p_client_id, const unsigned ch { loggers::get_instance().log(">>> tcp_layer::send_message_on_nonblocking_fd: %d", p_client_id); if(get_user_data(p_client_id)) { if(get_user_data(p_client_id)) { loggers::get_instance().log("tcp_layer::send_message_on_nonblocking_fd: SSL mode"); return SSL_Socket::send_message_on_nonblocking_fd(p_client_id, message_buffer, length_of_message); } Loading @@ -210,6 +226,9 @@ int tcp_layer::receive_message_on_fd(int p_client_id) } loggers::get_instance().log("tcp_layer::receive_message_on_fd: Non secured mode"); if (_params[std::string("tcp_fragmented")].compare("1") == 0) { sleep(5); // FIXME When HTTP paquet is fragmented into several TCP packets, a timer is required. This is a Q&D solution } return Abstract_Socket::receive_message_on_fd(p_client_id); } Loading Loading
ccsrc/Framework/include/params.hh +2 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ public: //! \publicsection static const std::string& server; //! HTTP server address (e.g. www.etsi.org) static const std::string& port; //! HTTP server port. Default: 80 static const std::string& use_ssl; //! Set to 1 to use SSL to communicate with the HTTP server. Default: false static const std::string& mutual_auth; //! Set to 1 to use mutual authentication. Default: false static const std::string& trusted_ca_list; //! List of trusted CA certificates static const std::string& server_mode; //! Does the test sytem acting as a server. Default: 0 static const std::string& local_port; //! Local listener port. Default: 80 Loading
ccsrc/Framework/src/params.cc +2 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,8 @@ const std::string& params::interface_id = std::string("interface_id"); const std::string& params::server = std::string("server"); const std::string& params::port = std::string("port"); const std::string& params::use_ssl = std::string("use_ssl"); const std::string& params::mutual_auth = std::string("mutual_auth"); const std::string& params::trusted_ca_list = std::string("trusted_ca_list"); const std::string& params::server_mode = std::string("server_mode"); const std::string& params::local_port = std::string("local_port"); Loading
ccsrc/Protocols/Http/http_layer.cc +3 −3 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ void http_layer::receive_data(OCTETSTRING& data, params& params) // Decode HTTP message LibItsHttp__TypesAndValues::HttpMessage http_message; if (_codec.decode(data, http_message) == -1) { if (_codec.decode(data, http_message, ¶ms) == -1) { loggers::get_instance().warning("http_layer::receive_data: Failed to decode data"); return; } Loading
ccsrc/Protocols/Json/json_codec.cc +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ int json_codec::encode (const LibItsHttp__JsonMessageBodyTypes::JsonBody& msg, O } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_userTrackingSubscription)) { const LocationAPI__TypesAndValues::UserTrackingSubscription& user_tracking_subscription = msg.userTrackingSubscription(); user_tracking_subscription.encode(LocationAPI__TypesAndValues::UserTrackingSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); data = /*char2oct(CHARSTRING("{\"userTrackingSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; data = char2oct(CHARSTRING("{\"userTrackingSubscription\": ")) + OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()) + char2oct(CHARSTRING("}")); } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_zonalTrafficSubscription)) { const LocationAPI__TypesAndValues::ZonalTrafficSubscription& zonal_traffic_subscription = msg.zonalTrafficSubscription(); zonal_traffic_subscription.encode(LocationAPI__TypesAndValues::ZonalTrafficSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); Loading
ccsrc/Protocols/Tcp/tcp_layer.cc +36 −17 Original line number Diff line number Diff line Loading @@ -77,12 +77,30 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la set_server_mode(server_mode); if (server_mode) { parameter_set("serverPort", _params[params::local_port].c_str()); } if (ssl_mode) { // Add certificate bundle // Check mutual authentication param _params.insert(std::pair<std::string, std::string>(std::string("mutual_tls"), "0")); parameter_set(ssl_verifycertificate_name(), "no"); it = _params.find(params::mutual_auth); if (it == _params.cend()) { if (_params[params::mutual_auth].compare("1") == 0) { // Use mutual authentication parameter_set(ssl_verifycertificate_name(), "yes"); parameter_set(ssl_private_key_file_name(), "../certificates/out/privates/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.key.pem"); parameter_set(ssl_certificate_file_name(), "../certificates/out/certs/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.cert.pem"); parameter_set(ssl_trustedCAlist_file_name(), "../certificates/out/certs/CA_dsa.cert.pem"); // FIXME Use a parameter _params.insert(std::pair<std::string, std::string>(std::string("mutual_tls"), "1")); } } // Set trusted CA file it = _params.find(params::mutual_auth); if (it == _params.cend()) { parameter_set(ssl_trustedCAlist_file_name(), it->second.c_str()); _params.insert(std::pair<std::string, std::string>(std::string("mutual_tls"), it->second)); } else { parameter_set(ssl_trustedCAlist_file_name(), "/usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt"); } // Set additional certificates //parameter_set(ssl_trustedCAlist_file_name(), "../certificates/out/certs/CA_dsa.cert.pem"); // FIXME Use a parameter //parameter_set(ssl_private_key_file_name(), "../certificates/out/privates/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.key.pem"); //parameter_set(ssl_certificate_file_name(), "../certificates/out/certs/e5e11abad8003766e4a7b721afb175a189b5f4cc7046af9b0d8eaebb86f28c40_server_dsa.cert.pem"); } set_ttcn_buffer_usercontrol(false); set_handle_half_close(true); Loading @@ -91,7 +109,7 @@ tcp_layer::tcp_layer(const std::string & p_type, const std::string & param) : la parameter_set(client_TCP_reconnect_name(), "yes"); if (!server_mode) { if (server_mode == 0) { loggers::get_instance().log("tcp_layer::tcp_layer: Establish connection: %s/%s", _params[params::server].c_str(), _params[params::port].c_str()); open_client_connection(_params[params::server].c_str(), _params[params::port].c_str(), NULL, NULL); } Loading Loading @@ -175,8 +193,7 @@ int tcp_layer::send_message_on_fd(int p_client_id, const unsigned char * message { loggers::get_instance().log(">>> tcp_layer::send_message_on_fd: %d", p_client_id); if(get_user_data(p_client_id)) { if(get_user_data(p_client_id)) { loggers::get_instance().log("tcp_layer::send_message_on_fd: SSL mode"); return SSL_Socket::send_message_on_fd(p_client_id, message_buffer, length_of_message); } Loading @@ -189,8 +206,7 @@ int tcp_layer::send_message_on_nonblocking_fd(int p_client_id, const unsigned ch { loggers::get_instance().log(">>> tcp_layer::send_message_on_nonblocking_fd: %d", p_client_id); if(get_user_data(p_client_id)) { if(get_user_data(p_client_id)) { loggers::get_instance().log("tcp_layer::send_message_on_nonblocking_fd: SSL mode"); return SSL_Socket::send_message_on_nonblocking_fd(p_client_id, message_buffer, length_of_message); } Loading @@ -210,6 +226,9 @@ int tcp_layer::receive_message_on_fd(int p_client_id) } loggers::get_instance().log("tcp_layer::receive_message_on_fd: Non secured mode"); if (_params[std::string("tcp_fragmented")].compare("1") == 0) { sleep(5); // FIXME When HTTP paquet is fragmented into several TCP packets, a timer is required. This is a Q&D solution } return Abstract_Socket::receive_message_on_fd(p_client_id); } Loading