Loading ItsSecurity_Functions.ttcn +80 −2 Original line number Diff line number Diff line Loading @@ -28,11 +28,13 @@ module ItsSecurity_Functions { import from LibItsCommon_ASN1_NamedNumbers all; // LibItsDenm import from LibItsDenm_TypesAndValues all; import from LibItsDenm_Templates all; import from LibItsDenm_Functions all; import from LibItsDenm_TestSystem all; // LibItsCam import from LibItsCam_TypesAndValues all; import from LibItsCam_Templates all; import from LibItsCam_Functions all; import from LibItsCam_TestSystem all; Loading Loading @@ -766,6 +768,23 @@ module ItsSecurity_Functions { return v_camComponent; } // End of function f_setCamFrequencyGreatherThan1Hz /** * @desc Triggers a CAM change pseudonum to load a specific certificate * @return Reference to the component used to send the trigger * @remark This function spawns an ItsCam component in alive mode * @see fb_utCamChangePseudonym() */ function f_camChangePseudonym( in template (value) UtCamChangePseudonym p_utCamChangePseudonym ) runs on ItsBaseComponent return ItsCam { var ItsCam v_camComponent; v_camComponent := ItsCam.create("CAM Trigger") alive; v_camComponent.start(fb_utCamChangePseudonym(p_utCamChangePseudonym)); return v_camComponent; } /** * @desc Terminate CAM component execution * @param Reference to the component used to send the trigger Loading Loading @@ -801,6 +820,22 @@ module ItsSecurity_Functions { unmap(self:utPort, system:camUtPort); } // End of function fb_setCamFrequencyGreatherThan1Hz /** * @desc Behaviour function for triggering a CAM change pseudonym event on IUT */ function fb_utCamChangePseudonym( in template (value) UtCamChangePseudonym p_utCamChangePseudonym ) runs on ItsCam { log(">>> fb_utCamChangePseudonym"); map(self:utPort, system:camUtPort); vc_default := activate(LibItsCam_Functions.a_utDefault()); LibItsCam_Functions.f_utCamChangePseudonym(p_utCamChangePseudonym); unmap(self:utPort, system:camUtPort); } } // End of group camTrigger group denmTrigger { Loading @@ -827,14 +862,41 @@ module ItsSecurity_Functions { return v_denmComponent; } // End of function f_triggerDenmEvent function f_denmChangePseudonym( in template (value) UtDenmChangePseudonym p_utDenmChangePseudonym ) runs on ItsBaseGeoNetworking return ItsDenm { var ItsDenm v_denmComponent; //deactivate gnPort default alts vc_gnDefaultActive := false; v_denmComponent := ItsDenm.create("DENM Trigger 1") alive; v_denmComponent.start(fb_secDenmChangePseudonym(p_utDenmChangePseudonym)); v_denmComponent.done; //activate gnPort default alts vc_gnDefaultActive := true; return v_denmComponent; } // End of function f_denmChangePseudonym function f_triggerDenmEvent_1(ItsDenm p_denmComponent) runs on ItsBaseGeoNetworking { //deactivate gnPort default alts vc_gnDefaultActive := false; p_denmComponent.start(fb_secTriggerDenmEvent()); p_denmComponent.done; //activate gnPort default alts vc_gnDefaultActive := true; } // End of function f_triggerDenmEvent_1 /** * @desc Cancels all previously triggered DENM events on IUT * @param p_denmComponent Reference of the component previously used to trigger DENM events * @see fb_secCancelDenmEvent() */ function f_cancelDenmEvent(ItsDenm p_denmComponent) runs on ItsBaseGeoNetworking { var ItsDenm v_denmComponent; //deactivate gnPort default alts vc_gnDefaultActive := false; Loading Loading @@ -863,8 +925,24 @@ module ItsSecurity_Functions { vc_utActionIds[0] := LibItsDenm_Functions.f_utTriggerEvent(m_utTriggerEvent(v_situation, defaultValidity)); log("fb_secTriggerDenmEvent: actionId=", vc_utActionIds[0]); unmap(self:utPort, system:denmUtPort); } // End of function f_secTriggerDenmEvent function fb_secDenmChangePseudonym( in template (value) UtDenmChangePseudonym p_utDenmChangePseudonym ) runs on ItsDenm /* TITAN TODO: system ItsSecSystem */ { // Local variables log(">>> fb_secDenmChangePseudonym: ", p_utDenmChangePseudonym); map(self:utPort, system:denmUtPort); vc_default := activate(LibItsDenm_Functions.a_utDefault()); LibItsDenm_Functions.f_utChangePseudonym(p_utDenmChangePseudonym); unmap(self:utPort, system:denmUtPort); } // End of function fb_secDenmChangePseudonym /** * @desc Behaviour function for cancelling previously triggered DENM events on IUT */ Loading ItsSecurity_TestCases.ttcn +89 −28 Original line number Diff line number Diff line Loading @@ -3768,6 +3768,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_23_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -3776,17 +3779,21 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_C1; //vc_hashedId8ToBeUsed := cc_iutCert_C1; f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_C1, v_certificate); f_getCertificateDigest(cc_iutCert_C1, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -3812,6 +3819,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_23_BV Loading Loading @@ -3846,6 +3854,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_24_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -3855,17 +3866,21 @@ module ItsSecurity_TestCases { // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_CA3; //vc_hashedId8ToBeUsed := cc_iutCert_CA3; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_CA3, v_certificate); f_getCertificateDigest(cc_iutCert_CA3, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -3891,6 +3906,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_24_BV Loading Loading @@ -3922,6 +3938,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_25_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -3929,19 +3948,22 @@ module ItsSecurity_TestCases { stop; } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A1; //vc_hashedId8ToBeUsed := cc_iutCert_A1; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A1, v_certificate); f_getCertificateDigest(cc_iutCert_A1, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -3967,6 +3989,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_25_BV Loading Loading @@ -3998,6 +4021,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_26_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -4005,19 +4031,22 @@ module ItsSecurity_TestCases { stop; } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A2; //vc_hashedId8ToBeUsed := cc_iutCert_A2; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A2, v_certificate); f_getCertificateDigest(cc_iutCert_A2, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -4043,6 +4072,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_26_BV Loading Loading @@ -4077,6 +4107,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_27_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -4084,19 +4117,22 @@ module ItsSecurity_TestCases { stop; } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A3; //vc_hashedId8ToBeUsed := cc_iutCert_A3; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A3, v_certificate); f_getCertificateDigest(cc_iutCert_A3, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -4122,6 +4158,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_27_BV Loading Loading @@ -5532,7 +5569,7 @@ module ItsSecurity_TestCases { if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { if (f_isLocationInsideRegion(v_aa_certificate.toBeSigned.region, v_location) == true) { log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); } else { Loading Loading @@ -5672,7 +5709,7 @@ module ItsSecurity_TestCases { if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { if (f_isLocationInsideRegion(v_aa_certificate.toBeSigned.region, v_location) == true) { log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); } else { Loading Loading @@ -6397,6 +6434,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_17_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6405,14 +6444,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_C1; //vc_hashedId8ToBeUsed := cc_iutCert_C1; f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_C1, v_certificate); f_getCertificateDigest(cc_iutCert_C1, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6442,7 +6484,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_17_BV Loading Loading @@ -6478,6 +6520,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_18_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6486,14 +6530,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_CA3; //vc_hashedId8ToBeUsed := cc_iutCert_CA3; f_cf01Up(); // Initialise IUT with CERT_IUT_CA3_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_CA3, v_certificate); f_getCertificateDigest(cc_iutCert_CA3, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6523,7 +6570,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_18_BV Loading Loading @@ -6555,6 +6602,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_19_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6563,14 +6612,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A1; //vc_hashedId8ToBeUsed := cc_iutCert_A1; f_cf01Up(); // Initialise IUT with CERT_IUT_A1_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A1, v_certificate); f_getCertificateDigest(cc_iutCert_A1, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6600,7 +6652,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_19_BV Loading Loading @@ -6632,6 +6684,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_20_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6640,14 +6694,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A2; //vc_hashedId8ToBeUsed := cc_iutCert_A2; f_cf01Up(); // Initialise IUT with CERT_IUT_A2_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A2, v_certificate); f_getCertificateDigest(cc_iutCert_A2, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6677,7 +6734,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_20_BV Loading @@ -6694,7 +6751,7 @@ module ItsSecurity_TestCases { * containing appPermissions * not containing PsidSSP * containing psid * indicating AID_CAM * indicating AID_DENM * } * ensure that { * when { Loading @@ -6711,6 +6768,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_21_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6719,14 +6778,16 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A4; f_cf01Up(); // Initialise IUT with CERT_IUT_A4_AT f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A4, v_certificate); f_getCertificateDigest(cc_iutCert_A4, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6756,7 +6817,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_21_BV Loading Loading @@ -8278,7 +8339,7 @@ module ItsSecurity_TestCases { // Preamble f_prNeighbour(); // Load certificates if required if (f_prepareCertificates(cc_iutCert_A_B, v_aaCertificate, v_atCertificate) == false) { if (f_prepareCertificates(cc_taCert_B1, v_aaCertificate, v_atCertificate) == false) { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } else { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); Loading ItsSecurity_TestSystem.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -23,13 +23,13 @@ module ItsSecurity_TestSystem { * @member denmUtPort DENM UT port * @member cammUtPort CAM UT port */ type component ItsSecSystem { type component ItsSecSystem extends ItsGeoNetworkingSystem { port LibItsGeoNetworking_TestSystem.AdapterControlPort acPort; //port LibItsGeoNetworking_TestSystem.AdapterControlPort acPort; // NT2 ports port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort; port GeoNetworkingPort geoNetworkingPort; //port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort; //port GeoNetworkingPort geoNetworkingPort; // FA ports port LibItsDenm_TestSystem.UpperTesterPort denmUtPort; Loading Loading
ItsSecurity_Functions.ttcn +80 −2 Original line number Diff line number Diff line Loading @@ -28,11 +28,13 @@ module ItsSecurity_Functions { import from LibItsCommon_ASN1_NamedNumbers all; // LibItsDenm import from LibItsDenm_TypesAndValues all; import from LibItsDenm_Templates all; import from LibItsDenm_Functions all; import from LibItsDenm_TestSystem all; // LibItsCam import from LibItsCam_TypesAndValues all; import from LibItsCam_Templates all; import from LibItsCam_Functions all; import from LibItsCam_TestSystem all; Loading Loading @@ -766,6 +768,23 @@ module ItsSecurity_Functions { return v_camComponent; } // End of function f_setCamFrequencyGreatherThan1Hz /** * @desc Triggers a CAM change pseudonum to load a specific certificate * @return Reference to the component used to send the trigger * @remark This function spawns an ItsCam component in alive mode * @see fb_utCamChangePseudonym() */ function f_camChangePseudonym( in template (value) UtCamChangePseudonym p_utCamChangePseudonym ) runs on ItsBaseComponent return ItsCam { var ItsCam v_camComponent; v_camComponent := ItsCam.create("CAM Trigger") alive; v_camComponent.start(fb_utCamChangePseudonym(p_utCamChangePseudonym)); return v_camComponent; } /** * @desc Terminate CAM component execution * @param Reference to the component used to send the trigger Loading Loading @@ -801,6 +820,22 @@ module ItsSecurity_Functions { unmap(self:utPort, system:camUtPort); } // End of function fb_setCamFrequencyGreatherThan1Hz /** * @desc Behaviour function for triggering a CAM change pseudonym event on IUT */ function fb_utCamChangePseudonym( in template (value) UtCamChangePseudonym p_utCamChangePseudonym ) runs on ItsCam { log(">>> fb_utCamChangePseudonym"); map(self:utPort, system:camUtPort); vc_default := activate(LibItsCam_Functions.a_utDefault()); LibItsCam_Functions.f_utCamChangePseudonym(p_utCamChangePseudonym); unmap(self:utPort, system:camUtPort); } } // End of group camTrigger group denmTrigger { Loading @@ -827,14 +862,41 @@ module ItsSecurity_Functions { return v_denmComponent; } // End of function f_triggerDenmEvent function f_denmChangePseudonym( in template (value) UtDenmChangePseudonym p_utDenmChangePseudonym ) runs on ItsBaseGeoNetworking return ItsDenm { var ItsDenm v_denmComponent; //deactivate gnPort default alts vc_gnDefaultActive := false; v_denmComponent := ItsDenm.create("DENM Trigger 1") alive; v_denmComponent.start(fb_secDenmChangePseudonym(p_utDenmChangePseudonym)); v_denmComponent.done; //activate gnPort default alts vc_gnDefaultActive := true; return v_denmComponent; } // End of function f_denmChangePseudonym function f_triggerDenmEvent_1(ItsDenm p_denmComponent) runs on ItsBaseGeoNetworking { //deactivate gnPort default alts vc_gnDefaultActive := false; p_denmComponent.start(fb_secTriggerDenmEvent()); p_denmComponent.done; //activate gnPort default alts vc_gnDefaultActive := true; } // End of function f_triggerDenmEvent_1 /** * @desc Cancels all previously triggered DENM events on IUT * @param p_denmComponent Reference of the component previously used to trigger DENM events * @see fb_secCancelDenmEvent() */ function f_cancelDenmEvent(ItsDenm p_denmComponent) runs on ItsBaseGeoNetworking { var ItsDenm v_denmComponent; //deactivate gnPort default alts vc_gnDefaultActive := false; Loading Loading @@ -863,8 +925,24 @@ module ItsSecurity_Functions { vc_utActionIds[0] := LibItsDenm_Functions.f_utTriggerEvent(m_utTriggerEvent(v_situation, defaultValidity)); log("fb_secTriggerDenmEvent: actionId=", vc_utActionIds[0]); unmap(self:utPort, system:denmUtPort); } // End of function f_secTriggerDenmEvent function fb_secDenmChangePseudonym( in template (value) UtDenmChangePseudonym p_utDenmChangePseudonym ) runs on ItsDenm /* TITAN TODO: system ItsSecSystem */ { // Local variables log(">>> fb_secDenmChangePseudonym: ", p_utDenmChangePseudonym); map(self:utPort, system:denmUtPort); vc_default := activate(LibItsDenm_Functions.a_utDefault()); LibItsDenm_Functions.f_utChangePseudonym(p_utDenmChangePseudonym); unmap(self:utPort, system:denmUtPort); } // End of function fb_secDenmChangePseudonym /** * @desc Behaviour function for cancelling previously triggered DENM events on IUT */ Loading
ItsSecurity_TestCases.ttcn +89 −28 Original line number Diff line number Diff line Loading @@ -3768,6 +3768,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_23_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -3776,17 +3779,21 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_C1; //vc_hashedId8ToBeUsed := cc_iutCert_C1; f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_C1, v_certificate); f_getCertificateDigest(cc_iutCert_C1, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -3812,6 +3819,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_23_BV Loading Loading @@ -3846,6 +3854,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_24_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -3855,17 +3866,21 @@ module ItsSecurity_TestCases { // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_CA3; //vc_hashedId8ToBeUsed := cc_iutCert_CA3; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_CA3, v_certificate); f_getCertificateDigest(cc_iutCert_CA3, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -3891,6 +3906,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_24_BV Loading Loading @@ -3922,6 +3938,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_25_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -3929,19 +3948,22 @@ module ItsSecurity_TestCases { stop; } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A1; //vc_hashedId8ToBeUsed := cc_iutCert_A1; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A1, v_certificate); f_getCertificateDigest(cc_iutCert_A1, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -3967,6 +3989,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_25_BV Loading Loading @@ -3998,6 +4021,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_26_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -4005,19 +4031,22 @@ module ItsSecurity_TestCases { stop; } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A2; //vc_hashedId8ToBeUsed := cc_iutCert_A2; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A2, v_certificate); f_getCertificateDigest(cc_iutCert_A2, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -4043,6 +4072,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_26_BV Loading Loading @@ -4077,6 +4107,9 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_CAM_27_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsCam v_component; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -4084,19 +4117,22 @@ module ItsSecurity_TestCases { stop; } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A3; //vc_hashedId8ToBeUsed := cc_iutCert_A3; f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A3, v_certificate); f_getCertificateDigest(cc_iutCert_A3, v_certificate_digest); f_prNeighbour(); v_component := f_camChangePseudonym(m_utCamChangePseudonym(v_certificate_digest)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_noac.start; geoNetworkingPort.clear; alt { [] geoNetworkingPort.receive( mw_geoNwInd( Loading @@ -4122,6 +4158,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_terminateCam(v_component); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_CAM_27_BV Loading Loading @@ -5532,7 +5569,7 @@ module ItsSecurity_TestCases { if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { if (f_isLocationInsideRegion(v_aa_certificate.toBeSigned.region, v_location) == true) { log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); } else { Loading Loading @@ -5672,7 +5709,7 @@ module ItsSecurity_TestCases { if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { if (f_isLocationInsideRegion(v_aa_certificate.toBeSigned.region, v_location) == true) { log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); } else { Loading Loading @@ -6397,6 +6434,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_17_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6405,14 +6444,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_C1; //vc_hashedId8ToBeUsed := cc_iutCert_C1; f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_C1, v_certificate); f_getCertificateDigest(cc_iutCert_C1, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6442,7 +6484,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_17_BV Loading Loading @@ -6478,6 +6520,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_18_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6486,14 +6530,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_CA3; //vc_hashedId8ToBeUsed := cc_iutCert_CA3; f_cf01Up(); // Initialise IUT with CERT_IUT_CA3_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_CA3, v_certificate); f_getCertificateDigest(cc_iutCert_CA3, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6523,7 +6570,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_18_BV Loading Loading @@ -6555,6 +6602,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_19_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6563,14 +6612,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A1; //vc_hashedId8ToBeUsed := cc_iutCert_A1; f_cf01Up(); // Initialise IUT with CERT_IUT_A1_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A1, v_certificate); f_getCertificateDigest(cc_iutCert_A1, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6600,7 +6652,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_19_BV Loading Loading @@ -6632,6 +6684,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_20_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6640,14 +6694,17 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A2; //vc_hashedId8ToBeUsed := cc_iutCert_A2; f_cf01Up(); // Initialise IUT with CERT_IUT_A2_AT // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A2, v_certificate); f_getCertificateDigest(cc_iutCert_A2, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6677,7 +6734,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_20_BV Loading @@ -6694,7 +6751,7 @@ module ItsSecurity_TestCases { * containing appPermissions * not containing PsidSSP * containing psid * indicating AID_CAM * indicating AID_DENM * } * ensure that { * when { Loading @@ -6711,6 +6768,8 @@ module ItsSecurity_TestCases { testcase TC_SEC_ITSS_SND_DENM_21_BV() runs on ItsGeoNetworking system ItsSecSystem { // Local variables var ItsDenm v_denmComponent; var EtsiTs103097Certificate v_certificate; var HashedId8 v_certificate_digest; // Test control if (not(PICS_GN_SECURITY)) { Loading @@ -6719,14 +6778,16 @@ module ItsSecurity_TestCases { } // Test component configuration vc_hashedId8ToBeUsed := cc_iutCert_A4; f_cf01Up(); // Initialise IUT with CERT_IUT_A4_AT f_cf01Up(); // Test adapter configuration // Preamble f_readCertificate(cc_iutCert_A4, v_certificate); f_getCertificateDigest(cc_iutCert_A4, v_certificate_digest); f_prNeighbour(); v_denmComponent := f_triggerDenmEvent(); v_denmComponent := f_denmChangePseudonym(m_utDenmChangePseudonym(v_certificate_digest)); f_triggerDenmEvent_1(v_denmComponent); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body Loading Loading @@ -6756,7 +6817,7 @@ module ItsSecurity_TestCases { } // End of 'alt' statement // Postamble f_cancelDenmEvent(v_denmComponent); //f_cancelDenmEvent(v_denmComponent); f_poNeighbour(); f_cf01Down(); } // End of testcase TC_SEC_ITSS_SND_DENM_21_BV Loading Loading @@ -8278,7 +8339,7 @@ module ItsSecurity_TestCases { // Preamble f_prNeighbour(); // Load certificates if required if (f_prepareCertificates(cc_iutCert_A_B, v_aaCertificate, v_atCertificate) == false) { if (f_prepareCertificates(cc_taCert_B1, v_aaCertificate, v_atCertificate) == false) { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } else { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); Loading
ItsSecurity_TestSystem.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -23,13 +23,13 @@ module ItsSecurity_TestSystem { * @member denmUtPort DENM UT port * @member cammUtPort CAM UT port */ type component ItsSecSystem { type component ItsSecSystem extends ItsGeoNetworkingSystem { port LibItsGeoNetworking_TestSystem.AdapterControlPort acPort; //port LibItsGeoNetworking_TestSystem.AdapterControlPort acPort; // NT2 ports port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort; port GeoNetworkingPort geoNetworkingPort; //port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort; //port GeoNetworkingPort geoNetworkingPort; // FA ports port LibItsDenm_TestSystem.UpperTesterPort denmUtPort; Loading