Commit 1a549629 authored by Yann Garcia's avatar Yann Garcia
Browse files

Bug fixed in TC_SEC_ITSS_SND_DENM_17_BV

parent 767ded71
Loading
Loading
Loading
Loading
+46 −2
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ module ItsSecurity_Functions {
    import from LibItsDenm_Templates all;
    import from LibItsDenm_Templates all;
    import from LibItsDenm_Functions all;
    import from LibItsDenm_Functions all;
    import from LibItsDenm_TestSystem all;
    import from LibItsDenm_TestSystem all;
    import from LibItsDenm_TypesAndValues all;
    
    
    // LibItsCam
    // LibItsCam
    import from LibItsCam_Templates all;
    import from LibItsCam_Templates all;
@@ -861,14 +862,41 @@ module ItsSecurity_Functions {
            return v_denmComponent;
            return v_denmComponent;
        } // End of function f_triggerDenmEvent
        } // 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
        * @desc    Cancels all previously triggered DENM events on IUT
        * @param   p_denmComponent     Reference of the component previously used to trigger DENM events
        * @param   p_denmComponent     Reference of the component previously used to trigger DENM events
        * @see     fb_secCancelDenmEvent()
        * @see     fb_secCancelDenmEvent()
        */
        */
        function f_cancelDenmEvent(ItsDenm p_denmComponent) runs on ItsBaseGeoNetworking {
        function f_cancelDenmEvent(ItsDenm p_denmComponent) runs on ItsBaseGeoNetworking {
            var ItsDenm v_denmComponent;
            
            //deactivate gnPort default alts
            //deactivate gnPort default alts
            vc_gnDefaultActive := false;
            vc_gnDefaultActive := false;
            
            
@@ -897,8 +925,24 @@ module ItsSecurity_Functions {
            vc_utActionIds[0] := LibItsDenm_Functions.f_utTriggerEvent(m_utTriggerEvent(v_situation, defaultValidity));
            vc_utActionIds[0] := LibItsDenm_Functions.f_utTriggerEvent(m_utTriggerEvent(v_situation, defaultValidity));
            log("fb_secTriggerDenmEvent: actionId=", vc_utActionIds[0]);
            log("fb_secTriggerDenmEvent: actionId=", vc_utActionIds[0]);
            
            
            unmap(self:utPort, system:denmUtPort);
        }  // End of function f_secTriggerDenmEvent
        }  // 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
        * @desc Behaviour function for cancelling previously triggered DENM events on IUT
        */
        */
+49 −25
Original line number Original line Diff line number Diff line
@@ -5569,7 +5569,7 @@ module ItsSecurity_TestCases {
                        if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) {
                        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 };                            
                            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 ***");
                                log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***");
                                f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
                                f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
                            } else {
                            } else {
@@ -5709,7 +5709,7 @@ module ItsSecurity_TestCases {
                        if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) {
                        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 };                            
                            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 ***");
                                log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***");
                                f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
                                f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
                            } else {
                            } else {
@@ -6434,6 +6434,8 @@ module ItsSecurity_TestCases {
            testcase TC_SEC_ITSS_SND_DENM_17_BV() runs on ItsGeoNetworking system ItsSecSystem {
            testcase TC_SEC_ITSS_SND_DENM_17_BV() runs on ItsGeoNetworking system ItsSecSystem {
                // Local variables
                // Local variables
                var ItsDenm                 v_denmComponent;
                var ItsDenm                 v_denmComponent;
                var EtsiTs103097Certificate v_certificate;
                var HashedId8               v_certificate_digest;
                
                
                // Test control
                // Test control
                if (not(PICS_GN_SECURITY)) {
                if (not(PICS_GN_SECURITY)) {
@@ -6442,14 +6444,17 @@ module ItsSecurity_TestCases {
                }
                }
                
                
                // Test component configuration
                // Test component configuration
                vc_hashedId8ToBeUsed := cc_iutCert_C1;
                //vc_hashedId8ToBeUsed := cc_iutCert_C1;
                f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT
                f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT
                
                
                // Test adapter configuration
                // Test adapter configuration
                
                
                // Preamble
                // Preamble
                f_readCertificate(cc_iutCert_C1, v_certificate);
                f_getCertificateDigest(cc_iutCert_C1, v_certificate_digest);
                f_prNeighbour();
                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);
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                
                // Test Body
                // Test Body
@@ -6479,7 +6484,7 @@ module ItsSecurity_TestCases {
                } // End of 'alt' statement
                } // End of 'alt' statement
                
                
                // Postamble
                // Postamble
                f_cancelDenmEvent(v_denmComponent);
                //f_cancelDenmEvent(v_denmComponent);
                f_poNeighbour();
                f_poNeighbour();
                f_cf01Down();
                f_cf01Down();
            } // End of testcase TC_SEC_ITSS_SND_DENM_17_BV
            } // End of testcase TC_SEC_ITSS_SND_DENM_17_BV
@@ -6515,6 +6520,8 @@ module ItsSecurity_TestCases {
            testcase TC_SEC_ITSS_SND_DENM_18_BV() runs on ItsGeoNetworking system ItsSecSystem {
            testcase TC_SEC_ITSS_SND_DENM_18_BV() runs on ItsGeoNetworking system ItsSecSystem {
                // Local variables
                // Local variables
                var ItsDenm                 v_denmComponent;
                var ItsDenm                 v_denmComponent;
                var EtsiTs103097Certificate v_certificate;
                var HashedId8               v_certificate_digest;
                
                
                // Test control
                // Test control
                if (not(PICS_GN_SECURITY)) {
                if (not(PICS_GN_SECURITY)) {
@@ -6523,14 +6530,17 @@ module ItsSecurity_TestCases {
                }
                }
                
                
                // Test component configuration
                // Test component configuration
                vc_hashedId8ToBeUsed := cc_iutCert_CA3;
                //vc_hashedId8ToBeUsed := cc_iutCert_CA3;
                f_cf01Up(); // Initialise IUT with CERT_IUT_CA3_AT
                f_cf01Up(); // Initialise IUT with CERT_IUT_CA3_AT
                
                
                // Test adapter configuration
                // Test adapter configuration
                
                
                // Preamble
                // Preamble
                f_readCertificate(cc_iutCert_CA3, v_certificate);
                f_getCertificateDigest(cc_iutCert_CA3, v_certificate_digest);
                f_prNeighbour();
                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);
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                
                // Test Body
                // Test Body
@@ -6560,7 +6570,7 @@ module ItsSecurity_TestCases {
                } // End of 'alt' statement
                } // End of 'alt' statement
                
                
                // Postamble
                // Postamble
                f_cancelDenmEvent(v_denmComponent);
                //f_cancelDenmEvent(v_denmComponent);
                f_poNeighbour();
                f_poNeighbour();
                f_cf01Down();
                f_cf01Down();
            } // End of testcase TC_SEC_ITSS_SND_DENM_18_BV
            } // End of testcase TC_SEC_ITSS_SND_DENM_18_BV
@@ -6592,6 +6602,8 @@ module ItsSecurity_TestCases {
            testcase TC_SEC_ITSS_SND_DENM_19_BV() runs on ItsGeoNetworking system ItsSecSystem {
            testcase TC_SEC_ITSS_SND_DENM_19_BV() runs on ItsGeoNetworking system ItsSecSystem {
                // Local variables
                // Local variables
                var ItsDenm                 v_denmComponent;
                var ItsDenm                 v_denmComponent;
                var EtsiTs103097Certificate v_certificate;
                var HashedId8               v_certificate_digest;
                
                
                // Test control
                // Test control
                if (not(PICS_GN_SECURITY)) {
                if (not(PICS_GN_SECURITY)) {
@@ -6600,14 +6612,17 @@ module ItsSecurity_TestCases {
                }
                }
                
                
                // Test component configuration
                // Test component configuration
                vc_hashedId8ToBeUsed := cc_iutCert_A1;
                //vc_hashedId8ToBeUsed := cc_iutCert_A1;
                f_cf01Up(); // Initialise IUT with CERT_IUT_A1_AT
                f_cf01Up(); // Initialise IUT with CERT_IUT_A1_AT
                
                
                // Test adapter configuration
                // Test adapter configuration
                
                
                // Preamble
                // Preamble
                f_readCertificate(cc_iutCert_A1, v_certificate);
                f_getCertificateDigest(cc_iutCert_A1, v_certificate_digest);
                f_prNeighbour();
                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);
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                
                // Test Body
                // Test Body
@@ -6637,7 +6652,7 @@ module ItsSecurity_TestCases {
                } // End of 'alt' statement
                } // End of 'alt' statement
                
                
                // Postamble
                // Postamble
                f_cancelDenmEvent(v_denmComponent);
                //f_cancelDenmEvent(v_denmComponent);
                f_poNeighbour();
                f_poNeighbour();
                f_cf01Down();
                f_cf01Down();
            } // End of testcase TC_SEC_ITSS_SND_DENM_19_BV
            } // End of testcase TC_SEC_ITSS_SND_DENM_19_BV
@@ -6669,6 +6684,8 @@ module ItsSecurity_TestCases {
            testcase TC_SEC_ITSS_SND_DENM_20_BV() runs on ItsGeoNetworking system ItsSecSystem {
            testcase TC_SEC_ITSS_SND_DENM_20_BV() runs on ItsGeoNetworking system ItsSecSystem {
                // Local variables
                // Local variables
                var ItsDenm                 v_denmComponent;
                var ItsDenm                 v_denmComponent;
                var EtsiTs103097Certificate v_certificate;
                var HashedId8               v_certificate_digest;
                
                
                // Test control
                // Test control
                if (not(PICS_GN_SECURITY)) {
                if (not(PICS_GN_SECURITY)) {
@@ -6677,14 +6694,17 @@ module ItsSecurity_TestCases {
                }
                }
                
                
                // Test component configuration
                // Test component configuration
                vc_hashedId8ToBeUsed := cc_iutCert_A2;
                //vc_hashedId8ToBeUsed := cc_iutCert_A2;
                f_cf01Up(); // Initialise IUT with CERT_IUT_A2_AT
                f_cf01Up(); // Initialise IUT with CERT_IUT_A2_AT
                
                
                // Test adapter configuration
                // Test adapter configuration
                
                
                // Preamble
                // Preamble
                f_readCertificate(cc_iutCert_A2, v_certificate);
                f_getCertificateDigest(cc_iutCert_A2, v_certificate_digest);
                f_prNeighbour();
                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);
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                
                // Test Body
                // Test Body
@@ -6714,7 +6734,7 @@ module ItsSecurity_TestCases {
                } // End of 'alt' statement
                } // End of 'alt' statement
                
                
                // Postamble
                // Postamble
                f_cancelDenmEvent(v_denmComponent);
                //f_cancelDenmEvent(v_denmComponent);
                f_poNeighbour();
                f_poNeighbour();
                f_cf01Down();
                f_cf01Down();
            } // End of testcase TC_SEC_ITSS_SND_DENM_20_BV
            } // End of testcase TC_SEC_ITSS_SND_DENM_20_BV
@@ -6731,7 +6751,7 @@ module ItsSecurity_TestCases {
             *         containing appPermissions
             *         containing appPermissions
             *             not containing PsidSSP
             *             not containing PsidSSP
             *                 containing psid
             *                 containing psid
             *                     indicating AID_CAM
             *                     indicating AID_DENM
             * }
             * }
             * ensure that {
             * ensure that {
             *     when {
             *     when {
@@ -6748,6 +6768,8 @@ module ItsSecurity_TestCases {
            testcase TC_SEC_ITSS_SND_DENM_21_BV() runs on ItsGeoNetworking system ItsSecSystem {
            testcase TC_SEC_ITSS_SND_DENM_21_BV() runs on ItsGeoNetworking system ItsSecSystem {
                // Local variables
                // Local variables
                var ItsDenm                 v_denmComponent;
                var ItsDenm                 v_denmComponent;
                var EtsiTs103097Certificate v_certificate;
                var HashedId8               v_certificate_digest;
                
                
                // Test control
                // Test control
                if (not(PICS_GN_SECURITY)) {
                if (not(PICS_GN_SECURITY)) {
@@ -6756,14 +6778,16 @@ module ItsSecurity_TestCases {
                }
                }
                
                
                // Test component configuration
                // Test component configuration
                vc_hashedId8ToBeUsed := cc_iutCert_A4;
                f_cf01Up();
                f_cf01Up(); // Initialise IUT with CERT_IUT_A4_AT
                
                
                // Test adapter configuration
                // Test adapter configuration
                
                
                // Preamble
                // Preamble
                f_readCertificate(cc_iutCert_A4, v_certificate);
                f_getCertificateDigest(cc_iutCert_A4, v_certificate_digest);
                f_prNeighbour();
                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);
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                
                // Test Body
                // Test Body
@@ -6793,7 +6817,7 @@ module ItsSecurity_TestCases {
                } // End of 'alt' statement
                } // End of 'alt' statement
                
                
                // Postamble
                // Postamble
                f_cancelDenmEvent(v_denmComponent);
                //f_cancelDenmEvent(v_denmComponent);
                f_poNeighbour();
                f_poNeighbour();
                f_cf01Down();
                f_cf01Down();
            } // End of testcase TC_SEC_ITSS_SND_DENM_21_BV
            } // End of testcase TC_SEC_ITSS_SND_DENM_21_BV
@@ -8315,7 +8339,7 @@ module ItsSecurity_TestCases {
            // Preamble
            // Preamble
            f_prNeighbour();
            f_prNeighbour();
            // Load certificates if required
            // 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);
              f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout);
            } else {
            } else {
              f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
              f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+4 −4
Original line number Original line Diff line number Diff line
@@ -23,13 +23,13 @@ module ItsSecurity_TestSystem {
     * @member denmUtPort           DENM UT port
     * @member denmUtPort           DENM UT port
     * @member cammUtPort           CAM 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
        // NT2 ports
        port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort;
        //port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort;
        port GeoNetworkingPort geoNetworkingPort;
        //port GeoNetworkingPort geoNetworkingPort;
        
        
        // FA ports
        // FA ports
        port LibItsDenm_TestSystem.UpperTesterPort denmUtPort;
        port LibItsDenm_TestSystem.UpperTesterPort denmUtPort;