Skip to content
titanization.patch 1.83 MiB
Newer Older
27001 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 27013 27014 27015 27016 27017 27018 27019 27020 27021 27022 27023 27024 27025 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 27062 27063 27064 27065 27066 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27098 27099 27100 27101 27102 27103 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27127 27128 27129 27130 27131 27132 27133 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27157 27158 27159 27160 27161 27162 27163 27164 27165 27166 27167 27168 27169 27170 27171 27172 27173 27174 27175 27176 27177 27178 27179 27180 27181 27182 27183 27184 27185 27186 27187 27188 27189 27190 27191 27192 27193 27194 27195 27196 27197 27198 27199 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 27235 27236 27237 27238 27239 27240 27241 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27265 27266 27267 27268 27269 27270 27271 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27296 27297 27298 27299 27300 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27326 27327 27328 27329 27330 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27343 27344 27345 27346 27347 27348 27349 27350 27351 27352 27353 27354 27355 27356 27357 27358 27359 27360 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 27398 27399 27400 27401 27402 27403 27404 27405 27406 27407 27408 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27434 27435 27436 27437 27438 27439 27440 27441 27442 27443 27444 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27470 27471 27472 27473 27474 27475 27476 27477 27478 27479 27480 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27506 27507 27508 27509 27510 27511 27512 27513 27514 27515 27516 27517 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27529 27530 27531 27532 27533 27534 27535 27536 27537 27538 27539 27540 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 27578 27579 27580 27581 27582 27583 27584 27585 27586 27587 27588 27589 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27613 27614 27615 27616 27617 27618 27619 27620 27621 27622 27623 27624 27625 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27649 27650 27651 27652 27653 27654 27655 27656 27657 27658 27659 27660 27661 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27685 27686 27687 27688 27689 27690 27691 27692 27693 27694 27695 27696 27697 27698 27699 27700 27701 27702 27703 27704 27705 27706 27707 27708 27709 27710 27711 27712 27713 27714 27715 27716 27717 27718 27719 27720 27721 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 27758 27759 27760 27761 27762 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 27788 27789 27790 27791 27792 27793 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27817 27818 27819 27820 27821 27822 27823 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27847 27848 27849 27850 27851 27852 27853 27854 27855 27856 27857 27858 27859 27860 27861 27862 27863 27864 27865 27866 27867 27868 27869 27870 27871 27872 27873 27874 27875 27876 27877 27878 27879 27880 27881 27882 27883 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 27919 27920 27921 27922 27923 27924 27925 27926 27927 27928 27929 27930 27931 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27955 27956 27957 27958 27959 27960 27961 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27985 27986 27987 27988 27989 27990 27991 27992 27993 27994 27995 27996 27997 27998 27999 28000
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_06_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_06_BO 
+            
+            /**
+             * @desc    Check that IUT discards a secured GN Message if the message does not contain the header field of type 'its_aid'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[2].type
+             *              indicating 'generation_location'
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_06a_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_06a_BO() 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_04_06a_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_06a_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_06a_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_06a_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_digest(
+                                    vc_atCertificate.signer_info.signerInfo.digest
+                            )),
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0000'O
+                                ))
+                            )
+                        }, 
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_06a_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_06a_BO 
+            
+            /**
+             * @desc    Check that IUT discards a secured GN Message if the message contains more than one header field of type 'generation_location'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[2].type
+             *              indicating 'generation_location'
+             *          and containing header_fields[3].type
+             *              indicating 'generation_location'
+             *          and containing header_fields[4]
+             *              containing type
+             *                  indicating 'its_aid'
+             *              containing its_aid
+             *                  indicating 'AID_BEACON'
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_07_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_07_BO() 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_04_07_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_07_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_07_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_07_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_digest(
+                                    vc_atCertificate.signer_info.signerInfo.digest
+                            )),
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0000'O
+                                ))
+                            ),
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0100'O
+                                ))
+                            ),
+                            m_header_field_its_aid_Other
+                        }, 
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_07_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_07_BO 
+            
+            /**
+             * @desc    Check that IUT discards a secured GN Message if the message contains more than one header field of type 'generation_location'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[2].type
+             *          and containing header_fields[4].type
+             *              indicating 'its_aid'
+             *                  containing its_aid
+             *                      indicating 'AID_BEACON'
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_08_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_08_BO() 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_04_08_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_08_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_08_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_08_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_digest(
+                                    vc_atCertificate.signer_info.signerInfo.digest
+                            )),
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_its_aid_Other
+                        }, 
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_08_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_08_BO 
+            
+            /**
+             * @desc    Check that IUT is able to receive a Secured GN Beacon if the header fields are not in the ascending order according to the numbering of the enumeration
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'its_aid'
+             *          and containing header_fields[2].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[3].type
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_09_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_09_BO() 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_04_09_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_09_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_09_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_09_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_digest(
+                                    vc_atCertificate.signer_info.signerInfo.digest
+                            )),
+                            m_header_field_its_aid_Other,
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0000'O
+                                ))
+                            )
+                        }, 
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_09_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_09_BO 
+            
+            /**
+             * @desc    Check that IUT accepts a GN Secured Message containing optional header field of type 'expiry_time'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'its_aid'
+             *          and containing header_fields[2].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[3].type
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_11_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_11_BO() 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_04_11_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_11_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_11_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_11_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_digest(
+                                    vc_atCertificate.signer_info.signerInfo.digest
+                            )),
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_expiry_time(
+                                1000 * (3600 + f_getCurrentTime()) // In us
+                            ),
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0000'O
+                                ))
+                            ),
+                            m_header_field_its_aid_Other
+                        }, 
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_11_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_11_BO 
+            
+            /**
+             * @desc    Check that IUT accepts the Secured GN Message containing additional non-standard HeaderField
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[2].type
+             *          and containing header_fields[3].type
+             *              indicating 'its_aid'
+             *          and containing header_fields[4]
+             *              containing type
+             *                  indicating non-standard header field type (1000)
+             *              and containing other_header
+             *                  indicating non-empty data
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_12_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_12_BO() 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_04_12_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_12_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_12_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_12_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_digest(
+                                    vc_atCertificate.signer_info.signerInfo.digest
+                            )),
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_expiry_time(
+                                1000 * (3600 + f_getCurrentTime()) // In us
+                            ),
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0000'O
+                                ))
+                            ),
+                            m_header_field_its_aid_Other,
+                            m_header_field_unspecify
+                        }, 
+                        e_certificate_digest_with_sha256,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_12_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_12_BO 
+            
+            /**
+             * @desc    Check that IUT accepts the Secured GN Message containing additional non-standard HeaderField
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields[0].type
+             *              indicating 'signer_info'
+             *          and containing header_fields[1].type
+             *              indicating 'generation_time'
+             *          and containing header_fields[2].type
+             *          and containing header_fields[3].type
+             *              indicating 'its_aid'
+             *          and containing header_fields[4]
+             *              containing type
+             *                  indicating 'encryption_parameters'
+             *              and containing enc_params
+             *                  containing symm_algorithm
+             *                      indicating 'aes_128_ccm'
+             *                  and containing nonce
+             *              and containing header_fields[4]
+             *                  containing type
+             *                      indicating 'recipient_info'
+             *                  and containing recipients
+             *                      containing recipients[0]
+             *                          containing cert_id
+             *                              referencing to CERT_IUT_A_AT
+             *                          and containing pk_encryption
+             *                              indicating 'ecies_nistp256'
+             *                          and containing enc_key
+             *          and not containing other header fields
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_13_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_04_13_BO() 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_04_13_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_04_13_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_04_13_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_04_13_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var Certificate v_iutATCertificate;
+                    var SubjectAttribute v_encryption_key;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    if (
+                        (f_readCertificate(cc_iutCert_A, v_iutATCertificate) == false) or 
+                        (f_getCertificateSubjectAttribute(v_iutATCertificate, e_encryption_key, v_encryption_key) == false)
+                    ) {
+                        f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_timeout); // Set verdict to inconc
+                    } else {
+                        v_securedGnPdu := f_prepareSecuredBeacon(
+                            cc_taCert_A, 
+                            {
+                                m_header_field_signer_info(
+                                    m_signerInfo_digest(
+                                        vc_atCertificate.signer_info.signerInfo.digest
+                                )),
+                                m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                                m_header_field_expiry_time(
+                                    1000 * (3600 + f_getCurrentTime()) // In us
+                                ),
+                                m_header_field_generation_location(
+                                    valueof(m_threeDLocation(
+                                        v_longPosVectorNodeB.latitude,
+                                        v_longPosVectorNodeB.longitude,
+                                        '0000'O
+                                    ))
+                                ),
+                                m_header_field_its_aid_Other,
+                                m_header_field_enc_params(                                  // containing header_fields[3].type.enc_params
+                                    m_encryptionParameters_aes_128_ccm(                     //      indicating 'aes_128_ccm'
+                                        PX_ENCRYPTIONPARAMETERS_AES_128_CCM_NONCE           // and containing nonce
+                                    )
+                                ),
+                                m_header_field_multiple_recipients(                         // containing header_fields[4].type
+                                    {                                                       //     indicating 'encryption_parameters'
+                                        m_recipientInfo_ecies_enc_key(
+                                            v_iutATCertificate.signer_info.signerInfo.digest,
+                                            e_ecies_nistp256,                               // containing symm_algorithm
+                                                                                            //     indicating 'aes_128_ccm'
+                                            m_eciesEncryptedKey_aesccm(
+                                                v_encryption_key.attribute.rv,
+                                                '00000000000000000000000000000000'O, // FIXME Where to find these values
+                                                '00000000000000000000000000000000'O
+                                            )
+                                        )
+                                    }
+                                )
+                            }, 
+                            e_certificate_digest_with_sha256,
+                            false
+                        ); 
+                        f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                        f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    }
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_13_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_13_BO 
+            
+            /**
+             * @desc    Check that IUT discards a secured GN Beacon if the header_fields contains a signer of type 'self'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields['signer_info']
+             *              containing signer.type
+             *                  indicating 'self''
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_05_01_BO
+             * @reference    ETSI TS 103 097 [1], clause 7.3
+             */
+            testcase TC_SEC_ITSS_RCV_GENMSG_05_01_BO() 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_05_01_BO());
+                v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD());
+                
+                // Synchronization
+                f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
+                
+                // Cleanup
+                f_cf02Down();
+                
+            } // End of testcase TC_SEC_ITSS_RCV_GENMSG_05_01_BO
+            
+            group g_TC_SEC_ITSS_RCV_GENMSG_05_01_BO {
+                
+                    /**
+                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
+                     */
+                function f_TC_SEC_ITSS_RCV_GENMSG_05_01_BO() runs on ItsGeoNetworking {
+                    
+                    // Local variables
+                    var GeoNetworkingPdu v_securedGnPdu;
+                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
+                    
+                    // Test component configuration
+                    f_cf01Up();
+                    
+                    // Test adapter configuration
+                    
+                    // Preamble
+                    f_prNeighbour();
+                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+                    
+                    // Test Body
+                    v_securedGnPdu := f_prepareSecuredBeacon(
+                        cc_taCert_A, 
+                        {
+                            m_header_field_signer_info(
+                                m_signerInfo_self
+                            ), 
+                            m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+                            m_header_field_generation_location(
+                                valueof(m_threeDLocation(
+                                    v_longPosVectorNodeB.latitude,
+                                    v_longPosVectorNodeB.longitude,
+                                    '0000'O
+                                ))
+                            ),
+                            m_header_field_its_aid_Other
+                        }, 
+                        e_self,
+                        false
+                    ); 
+                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+                    f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+                    
+                    // Postamble
+                    f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+                    
+                } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_05_01_BO
+                
+            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_01_BO 
+            
+            /**
+             * @desc    Check that IUT discards a secured GN Beacon if the header_fields contains a signer of type 'certificate_digest_with_other_algorithm'
+             * <pre>
+             * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+             * Config Id: CF01
+             * Initial conditions:
+             * 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_GENMSG_A) 
+             *          containing header_fields['signer_info']
+             *              containing signer.type
+             *                  indicating 'certificate_digest_with_other_algorithm'
+             *  } then { 
+             *      the IUT discards the message 
+             *  } 
+             * } 
+             * </pre>
+             *
+             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_05_02_BO