Skip to content
titanization.patch 1.83 MiB
Newer Older
25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 25016 25017 25018 25019 25020 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 25046 25047 25048 25049 25050 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25076 25077 25078 25079 25080 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25106 25107 25108 25109 25110 25111 25112 25113 25114 25115 25116 25117 25118 25119 25120 25121 25122 25123 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25135 25136 25137 25138 25139 25140 25141 25142 25143 25144 25145 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 25184 25185 25186 25187 25188 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25214 25215 25216 25217 25218 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25244 25245 25246 25247 25248 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25274 25275 25276 25277 25278 25279 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25291 25292 25293 25294 25295 25296 25297 25298 25299 25300 25301 25302 25303 25304 25305 25306 25307 25308 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 25346 25347 25348 25349 25350 25351 25352 25353 25354 25355 25356 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25382 25383 25384 25385 25386 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25412 25413 25414 25415 25416 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25442 25443 25444 25445 25446 25447 25448 25449 25450 25451 25452 25453 25454 25455 25456 25457 25458 25459 25460 25461 25462 25463 25464 25465 25466 25467 25468 25469 25470 25471 25472 25473 25474 25475 25476 25477 25478 25479 25480 25481 25482 25483 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 25519 25520 25521 25522 25523 25524 25525 25526 25527 25528 25529 25530 25531 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25555 25556 25557 25558 25559 25560 25561 25562 25563 25564 25565 25566 25567 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25591 25592 25593 25594 25595 25596 25597 25598 25599 25600 25601 25602 25603 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25627 25628 25629 25630 25631 25632 25633 25634 25635 25636 25637 25638 25639 25640 25641 25642 25643 25644 25645 25646 25647 25648 25649 25650 25651 25652 25653 25654 25655 25656 25657 25658 25659 25660 25661 25662 25663 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 25699 25700 25701 25702 25703 25704 25705 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25729 25730 25731 25732 25733 25734 25735 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25759 25760 25761 25762 25763 25764 25765 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25789 25790 25791 25792 25793 25794 25795 25796 25797 25798 25799 25800 25801 25802 25803 25804 25805 25806 25807 25808 25809 25810 25811 25812 25813 25814 25815 25816 25817 25818 25819 25820 25821 25822 25823 25824 25825 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 25861 25862 25863 25864 25865 25866 25867 25868 25869 25870 25871 25872 25873 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25897 25898 25899 25900 25901 25902 25903 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25927 25928 25929 25930 25931 25932 25933 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25957 25958 25959 25960 25961 25962 25963 25964 25965 25966 25967 25968 25969 25970 25971 25972 25973 25974 25975 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25987 25988 25989 25990 25991 25992 25993 25994 25995 25996 25997 25998 25999 26000
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_12_03_BO
+            
+            /**
+             * @desc    Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'root_ca'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *      the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *          containing header_fields['signer_info']
+             *              containing signer
+             *                  containing type
+             *                      indicating 'certificate'
+             *              and certificate (CERT_TS_ROOT)
+             *                  containing subject_info.subject_type
+             *                      indicating 'root_ca'
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_04_BO
+             * @reference    ETSI TS 103 097 [1], clause 6.3
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(
+                    cc_taCert_CA, 
+                    {
+                        m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                        m_header_field_its_aid_DENM
+                    }, 
+                    e_certificate
+                ); 
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_12_04_BO
+            
+            /**
+             * @desc    Check that IUT discards secured DENM signed with the not yet valid certificate
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *          the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *              containing header_fields['signer_info'].signer 
+             *                  containing certificate (CERT_TS_MSG_13_01_BO_AT)
+             *                      containing validity_restrictions['time_start_and_end']
+             *                          containing start_validity
+             *                              indicating START_VALIDITY_AT > CURRENT_TIME
+             *                          and containing end_validity
+             *                              indicating END_VALIDITY_AT > START_VALIDITY_AT
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_01_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.2
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1301_BO, omit, e_certificate);
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_13_01_BO
+            
+            /**
+             * @desc    Check that IUT discards secured DENM signed with the expired certificate
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *          the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *              containing header_fields['signer_info'].signer 
+             *                  containing certificate (CERT_TS_MSG_13_02_BO_AT)
+             *                      containing validity_restrictions['time_start_and_end']
+             *                          containing start_validity
+             *                              indicating START_VALIDITY_AT < CURRENT_TIME
+             *                          and containing end_validity
+             *                              indicating END_VALIDITY_AT < START_VALIDITY_AT
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_02_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.2
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1302_BO, omit, e_certificate);
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_13_02_BO
+            
+            /**
+             * @desc    Check that IUT discards secured DENM when IUT location is outside the circular validity restriction of the signing certificate
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *          the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *              containing header_fields['signer_info'].signer 
+             *                  containing certificate (CERT_TS_MSG_13_03_BO_AT)
+             *                      containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'circle'
+             *                              and containing circular_region
+             *                                  indicating REGION
+             *                                      not containing the CURRENT_IUT_LOCATION
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_03_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.2
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1303_BO, omit, e_certificate);
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_13_03_BO
+            
+            /**
+             * @desc    Check that IUT discards secured DENM when IUT location is outside the rectangular validity restriction of the signing certificate
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *          the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *              containing header_fields['signer_info'].signer 
+             *                  containing certificate (CERT_TS_MSG_13_04_BO_AT)
+             *                      containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'polygon'
+             *                              and containing polygonal_region
+             *                                  indicating REGION
+             *                                      not containing the CURRENT_IUT_LOCATION
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_04_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.2
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_13_04_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1304_BO, omit, e_certificate);
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_13_04_BO
+            
+            /**
+             * @desc    Check that IUT discards secured DENM when IUT location is outside the polygonal validity restriction of the signing certificate
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *          the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *              containing header_fields['signer_info'].signer 
+             *                  containing certificate (CERT_TS_MSG_13_05_BO_AT)
+             *                      containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'rectangle'
+             *                              and containing rectanglar_region
+             *                                  indicating REGION
+             *                                      not containing the CURRENT_IUT_LOCATION
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_05_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.2
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_13_05_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1305_BO, omit, e_certificate);
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_13_05_BO
+            
+            /**
+             * @desc    Check that IUT discards secured DENM when IUT location is outside the identified validity restriction of the signing certificate
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *     when {
+             *          the IUT is receiving a SecuredMessage (MSG_SEC_RCV_DENM_A)
+             *              containing header_fields['signer_info'].signer 
+             *                  containing certificate (CERT_TS_MSG_13_06_BO_AT)
+             *                      containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'id'
+             *                              and containing id_region
+             *                                  indicating REGION
+             *                                      not containing the CURRENT_IUT_LOCATION
+             *   } then {
+             *       the IUT discards the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_06_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.2
+             */
+            testcase TC_SEC_ITSS_RCV_DENM_13_06_BO() runs on ItsGeoNetworking system ItsSecSystem {
+                
+                // Local variables
+                var integer i;
+                var GeoNetworkingPdu v_securedGnPdu;
+                var GnRawPayload v_sentRawPayload;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY)) {
+                    log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***");
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf01Up();
+                
+                // Test adapter configuration
+                
+                // Preamble
+                f_prNeighbour();
+                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                
+                // Test Body
+                v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1306_BO, omit, e_certificate);
+                
+                f_sleep(PX_TNOAC);
+                v_sentRawPayload := f_adaptPayloadForUtInd_m(v_securedGnPdu.gnPacket.packet.payload);
+                for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) {
+                    // Empty on purpose 
+                }
+                if (i < lengthof(vc_utInds)) {
+                    log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                }
+                else {
+                    log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer ***");
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                }
+                
+                // Postamble
+                f_poNeighbour();
+                f_cf01Down();
+            } // End of testcase TC_SEC_ITSS_RCV_DENM_13_06_BO
+            
+        } // End of group recvDenmProfile
+        
+        /**
+         * @desc Receiving behaviour test cases for Other profile
+         * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.3.4 Generic Signed Message Profile
+         */
+        group recvOtherProfile {
+            
+            /**
+             * @desc Function used to verify the IUT has forwarded or discarded the received secured message sent by the TA
+             */
+            group commonFunctions {
+                
+                /**
+                 * @desc    Behavior function for NodeD in case of forwarding is expected
+                 * @see     TC_GEONW_PON_GBC_BV_01
+                 */
+                function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+                    
+                    // Test Body
+                    tc_ac.start;
+                    alt {
+                        [] geoNetworkingPort.receive(
+                            mw_geoNwInd(
+                                mw_geoNwSecPdu(
+                                    mdw_securedMessage_dummy, 
+                                    mw_geoNwBroadcastPacketWithArea(
+                                        mw_longPosVectorPosition(
+                                            v_longPosVectorNodeB
+                                        ),
+                                        ?,
+                                        f_getGeoBroadcastArea(c_area1)
+                        )))) {
+                            tc_ac.stop;
+                            log("*** " & testcasename() & ": PASS: Beacon message was forwarded ***");
+                            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                        }
+                        [] geoNetworkingPort.receive(
+                            mw_geoNwInd(
+                                mw_geoNwSecPdu(
+                                    mdw_securedMessage_dummy
+                        ))) {
+                            // Do not restart tc_ac timer
+                            log("*** " & testcasename() & ": INFO: Unexpected GN message ignored ***");
+                            repeat;
+                        }
+                        [] tc_ac.timeout {
+                            log("*** " & testcasename() & ": FAIL: GBC message not received ***");
+                            f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
+                        }
+                    }
+                    
+                    // Postamble
+                    f_poNeighbour();
+                    
+                } // End of function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD
+                
+                /**
+                 * @desc    Behavior function for NodeD in case of forwarding is not expected
+                 * @see     TC_GEONW_PON_GBC_BV_01
+                 */
+                function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut);
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
+                    
+                    // Test Body
+                    tc_noac.start;
+                    alt {
+                        [] geoNetworkingPort.receive(
+                            mw_geoNwInd(
+                                mw_geoNwSecPdu(
+                                    mdw_securedMessage_dummy, 
+                                    mw_geoNwBroadcastPacketWithArea(
+                                        mw_longPosVectorPosition(
+                                            v_longPosVectorIut
+                                        ),
+                                        ?,
+                                        f_getGeoBroadcastArea(c_area1)
+                        )))) {
+                            tc_noac.stop;
+                            log("*** " & testcasename() & ": FAIL: Beacon message shall ot be forwarded ***");
+                            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+                        }
+                        [] geoNetworkingPort.receive(
+                            mw_geoNwInd(
+                                mw_geoNwSecPdu(
+                                    mdw_securedMessage_dummy
+                        ))) {
+                            // Do not restart tc_ac timer
+                            log("*** " & testcasename() & ": INFO: Unexpected GN message ignored ***");
+                            repeat;
+                        }
+                        [] tc_noac.timeout {
+                            log("*** " & testcasename() & ": PASS: Secured message was discarded ***");
+                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
+                        }
+                    }
+                    
+                    // Postamble
+                    f_poNeighbour();
+                    
+                } // End of function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD
+                
+            } // End of goup commonFunctions
+            
+            /**
+             * @desc    Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate without region validity restriction
+             * @remark  The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_A_AT
+             * }
+             * ensure that {
+             *   when {
+             *     the IUT is receiving a SecuredMessage
+             *          containing header_fields[0]
+             *              containing type 
+             *                  indicating 'signer_info'
+             *              and containing signer
+             *                  containing type
+             *                      indicating 'certificate'
+             *                  and containing certificate (CERT_AT_A)
+             *                      containing subject_info.subject_type
+             *                          indicating 'authorization_ticket' (2)
+             *                      and containing subject_attributes['verification key'] (KEY)
+             *                      and containing validity_restrictions['time_start_and_end']
+             *                          indicating CERT_TS_AT_TIME_VALIDITY
+             *             and not containing validity_restrictions['region']
+             *       and containing header_fields [1]
+             *         containing type 
+             *           indicating 'generation_time'
+             *              containing generation_time
+             *                  indicating CURRENT_TIME
+             *                      inside CERT_TS_AT_TIME_VALIDITY
+             *       and containing header_fields [2]
+             *           containing type 
+             *               indicating 'generation_location'
+             *                   containing generation_location
+             *           and containing generation_location
+             *       and containing header_fields[3]
+             *           containing type 
+             *               indicating 'its_aid'
+             *           and containing its_aid
+             *              indicating 'AID_BEACON'
+             *          and containing payload_field 
+             *               containing type
+             *                  indicating 'signed'
+             *              containing data
+             *                  indicating length > 0
+             *          and containing trailer_fields 
+             *              containing single instance of type TrailerField 
+             *                  containing type
+             *                      indicating 'signature'
+             *                  containing signature
+             *                      verifiable using KEY
+             *   } then {
+             *     the IUT accepts the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_01_BV
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_01_01_BV() runs on ItsMtc system ItsSecSystem {
+                
+                // Local variables
+                var ItsGeoNetworking v_nodeB;
+                var ItsGeoNetworking v_nodeD;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) {
+                    log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***");
+                    setverdict(inconc);
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf02Up();
+                
+                // Preamble
+                
+                // Start components
+                v_nodeB := f_getComponent(c_compNodeB);
+                v_nodeD := f_getComponent(c_compNodeD);
+                v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_A));
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_01_BV
+            
+            /**
+             * @desc    Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a circular region validity restriction
+             * @remark  The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_B_AT
+             *   and the IUT current location is inside the region validity period of CERT_TS_B_AT
+             * }
+             * ensure that {
+             *   when {
+             *     the IUT is receiving a SecuredMessage
+             *         containing protocol_version 
+             *             indicating value '2'
+             *         and containing header_fields[0]
+             *              containing type 
+             *                  indicating 'signer_info'
+             *              and containing signer
+             *                  containing type
+             *                      indicating 'certificate'
+             *                  and containing certificate (CERT_TS_B_AT)
+             *                      containing subject_info.subject_type
+             *                          indicating 'authorization_ticket' (2)
+             *                      and containing subject_attributes['verification key'] (KEY)
+             *                      and containing validity_restrictions['time_start_and_end']
+             *                          indicating CERT_TS_AT_TIME_VALIDITY
+             *                      and containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'circle'
+             *                              and containing circular_region
+             *                                  indicating REGION
+             *       and containing header_fields [1]
+             *         containing type 
+             *           indicating 'generation_time'
+             *              containing generation_time
+             *                  indicating CURRENT_TIME
+             *       and containing header_fields [2]
+             *           containing type 
+             *               indicating 'generation_location'
+             *           and containing generation_location
+             *       and containing header_fields[3]
+             *           containing type 
+             *               indicating 'its_aid'
+             *           and containing its_aid
+             *               indicating 'AID_BEACON'
+             *          and containing payload_field 
+             *               containing type
+             *                  indicating 'signed'
+             *              containing data
+             *                  indicating length > 0
+             *          and containing trailer_fields 
+             *              containing single instance of type TrailerField 
+             *                  containing type
+             *                      indicating 'signature'
+             *                  containing signature
+             *                      verifiable using KEY
+             *   } then {
+             *     the IUT accepts the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_02_BV
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_01_02_BV() runs on ItsMtc system ItsSecSystem {
+                
+                // Local variables
+                var ItsGeoNetworking v_nodeB;
+                var ItsGeoNetworking v_nodeD;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) {
+                    log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***");
+                    setverdict(inconc);
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf02Up();
+                
+                // Preamble
+                
+                // Start components
+                v_nodeB := f_getComponent(c_compNodeB);
+                v_nodeD := f_getComponent(c_compNodeD);
+                v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_B));
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_02_BV
+            
+            /**
+             * @desc    Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction
+             * @remark  The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_C_AT
+             *   and the IUT current location is inside the region validity period of CERT_TS_C_AT
+             * }
+             * ensure that {
+             *   when {
+             *     the IUT is receiving a SecuredMessage
+             *         containing protocol_version 
+             *             indicating value '2'
+             *         and containing header_fields[0]
+             *              containing type 
+             *                  indicating 'signer_info'
+             *              and containing signer
+             *                  containing type
+             *                      indicating 'certificate'
+             *                  and containing certificate (CERT_TS_C_AT)
+             *                      containing subject_info.subject_type
+             *                          indicating 'authorization_ticket' (2)
+             *                      and containing subject_attributes['verification key'] (KEY)
+             *                      and containing validity_restrictions['time_start_and_end']
+             *                          indicating CERT_TS_AT_TIME_VALIDITY
+             *                      and containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'rectangle'
+             *                              and containing rectangular_region
+             *                                  indicating REGION
+             *       and containing header_fields [1]
+             *         containing type 
+             *           indicating 'generation_time'
+             *              containing generation_time
+             *                  indicating CURRENT_TIME
+             *       and containing header_fields [2]
+             *           containing type 
+             *               indicating 'generation_location'
+             *           and containing generation_location
+             *       and containing header_fields[3]
+             *           containing type 
+             *               indicating 'its_aid'
+             *           and containing its_aid
+             *               indicating 'AID_BEACON'
+             *          and containing payload_field 
+             *               containing type
+             *                  indicating 'signed'
+             *              containing data
+             *                  indicating length > 0
+             *          and containing trailer_fields 
+             *              containing single instance of type TrailerField 
+             *                  containing type
+             *                      indicating 'signature'
+             *                  containing signature
+             *                      verifiable using KEY
+             *   } then {
+             *     the IUT accepts the message
+             *   }
+             * }
+             * </pre>
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_03_BV
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_01_03_BV() runs on ItsMtc system ItsSecSystem {
+                
+                // Local variables
+                var ItsGeoNetworking v_nodeB;
+                var ItsGeoNetworking v_nodeD;
+                
+                // Test control
+                if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) {
+                    log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***");
+                    setverdict(inconc);
+                    stop;
+                }
+                
+                // Test component configuration
+                f_cf02Up();
+                
+                // Preamble
+                
+                // Start components
+                v_nodeB := f_getComponent(c_compNodeB);
+                v_nodeD := f_getComponent(c_compNodeD);
+                v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_C));
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_03_BV
+            
+            /**
+             * @desc    Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction
+             * @remark  The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Expected behavior:
+             * with {
+             *   the IUT being in the 'authorized' state
+             *   and the IUT current time is inside the time validity period of CERT_TS_D_AT
+             *   and the IUT current location is inside the region validity period of CERT_TS_D_AT
+             * }
+             * ensure that {
+             *   when {
+             *     the IUT is receiving a SecuredMessage
+             *         containing protocol_version 
+             *             indicating value '2'
+             *         and containing header_fields[0]
+             *              containing type 
+             *                  indicating 'signer_info'
+             *              and containing signer
+             *                  containing type
+             *                      indicating 'certificate'
+             *                  and containing certificate (CERT_TS_D_AT)
+             *                      containing subject_info.subject_type
+             *                          indicating 'authorization_ticket' (2)
+             *                      and containing subject_attributes['verification key'] (KEY)
+             *                      and containing validity_restrictions['time_start_and_end']
+             *                          indicating CERT_TS_AT_TIME_VALIDITY
+             *                      and containing validity_restrictions['region']
+             *                          containing region
+             *                              containing region_type
+             *                                  indicating 'polygon'
+             *                              and containing polygonal_region
+             *                                  indicating REGION
+             *       and containing header_fields [1]
+             *         containing type 
+             *           indicating 'generation_time'
+             *              containing generation_time
+             *                  indicating CURRENT_TIME
+             *       and containing header_fields [2]
+             *           containing type 
+             *               indicating 'generation_location'
+             *           and containing generation_location
+             *       and containing header_fields[3]
+             *           containing type 
+             *               indicating 'its_aid'
+             *           and containing its_aid
+             *               indicating 'AID_BEACON'
+             *          and containing payload_field 
+             *               containing type
+             *                  indicating 'signed'
+             *              containing data
+             *                  indicating length > 0
+             *          and containing trailer_fields 
+             *              containing single instance of type TrailerField 
+             *                  containing type
+             *                      indicating 'signature'
+             *                  containing signature