ItsSecurity_TestCases.ttcn 1.59 MB
Newer Older
//                
//                // 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_info_signer_info(
//                                m_issuerIdentifier_sha256AndDigest(
//                                    vc_atCertificate.signer_info.signerInfo.digest
//                            )),
//                            m_header_info_its_aid_Other,
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            )
//                        }, 
//                        e_certificate_digest_with_sha256,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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 Ieee1609Dot2Data (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>
//             *
garciay's avatar
garciay committed
//             * @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_info_signer_info(
//                                m_issuerIdentifier_sha256AndDigest(
//                                    vc_atCertificate.signer_info.signerInfo.digest
//                            )),
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_expiry_time(
//                                1000 * (3600 + f_getCurrentTime()) // In us
//                            ),
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            ),
//                            m_header_info_its_aid_Other
//                        }, 
//                        e_certificate_digest_with_sha256,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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 HeaderInfo
//             * <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 Ieee1609Dot2Data (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>
//             *
garciay's avatar
garciay committed
//             * @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_info_signer_info(
//                                m_issuerIdentifier_sha256AndDigest(
//                                    vc_atCertificate.signer_info.signerInfo.digest
//                            )),
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_expiry_time(
//                                1000 * (3600 + f_getCurrentTime()) // In us
//                            ),
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            ),
//                            m_header_info_its_aid_Other,
//                            m_header_info_unspecify
//                        }, 
//                        e_certificate_digest_with_sha256,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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 HeaderInfo
//             * <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 Ieee1609Dot2Data (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>
//             *
garciay's avatar
garciay committed
//             * @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_info_signer_info(
//                                    m_issuerIdentifier_sha256AndDigest(
//                                        vc_atCertificate.signer_info.signerInfo.digest
//                                )),
//                                m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                                m_header_info_expiry_time(
//                                    1000 * (3600 + f_getCurrentTime()) // In us
//                                ),
//                                m_header_info_generation_location(
//                                    valueof(m_threeDLocation(
//                                        v_longPosVectorNodeB.latitude,
//                                        v_longPosVectorNodeB.longitude,
//                                        '0000'O
//                                    ))
//                                ),
//                                m_header_info_its_aid_Other,
//                                m_header_info_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_info_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(valueof(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 Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) 
//             *          containing header_fields['signer_info']
//             *              containing signer.type
//             *                  indicating 'self''
//             *  } then { 
//             *      the IUT discards the message 
//             *  } 
//             * } 
//             * </pre>
//             *
garciay's avatar
garciay committed
//             * @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_info_signer_info(
//                                m_signerIdentifier_self
//                            ), 
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            ),
//                            m_header_info_its_aid_Other
//                        }, 
//                        e_self,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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 Ieee1609Dot2Data (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>
//             *
garciay's avatar
garciay committed
//             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_05_02_BO
//             * @reference    ETSI TS 103 097 [1] Clause 7.3
//             */
//            testcase TC_SEC_ITSS_RCV_GENMSG_05_02_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_02_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_02_BO
//            
//            group g_TC_SEC_ITSS_RCV_GENMSG_05_02_BO {
//                
//                    /**
//                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
//                     */
//                function f_TC_SEC_ITSS_RCV_GENMSG_05_02_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_info_signer_info(
//                                m_signerIdentifier_other_certificates(
//                                    m_certificateWithAlgo_ecdsa(
//                                        PX_OTHER_CERT_DIGEST
//                            ))), 
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            ),
//                            m_header_info_its_aid_Other
//                        }, 
//                        e_certificate_digest_with_other_algorithm,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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_02_BO
//                
//            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_02_BO 
//            
//            /**
//             * @desc    Check that IUT discards a secured GN Beacon if the header_fields contains a signer of type 'certificate_chain'
//             * <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 Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) 
//             *          containing header_fields['signer_info']
//             *              containing signer.type
//             *                  indicating 'certificate_chain'
//             *  } then { 
//             *      the IUT discards the message 
//             *  } 
//             * } 
//             * </pre>
//             *
garciay's avatar
garciay committed
//             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_05_03_BO
//             * @reference    ETSI TS 103 097 [1] Clause 7.3
//             */
//            testcase TC_SEC_ITSS_RCV_GENMSG_05_03_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_03_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_03_BO
//            
//            group g_TC_SEC_ITSS_RCV_GENMSG_05_03_BO {
//                
//                    /**
//                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
//                     */
//                function f_TC_SEC_ITSS_RCV_GENMSG_05_03_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_info_signer_info(
//                                m_signerIdentifier_certificates(
//                                    { vc_atCertificate }
//                            )), 
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            ),
//                            m_header_info_its_aid_Other
//                        }, 
//                        e_certificate_chain,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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_03_BO
//                
//            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_03_BO 
//            
//            /**
//             * @desc    Check that IUT discards a Secured Messageif the header_fields contains a signer info of unknown or reserved type
//             * @remark  Values to be used as X_UNKNOWN_SIGNERINFO_TYPE are 5, 239, 240 and 255
//             * <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 Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) 
//             *          containing header_fields['signer_info']
//             *              containing signer.type
//             *                  indicating X_UNKNOWN_SIGNERINFO_TYPE
//             *  } then { 
//             *      the IUT discards the message 
//             *  } 
//             * } 
//             * </pre>
//             *
garciay's avatar
garciay committed
//             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_05_04_BO
//             * @reference    ETSI TS 103 097 [1] Clause 7.3
//             */
//            testcase TC_SEC_ITSS_RCV_GENMSG_05_04_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_04_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_04_BO
//            
//            group g_TC_SEC_ITSS_RCV_GENMSG_05_04_BO {
//                
//                    /**
//                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
//                     */
//                function f_TC_SEC_ITSS_RCV_GENMSG_05_04_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_info_signer_info(
//                                m_signerIdentifier_unknown(
//                                    'CAFFEEDECA'O
//                            )), 
//                            m_header_info_generation_time(1000 * f_getCurrentTime()), // In us
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(
//                                    v_longPosVectorNodeB.latitude,
//                                    v_longPosVectorNodeB.longitude,
//                                    '0000'O
//                                ))
//                            ),
//                            m_header_info_its_aid_Other
//                        }, 
//                        e_unknown,
//                        false
//                    ); 
//                    f_sendGeoNetMessage(valueof(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_04_BO
//                
//            } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_04_BO 
//            
//            /**
//             * @desc    Check that IUT discards a secured GN Message containing generation_time before the message signing certificate validity period
//             * <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 Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A)
//             *          containing header_fields['signer_info'].type
//             *              indicating 'signer_info'
//             *                  containing certificate (CERT_TS_MSG_06_01_BO_AT)
//             *                      containing validity_restrictions['time_start_and_end']
//             *                          containing start_validity
//             *                              indicating START_VALIDITY_AT
//             *                          and containing end_validity
//             *                              indicating END_VALIDITY_AT
//             *                  and containing header_fields ['generation_time']
//             *                      containing generation_time
//             *                          indicating GEN_TIME < TIME_CERT_TS_AT_START
//             *  } then { 
//             *      the IUT discards the message 
//             *  } 
//             * } 
//             * </pre>
//             *
garciay's avatar
garciay committed
//             * @see          ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_01_BO
//             * @reference    ETSI TS 103 097 [1] Clauses 5.4 and 7.3
//             */
//            testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_01_BO
//            
//            group g_TC_SEC_ITSS_RCV_GENMSG_06_01_BO {
//                
//                    /**
//                     * @desc    Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01)
//                     */
//                function f_TC_SEC_ITSS_RCV_GENMSG_06_01_BO() runs on ItsGeoNetworking {
//                    
//                    // Local variables
//                    var GeoNetworkingPdu v_securedGnPdu;
//                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB
//                    var ValidityRestriction v_validity;
//                    
//                    // Test component configuration
//                    f_cf01Up();
//                    
//                    // Test adapter configuration
//                    
//                    // Preamble
//                    f_prNeighbour();
//                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//                    
//                    // Test Body
//                    f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_validity);
//                    v_securedGnPdu := f_prepareSecuredBeacon(
//                        cc_taCert0601_BO, 
//                        {
//                            m_header_info_signer_info(
//                                m_issuerIdentifier_sha256AndDigest(
//                                    vc_atCertificate.signer_info.signerInfo.digest
//                            )), 
//                            m_header_info_generation_time( 
//                                (v_validity.validity.time_start_and_end.start_validity - 3600) * 1000
//                            ), // In us
//                            m_header_info_generation_location(
//                                valueof(m_threeDLocation(