Loading ttcn/GeoNetworking/LibItsGeoNetworking_Functions.ttcn +5 −7 Original line number Diff line number Diff line Loading @@ -721,7 +721,7 @@ module LibItsGeoNetworking_Functions { vc_areaTable := p_areaTable; vc_componentName := p_componentName; f_setGenerationLocation( // TODO To be checked f_setGenerationLocation( f_getTsLatitude(), f_getTsLongitude() ); Loading Loading @@ -1143,7 +1143,7 @@ module LibItsGeoNetworking_Functions { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwSecPdu( mdw_secureMessageCAMs_dummy, mdw_securedMessage_CAMs, ? ))) { // Skip CAM messages Loading Loading @@ -2486,7 +2486,7 @@ module LibItsGeoNetworking_Functions { [] a_securedMessageWithCertificate(v_recv) { if(f_getMsgSignerInfo(v_recv, v_si)) { if(f_getCertificateSignerInfo(v_si.signerInfo.certificate, v_si)) { if(match (v_si.type_, e_certificate_digest_with_ecdsap256)) { if(match (v_si.type_, e_certificate_digest_with_sha256)) { f_sendCertificateRequest(v_si.signerInfo.digest, p_CamPayload); if(tc_ac.running) { tc_ac.stop;tc_ac.start; Loading Loading @@ -2516,7 +2516,7 @@ module LibItsGeoNetworking_Functions { [] a_securedMessageWithCertificate(v_recv) { if(f_getMsgSignerInfo(v_recv, v_si)) { if(f_getCertificateSignerInfo(v_si.signerInfo.certificate, v_si)) { if(match (v_si.type_, e_certificate_digest_with_ecdsap256)) { if(match (v_si.type_, e_certificate_digest_with_sha256)) { f_sendCertificateRequest(v_si.signerInfo.digest, p_CamPayload); if(tc_ac.running) { tc_ac.stop;tc_ac.start; Loading Loading @@ -2584,9 +2584,7 @@ module LibItsGeoNetworking_Functions { f_buildGnSecuredCam( v_securedMessage, { m_payload_signed(bit2oct(encvalue(v_gnNonSecuredPacket))) }, m_payload_signed(bit2oct(encvalue(v_gnNonSecuredPacket))), e_certificate, { m_header_field_unrecognised_certificate( Loading ttcn/Security/LibItsSecurity_Functions.ttcn3 +16 −14 Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ module LibItsSecurity_Functions { group hostSignatureHelpers { /** * @desc 2004/01/01 00:00:00 epoch in milliseconds */ const Time64 c_offsetGnTime := 1072915200; /** * @desc Build a template of a secured beacon to be used for the Test Adapter secured beaconing processing */ Loading Loading @@ -361,8 +366,7 @@ module LibItsSecurity_Functions { } v_mandatoryHeaders := { v_signerInfo, valueof(m_header_field_generation_time(f_getCurrentTime())), valueof(m_header_field_verification_advice_recommended), valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us valueof(m_header_field_its_aid(c_its_aid_CAM)) } } Loading Loading @@ -440,9 +444,8 @@ module LibItsSecurity_Functions { } v_mandatoryHeaders := { v_signerInfo, valueof(m_header_field_generation_time(f_getCurrentTime())), valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us valueof(m_header_field_generation_location(p_threeDLocation)), valueof(m_header_field_verification_advice_recommended), valueof(m_header_field_its_aid(c_its_aid_DENM)) } } Loading Loading @@ -521,9 +524,8 @@ module LibItsSecurity_Functions { } v_mandatoryHeaders := { v_signerInfo, valueof(m_header_field_generation_time(f_getCurrentTime())), valueof(m_header_field_generation_location(p_threeDLocation)), valueof(m_header_field_verification_advice_recommended) valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us valueof(m_header_field_generation_location(p_threeDLocation)) } } Loading Loading @@ -740,10 +742,10 @@ module LibItsSecurity_Functions { group certificateGetters { /** * @desc Set the gneration location ase defined in Draft ETSI TS 103 097 V1.1.9 * @param p_latitude The latitude value * @param p_longitude The longitude value * @param p_elevation The elevation value * @desc Set the generation location as defined in Draft ETSI TS 103 097 V1.1.9 Clause 7.2 Security profile for DENMs * @param p_latitude The latitude value of the ITS-S position * @param p_longitude The longitude value of the ITS-S position * @param p_elevation The elevation value of the ITS-S position * @verdict Unchanged */ function f_setGenerationLocation( Loading ttcn/Security/LibItsSecurity_Templates.ttcn3 +140 −68 Original line number Diff line number Diff line Loading @@ -722,7 +722,7 @@ module LibItsSecurity_Templates { m_signerInfo_self ) }, payload_field := m_payload_unsecured, payload_field := m_payload_signed_external, trailer_fields := { } } // End of template m_secureMessage_dummy Loading Loading @@ -827,13 +827,51 @@ module LibItsSecurity_Templates { in template (present) HeaderFields p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) := { protocol_version := c_protocol_version, ) modifies mw_securedMessage_dummy := { header_fields := p_header, payload_field := p_payload, trailer_fields := p_trailer } // End of template mw_securedMessage template (present) SecuredMessage mdw_securedMessage_CAMs( in template (present) HeaderField p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) modifies mw_securedMessage_dummy := { header_fields := superset(mw_header_field_its_aid_CAM, p_header), payload_field := p_payload, trailer_fields := p_trailer } // End of template mdw_securedMessage_CAMs template (present) SecuredMessage mdw_securedMessage_DENMs( in template (present) HeaderField p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) modifies mw_securedMessage_dummy := { header_fields := superset(mw_header_field_its_aid_DENM, p_header), payload_field := p_payload, trailer_fields := p_trailer } // End of template mdw_securedMessage_DENMs template SecuredMessage mdw_securedMessage_Others( in template (present) HeaderField p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) := { protocol_version := c_protocol_version, header_fields := superset( complement( mw_header_field_its_aid_CAM ), complement( mw_header_field_its_aid_DENM ), p_header ), payload_field := p_payload, trailer_fields := p_trailer } // End of template mdw_securedMessage_Others } // End of group messagesRecv /** Loading @@ -853,7 +891,7 @@ module LibItsSecurity_Templates { * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.2 Payload */ template (value) SecPayload m_payload_unsecured( in template (omit) octetstring p_data := omit in template (value) octetstring p_data ) := { type_ := e_unsecured, data := p_data Loading @@ -874,11 +912,9 @@ module LibItsSecurity_Templates { * @desc Send template for 'signed_external' Payload * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.2 Payload */ template (value) SecPayload m_payload_signed_external( in template (omit) octetstring p_data := omit ) := { template (value) SecPayload m_payload_signed_external := { type_ := e_signed_external, data := p_data data := omit } // End of template m_payload_signed_external /** Loading @@ -903,14 +939,6 @@ module LibItsSecurity_Templates { data := p_data } // End of template m_payload_signed_and_encrypted template (value) SecPayload m_data_payload( in template (value) SecPayloadType p_type, in template (value) octetstring p_data ) := { type_ := p_type, data := p_data } // End of template m_data_payload } // End of group payloadsSend /** Loading Loading @@ -1060,6 +1088,28 @@ module LibItsSecurity_Templates { } } // End of template m_header_field_its_aid /** * @desc Send template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField m_header_field_its_aid_CAM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_CAM } } // End of template m_header_field_its_aid_CAM /** * @desc Send template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField m_header_field_its_aid_DENM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_DENM } } // End of template m_header_field_its_aid_DENM /** * @desc Send template for HeaderField with signer information * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField Loading Loading @@ -1314,10 +1364,10 @@ module LibItsSecurity_Templates { } // End of template mw_header_field_verification_advice_required /** * @desc Receive template for HeaderField with ItsAid information * @desc Receive template for HeaderField with ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField mw_header_field_its_aid( template (present) HeaderField mw_header_field_its_aid( in template (present) IntX p_its_aid := ? ) := { type_ := e_its_aid, Loading @@ -1326,6 +1376,28 @@ module LibItsSecurity_Templates { } } // End of template mw_header_field_its_aid /** * @desc Receive template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField mw_header_field_its_aid_CAM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_CAM } } // End of template mw_header_field_its_aid_CAM /** * @desc Receive template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField mw_header_field_its_aid_DENM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_DENM } } // End of template mw_header_field_its_aid_DENM } // End of group headerFieldsRecv } // End of group headerFields Loading Loading
ttcn/GeoNetworking/LibItsGeoNetworking_Functions.ttcn +5 −7 Original line number Diff line number Diff line Loading @@ -721,7 +721,7 @@ module LibItsGeoNetworking_Functions { vc_areaTable := p_areaTable; vc_componentName := p_componentName; f_setGenerationLocation( // TODO To be checked f_setGenerationLocation( f_getTsLatitude(), f_getTsLongitude() ); Loading Loading @@ -1143,7 +1143,7 @@ module LibItsGeoNetworking_Functions { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwSecPdu( mdw_secureMessageCAMs_dummy, mdw_securedMessage_CAMs, ? ))) { // Skip CAM messages Loading Loading @@ -2486,7 +2486,7 @@ module LibItsGeoNetworking_Functions { [] a_securedMessageWithCertificate(v_recv) { if(f_getMsgSignerInfo(v_recv, v_si)) { if(f_getCertificateSignerInfo(v_si.signerInfo.certificate, v_si)) { if(match (v_si.type_, e_certificate_digest_with_ecdsap256)) { if(match (v_si.type_, e_certificate_digest_with_sha256)) { f_sendCertificateRequest(v_si.signerInfo.digest, p_CamPayload); if(tc_ac.running) { tc_ac.stop;tc_ac.start; Loading Loading @@ -2516,7 +2516,7 @@ module LibItsGeoNetworking_Functions { [] a_securedMessageWithCertificate(v_recv) { if(f_getMsgSignerInfo(v_recv, v_si)) { if(f_getCertificateSignerInfo(v_si.signerInfo.certificate, v_si)) { if(match (v_si.type_, e_certificate_digest_with_ecdsap256)) { if(match (v_si.type_, e_certificate_digest_with_sha256)) { f_sendCertificateRequest(v_si.signerInfo.digest, p_CamPayload); if(tc_ac.running) { tc_ac.stop;tc_ac.start; Loading Loading @@ -2584,9 +2584,7 @@ module LibItsGeoNetworking_Functions { f_buildGnSecuredCam( v_securedMessage, { m_payload_signed(bit2oct(encvalue(v_gnNonSecuredPacket))) }, m_payload_signed(bit2oct(encvalue(v_gnNonSecuredPacket))), e_certificate, { m_header_field_unrecognised_certificate( Loading
ttcn/Security/LibItsSecurity_Functions.ttcn3 +16 −14 Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ module LibItsSecurity_Functions { group hostSignatureHelpers { /** * @desc 2004/01/01 00:00:00 epoch in milliseconds */ const Time64 c_offsetGnTime := 1072915200; /** * @desc Build a template of a secured beacon to be used for the Test Adapter secured beaconing processing */ Loading Loading @@ -361,8 +366,7 @@ module LibItsSecurity_Functions { } v_mandatoryHeaders := { v_signerInfo, valueof(m_header_field_generation_time(f_getCurrentTime())), valueof(m_header_field_verification_advice_recommended), valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us valueof(m_header_field_its_aid(c_its_aid_CAM)) } } Loading Loading @@ -440,9 +444,8 @@ module LibItsSecurity_Functions { } v_mandatoryHeaders := { v_signerInfo, valueof(m_header_field_generation_time(f_getCurrentTime())), valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us valueof(m_header_field_generation_location(p_threeDLocation)), valueof(m_header_field_verification_advice_recommended), valueof(m_header_field_its_aid(c_its_aid_DENM)) } } Loading Loading @@ -521,9 +524,8 @@ module LibItsSecurity_Functions { } v_mandatoryHeaders := { v_signerInfo, valueof(m_header_field_generation_time(f_getCurrentTime())), valueof(m_header_field_generation_location(p_threeDLocation)), valueof(m_header_field_verification_advice_recommended) valueof(m_header_field_generation_time(1000 * (f_getCurrentTime() - c_offsetGnTime))), // In us valueof(m_header_field_generation_location(p_threeDLocation)) } } Loading Loading @@ -740,10 +742,10 @@ module LibItsSecurity_Functions { group certificateGetters { /** * @desc Set the gneration location ase defined in Draft ETSI TS 103 097 V1.1.9 * @param p_latitude The latitude value * @param p_longitude The longitude value * @param p_elevation The elevation value * @desc Set the generation location as defined in Draft ETSI TS 103 097 V1.1.9 Clause 7.2 Security profile for DENMs * @param p_latitude The latitude value of the ITS-S position * @param p_longitude The longitude value of the ITS-S position * @param p_elevation The elevation value of the ITS-S position * @verdict Unchanged */ function f_setGenerationLocation( Loading
ttcn/Security/LibItsSecurity_Templates.ttcn3 +140 −68 Original line number Diff line number Diff line Loading @@ -722,7 +722,7 @@ module LibItsSecurity_Templates { m_signerInfo_self ) }, payload_field := m_payload_unsecured, payload_field := m_payload_signed_external, trailer_fields := { } } // End of template m_secureMessage_dummy Loading Loading @@ -827,13 +827,51 @@ module LibItsSecurity_Templates { in template (present) HeaderFields p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) := { protocol_version := c_protocol_version, ) modifies mw_securedMessage_dummy := { header_fields := p_header, payload_field := p_payload, trailer_fields := p_trailer } // End of template mw_securedMessage template (present) SecuredMessage mdw_securedMessage_CAMs( in template (present) HeaderField p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) modifies mw_securedMessage_dummy := { header_fields := superset(mw_header_field_its_aid_CAM, p_header), payload_field := p_payload, trailer_fields := p_trailer } // End of template mdw_securedMessage_CAMs template (present) SecuredMessage mdw_securedMessage_DENMs( in template (present) HeaderField p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) modifies mw_securedMessage_dummy := { header_fields := superset(mw_header_field_its_aid_DENM, p_header), payload_field := p_payload, trailer_fields := p_trailer } // End of template mdw_securedMessage_DENMs template SecuredMessage mdw_securedMessage_Others( in template (present) HeaderField p_header := ?, in template (present) SecPayload p_payload := ?, in template (present) TrailerFields p_trailer := ? ) := { protocol_version := c_protocol_version, header_fields := superset( complement( mw_header_field_its_aid_CAM ), complement( mw_header_field_its_aid_DENM ), p_header ), payload_field := p_payload, trailer_fields := p_trailer } // End of template mdw_securedMessage_Others } // End of group messagesRecv /** Loading @@ -853,7 +891,7 @@ module LibItsSecurity_Templates { * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.2 Payload */ template (value) SecPayload m_payload_unsecured( in template (omit) octetstring p_data := omit in template (value) octetstring p_data ) := { type_ := e_unsecured, data := p_data Loading @@ -874,11 +912,9 @@ module LibItsSecurity_Templates { * @desc Send template for 'signed_external' Payload * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.2 Payload */ template (value) SecPayload m_payload_signed_external( in template (omit) octetstring p_data := omit ) := { template (value) SecPayload m_payload_signed_external := { type_ := e_signed_external, data := p_data data := omit } // End of template m_payload_signed_external /** Loading @@ -903,14 +939,6 @@ module LibItsSecurity_Templates { data := p_data } // End of template m_payload_signed_and_encrypted template (value) SecPayload m_data_payload( in template (value) SecPayloadType p_type, in template (value) octetstring p_data ) := { type_ := p_type, data := p_data } // End of template m_data_payload } // End of group payloadsSend /** Loading Loading @@ -1060,6 +1088,28 @@ module LibItsSecurity_Templates { } } // End of template m_header_field_its_aid /** * @desc Send template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField m_header_field_its_aid_CAM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_CAM } } // End of template m_header_field_its_aid_CAM /** * @desc Send template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField m_header_field_its_aid_DENM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_DENM } } // End of template m_header_field_its_aid_DENM /** * @desc Send template for HeaderField with signer information * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField Loading Loading @@ -1314,10 +1364,10 @@ module LibItsSecurity_Templates { } // End of template mw_header_field_verification_advice_required /** * @desc Receive template for HeaderField with ItsAid information * @desc Receive template for HeaderField with ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField mw_header_field_its_aid( template (present) HeaderField mw_header_field_its_aid( in template (present) IntX p_its_aid := ? ) := { type_ := e_its_aid, Loading @@ -1326,6 +1376,28 @@ module LibItsSecurity_Templates { } } // End of template mw_header_field_its_aid /** * @desc Receive template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField mw_header_field_its_aid_CAM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_CAM } } // End of template mw_header_field_its_aid_CAM /** * @desc Receive template for HeaderField with CAM ItsAid identifier * @see Draft ETSI TS 103 097 V1.1.9 Clause 5.4 HeaderField */ template (value) HeaderField mw_header_field_its_aid_DENM := { type_ := e_its_aid, headerField := { its_aid := c_its_aid_DENM } } // End of template mw_header_field_its_aid_DENM } // End of group headerFieldsRecv } // End of group headerFields Loading