Loading ccsrc/Protocols/Security/etsi_ts103097_data_codec.cc +9 −0 Original line number Diff line number Diff line Loading @@ -30,10 +30,19 @@ int etsi_ts103097_data_codec::decode(const OCTETSTRING &p_data, Ieee1609Dot2::Ie * FIXME FSCOM Bug in TITAN TTCN-3 and ASN.1 Compiler for the TTCN-3 Test Executor, version 9.0.0 */ if (p_ieee1609Dot2Data.content().ischosen(Ieee1609Dot2::Ieee1609Dot2Content::ALT_signedData)) { loggers::get_instance().log_msg("etsi_ts103097_data_codec::decode: signer: ", p_ieee1609Dot2Data.content().signedData().signer()); if (p_ieee1609Dot2Data.content().signedData().signer().ischosen(Ieee1609Dot2::SignerIdentifier::ALT_certificate)) { p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned().appExtensions().set_to_omit(); p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned().certIssueExtensions().set_to_omit(); p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned().certRequestExtension().set_to_omit(); loggers::get_instance().log_msg("etsi_ts103097_data_codec::decode: ", p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned()); } if (p_ieee1609Dot2Data.content().signedData().tbsData().headerInfo().requestedCertificate().is_present()) { Ieee1609Dot2::CertificateBase* requested_cert = static_cast<Ieee1609Dot2::CertificateBase*>(p_ieee1609Dot2Data.content().signedData().tbsData().headerInfo().requestedCertificate().get_opt_value()); requested_cert->toBeSigned().appExtensions().set_to_omit(); requested_cert->toBeSigned().certIssueExtensions().set_to_omit(); requested_cert->toBeSigned().certRequestExtension().set_to_omit(); loggers::get_instance().log_msg("etsi_ts103097_data_codec::decode: requested_cert: ", *requested_cert); } } /** Loading ccsrc/Protocols/Security/security_services_its.cc +9 −7 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ security_services_its *security_services_its::instance = nullptr; security_services_its::security_services_its() : _setup_done{false}, _ec_keys_enc(nullptr), _bkf_expension_keys(nullptr), _security_cache(new security_cache), _security_db(nullptr), _last_generation_time(0), _unknown_certificate(0, nullptr), _requested_certificate(), _latitude(0), _longitude(0), _elevation(0), _geospacial() { _unknown_certificate(0, nullptr), _inline_p2p_requested_certificate(), _latitude(0), _longitude(0), _elevation(0), _geospacial() { loggers::get_instance().log(">>> security_services_its::security_services_its"); //_geospacial.load_countries_map("$HOME/dev/TS.ITS/ne-countries-50m.json"); // FIXME Use parameter Loading Loading @@ -215,19 +215,21 @@ int security_services_its::process_ieee_1609_dot2_signed_data(const Ieee1609Dot2 loggers::get_instance().log_msg("security_services_its::process_ieee_1609_dot2_signed_data: inlineP2pcdRequest: ", header_info.inlineP2pcdRequest()); const Ieee1609Dot2BaseTypes::SequenceOfHashedId3 &s = static_cast<const Ieee1609Dot2BaseTypes::SequenceOfHashedId3 &>(*header_info.inlineP2pcdRequest().get_opt_value()); _requested_certificate.clear(); _inline_p2p_requested_certificate.clear(); for (int i = 0; i < s.lengthof(); i++) { loggers::get_instance().log_msg("security_services_its::process_ieee_1609_dot2_signed_data: Add requested certificate= ", s[i]); _requested_certificate.push_back(s[i]); _inline_p2p_requested_certificate.push_back(s[i]); } // End of 'for' statement } // Check requested certificate if (header_info.requestedCertificate().is_present()) { Ieee1609Dot2::CertificateBase requested_cert = header_info.requestedCertificate(); loggers::get_instance().warning("security_services_its::process_ieee_1609_dot2_signed_data: ", requested_cert); loggers::get_instance().warning("security_services_its::process_ieee_1609_dot2_signed_data: requestedCertificate not supported yet"); loggers::get_instance().log_msg("security_services_its::process_ieee_1609_dot2_signed_data: requested_cert: ", requested_cert); _requested_certificate.clear(); _requested_certificate.push_back(requested_cert); // TODO Not supported by C-ITS Protocol loggers::get_instance().warning("security_services_its::process_ieee_1609_dot2_signed_data: requestedCertificate not supported yet"); } // Check and extract unsecured payload Loading Loading @@ -601,9 +603,9 @@ int security_services_its::sign_payload(const OCTETSTRING &p_unsecured_gn_payloa header_info.inlineP2pcdRequest().set_to_omit(); } // Check if a certificate shall be provided if (_requested_certificate.size() != 0) { if (_inline_p2p_requested_certificate.size() != 0) { Ieee1609Dot2::CertificateBase c; const Ieee1609Dot2BaseTypes::HashedId3 &hashed_id3 = _requested_certificate[0]; const Ieee1609Dot2BaseTypes::HashedId3 &hashed_id3 = _inline_p2p_requested_certificate[0]; _security_db->get_certificate(hashed_id3, c); header_info.requestedCertificate() = OPTIONAL<Ieee1609Dot2::CertificateBase>(c); } else { Loading ccsrc/Protocols/Security/security_services_its.hh +4 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ namespace Ieee1609Dot2 { class SignerIdentifier; //! TITAN forward declaration class VerificationKeyIndicator; //! TITAN forward declaration class CertificateBase; //! TITAN forward declaration } // namespace Ieee1609Dot2 /*! Loading @@ -55,7 +56,9 @@ class security_services_its { std::unique_ptr<security_db> _security_db; unsigned long long _last_generation_time; OCTETSTRING _unknown_certificate; std::vector<OCTETSTRING> _requested_certificate; std::vector<OCTETSTRING> _inline_p2p_requested_certificate; std::vector<Ieee1609Dot2::CertificateBase> _requested_certificate; int _latitude; int _longitude; int _elevation; Loading ccsrc/Protocols/UpperTester/module.mk +1 −1 Original line number Diff line number Diff line #to be added globally sources += uppertester_geonetworking_codec.cc uppertester_geonetworking_layer.cc sources += uppertester_geonetworking_codec.cc uppertester_geonetworking_layer.cc uppertester_debug_layer.cc ifeq (AtsCAM, $(ATS)) sources += uppertester_cam_codec.cc uppertester_cam_layer.cc Loading etc/AtsCAM/AtsCAM.cfg +1 −1 Original line number Diff line number Diff line AtsCAM_Codha.cf_ No newline at end of file AtsCAM_Simulator.cfg_ No newline at end of file Loading
ccsrc/Protocols/Security/etsi_ts103097_data_codec.cc +9 −0 Original line number Diff line number Diff line Loading @@ -30,10 +30,19 @@ int etsi_ts103097_data_codec::decode(const OCTETSTRING &p_data, Ieee1609Dot2::Ie * FIXME FSCOM Bug in TITAN TTCN-3 and ASN.1 Compiler for the TTCN-3 Test Executor, version 9.0.0 */ if (p_ieee1609Dot2Data.content().ischosen(Ieee1609Dot2::Ieee1609Dot2Content::ALT_signedData)) { loggers::get_instance().log_msg("etsi_ts103097_data_codec::decode: signer: ", p_ieee1609Dot2Data.content().signedData().signer()); if (p_ieee1609Dot2Data.content().signedData().signer().ischosen(Ieee1609Dot2::SignerIdentifier::ALT_certificate)) { p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned().appExtensions().set_to_omit(); p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned().certIssueExtensions().set_to_omit(); p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned().certRequestExtension().set_to_omit(); loggers::get_instance().log_msg("etsi_ts103097_data_codec::decode: ", p_ieee1609Dot2Data.content().signedData().signer().certificate()[0].toBeSigned()); } if (p_ieee1609Dot2Data.content().signedData().tbsData().headerInfo().requestedCertificate().is_present()) { Ieee1609Dot2::CertificateBase* requested_cert = static_cast<Ieee1609Dot2::CertificateBase*>(p_ieee1609Dot2Data.content().signedData().tbsData().headerInfo().requestedCertificate().get_opt_value()); requested_cert->toBeSigned().appExtensions().set_to_omit(); requested_cert->toBeSigned().certIssueExtensions().set_to_omit(); requested_cert->toBeSigned().certRequestExtension().set_to_omit(); loggers::get_instance().log_msg("etsi_ts103097_data_codec::decode: requested_cert: ", *requested_cert); } } /** Loading
ccsrc/Protocols/Security/security_services_its.cc +9 −7 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ security_services_its *security_services_its::instance = nullptr; security_services_its::security_services_its() : _setup_done{false}, _ec_keys_enc(nullptr), _bkf_expension_keys(nullptr), _security_cache(new security_cache), _security_db(nullptr), _last_generation_time(0), _unknown_certificate(0, nullptr), _requested_certificate(), _latitude(0), _longitude(0), _elevation(0), _geospacial() { _unknown_certificate(0, nullptr), _inline_p2p_requested_certificate(), _latitude(0), _longitude(0), _elevation(0), _geospacial() { loggers::get_instance().log(">>> security_services_its::security_services_its"); //_geospacial.load_countries_map("$HOME/dev/TS.ITS/ne-countries-50m.json"); // FIXME Use parameter Loading Loading @@ -215,19 +215,21 @@ int security_services_its::process_ieee_1609_dot2_signed_data(const Ieee1609Dot2 loggers::get_instance().log_msg("security_services_its::process_ieee_1609_dot2_signed_data: inlineP2pcdRequest: ", header_info.inlineP2pcdRequest()); const Ieee1609Dot2BaseTypes::SequenceOfHashedId3 &s = static_cast<const Ieee1609Dot2BaseTypes::SequenceOfHashedId3 &>(*header_info.inlineP2pcdRequest().get_opt_value()); _requested_certificate.clear(); _inline_p2p_requested_certificate.clear(); for (int i = 0; i < s.lengthof(); i++) { loggers::get_instance().log_msg("security_services_its::process_ieee_1609_dot2_signed_data: Add requested certificate= ", s[i]); _requested_certificate.push_back(s[i]); _inline_p2p_requested_certificate.push_back(s[i]); } // End of 'for' statement } // Check requested certificate if (header_info.requestedCertificate().is_present()) { Ieee1609Dot2::CertificateBase requested_cert = header_info.requestedCertificate(); loggers::get_instance().warning("security_services_its::process_ieee_1609_dot2_signed_data: ", requested_cert); loggers::get_instance().warning("security_services_its::process_ieee_1609_dot2_signed_data: requestedCertificate not supported yet"); loggers::get_instance().log_msg("security_services_its::process_ieee_1609_dot2_signed_data: requested_cert: ", requested_cert); _requested_certificate.clear(); _requested_certificate.push_back(requested_cert); // TODO Not supported by C-ITS Protocol loggers::get_instance().warning("security_services_its::process_ieee_1609_dot2_signed_data: requestedCertificate not supported yet"); } // Check and extract unsecured payload Loading Loading @@ -601,9 +603,9 @@ int security_services_its::sign_payload(const OCTETSTRING &p_unsecured_gn_payloa header_info.inlineP2pcdRequest().set_to_omit(); } // Check if a certificate shall be provided if (_requested_certificate.size() != 0) { if (_inline_p2p_requested_certificate.size() != 0) { Ieee1609Dot2::CertificateBase c; const Ieee1609Dot2BaseTypes::HashedId3 &hashed_id3 = _requested_certificate[0]; const Ieee1609Dot2BaseTypes::HashedId3 &hashed_id3 = _inline_p2p_requested_certificate[0]; _security_db->get_certificate(hashed_id3, c); header_info.requestedCertificate() = OPTIONAL<Ieee1609Dot2::CertificateBase>(c); } else { Loading
ccsrc/Protocols/Security/security_services_its.hh +4 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ namespace Ieee1609Dot2 { class SignerIdentifier; //! TITAN forward declaration class VerificationKeyIndicator; //! TITAN forward declaration class CertificateBase; //! TITAN forward declaration } // namespace Ieee1609Dot2 /*! Loading @@ -55,7 +56,9 @@ class security_services_its { std::unique_ptr<security_db> _security_db; unsigned long long _last_generation_time; OCTETSTRING _unknown_certificate; std::vector<OCTETSTRING> _requested_certificate; std::vector<OCTETSTRING> _inline_p2p_requested_certificate; std::vector<Ieee1609Dot2::CertificateBase> _requested_certificate; int _latitude; int _longitude; int _elevation; Loading
ccsrc/Protocols/UpperTester/module.mk +1 −1 Original line number Diff line number Diff line #to be added globally sources += uppertester_geonetworking_codec.cc uppertester_geonetworking_layer.cc sources += uppertester_geonetworking_codec.cc uppertester_geonetworking_layer.cc uppertester_debug_layer.cc ifeq (AtsCAM, $(ATS)) sources += uppertester_cam_codec.cc uppertester_cam_layer.cc Loading
etc/AtsCAM/AtsCAM.cfg +1 −1 Original line number Diff line number Diff line AtsCAM_Codha.cf_ No newline at end of file AtsCAM_Simulator.cfg_ No newline at end of file