diff --git a/scripts/update_its_project.bash b/scripts/update_its_project.bash index 4df5ae5a527db2e8bcc9ba9bf6e429d7e6727310..b23258d9b70f1c6697e6a731023633b07b862ef6 100755 --- a/scripts/update_its_project.bash +++ b/scripts/update_its_project.bash @@ -163,7 +163,7 @@ echo 'Update TTCN-3 files' TTCN_3_ORG_PATH=${SRC_ITS_PATH}/ttcn TTCN_3_DST_PATH=${PATH_DEV_ITS}/src CC_SRC_PATH=${SRC_ITS_PATH}/ccsrc -TTCN_3_ATS_LIST='AtsAutoInterop AtsCAM AtsDENM AtsBTP AtsGeoNetworking AtsSecurity AtsRSUsSimulator LibCommon/ttcn TestCodec AtsGenCert AtsPki' +TTCN_3_ATS_LIST='AtsAutoInterop AtsCAM AtsDENM AtsBTP AtsGeoNetworking AtsSecurity AtsRSUsSimulator LibCommon/ttcn AtsGenCert AtsPki AtsIVIM AtsSremSsem AtsMapemSpatem' for i in ${TTCN_3_ATS_LIST} do if [ ! -d ${TTCN_3_DST_PATH}/$i ] @@ -340,11 +340,6 @@ then cp ${PATH_PATCHES}/run_mtc.bash ${PATH_DEV_ITS}/src/AtsGenCert/bin cp ${PATH_PATCHES}/run_ptcs.bash ${PATH_DEV_ITS}/src/AtsGenCert/bin cp ${PATH_PATCHES}/run_all.bash ${PATH_DEV_ITS}/src/AtsGenCert/bin - # Update TestCodec - cp ${PATH_PATCHES}/testcodec_generate_makefile.bash ${PATH_DEV_ITS}/src/TestCodec/bin - cp ${PATH_PATCHES}/run_mtc.bash ${PATH_DEV_ITS}/src/TestCodec/bin - cp ${PATH_PATCHES}/run_ptcs.bash ${PATH_DEV_ITS}/src/TestCodec/bin - cp ${PATH_PATCHES}/run_all.bash ${PATH_DEV_ITS}/src/TestCodec/bin # Update Pki cp ${PATH_PATCHES}/pki_generate_makefile.bash ${PATH_DEV_ITS}/src/AtsPki/bin cp ${PATH_PATCHES}/run_mtc.bash ${PATH_DEV_ITS}/src/AtsPki/bin diff --git a/ttcn/AtsBTP/ItsBtp_TestCases.ttcn b/ttcn/AtsBTP/ItsBtp_TestCases.ttcn index cdd954e860276a03a68fc0debb81cb86858ffda6..d7f3b1de67f5543dbefd25aae622458e2c21c2f4 100644 --- a/ttcn/AtsBTP/ItsBtp_TestCases.ttcn +++ b/ttcn/AtsBTP/ItsBtp_TestCases.ttcn @@ -1,390 +1,390 @@ -/** - * @author ETSI / STF405 - * @version $URL$ - * $Id$ - * @desc Testcases for Basic Transport Protocol (TP version: 0.0.3) - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsBtp_TestCases { - - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_Time all; -// import from LibCommon_VerdictControl all; - - // LibIts - import from LibItsBtp_TestSystem all; - import from LibItsBtp_Functions all; - import from LibItsBtp_Templates all; -// import from LibItsBtp_Pixits all; -// import from LibItsBtp_TypesAndValues all; -// import from LibItsCommon_Functions all; - - group btpPacketGeneration { - - group btpBtpA { - - /** - * @desc Checks that BTP-A packets is well-formatted - *
- * PICS Selection: none - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a BTP packet via a BTP-data request - * containing BTP Type - * indicationg value 'BTP-A' - * containing Source PorT - * indicating value 'SOURCE_PORT' - * containing Destination Port - * indicating value 'DESTINATION_PORT' - * } - * then { - * the IUT sends a valid BTP-A packet - * containing source port - * indicating 'SOURCE_PORT', - * containing destination port - * indicating 'DESTINATION_PORT', - * containing the Upper Layer payload - * } - * } - *- * - * @version 0.0.3 - * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PGA/BV/01 - */ - testcase TC_BTP_PGA_BV_01() runs on ItsBtp system ItsBtpSystem { - - // Local variables - - // Test control - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - f_utTriggerEvent(m_generateBtpA(f_getBtpDstPort(), f_getBtpSrcPort())); - tc_ac.start; - alt { - [] btpPort.receive( mw_btpInd( mw_btpA (f_getBtpDstPort(), f_getBtpSrcPort(), *))) { - tc_ac.stop; - log("*** TC_BTP_PGA_BV_01: PASS: BTP-A packet correclty received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - - [] tc_ac.timeout { - log("*** TC_BTP_PGA_BV_01: INCONC: Expected BTP packet not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cfDown(); - - }// end TC_BTP_PGA_BV_0 - - } // end btpBtpA - - group btpBtpB { - - /** - * @desc Checks that BTP-B packets is well-formatted if Destination Port info is provided - *
- * PICS Selection: none - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a BTP packet via a BTP-data request - * containing BTP Type - * indicationg value 'BTP-B' - * containing Destination Port - * indicating value 'DESTINATION_PORT' - * containing Destination Port Info - * indicating value 'DESTINATION_PORT_INFO' - * } - * then { - * the IUT sends a valid BTP-B packet - * containing Destination Port - * indicating value 'DESTINATION_PORT' - * containing Destination Port Info - * indicating value 'DESTINATION_PORT_INFO' - * containing the Upper Layer payload - * } - * } - *- * - * @version 0.0.3 - * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PGB/BV/01 - */ - testcase TC_BTP_PGB_BV_01() runs on ItsBtp system ItsBtpSystem { - - // Local variables - - // Test control - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - f_utTriggerEvent(m_generateBtpB(f_getBtpDstPort(), f_getBtpDstPortInfo())); - tc_ac.start; - alt { - [] btpPort.receive( mw_btpInd( mw_btpB (f_getBtpDstPort(), f_getBtpDstPortInfo(), *))) { - tc_ac.stop; - log("*** TC_BTP_PGB_BV_01: PASS: BTP-B packet correclty received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - - [] tc_ac.timeout { - log("*** TC_BTP_PGB_BV_01: INCONC: Expected BTP packet not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cfDown(); - - }// end TC_BTP_PGB_BV_01 - - /** - * @desc Checks that BTP-B packets are well-formatted if no Destination Port Info is provided - *
- * PICS Selection: none - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a BTP packet via a BTP-data request - * containing BTP Type - * indicationg value 'BTP-B' - * containing Destination Port - * indicating value 'DESTINATION_PORT' - * not containing Destination Port Info parameter - * } - * then { - * the IUT sends a valid BTP-B packet - * containing Destination Port - * indicating value 'DESTINATION_PORT' - * containing Destination Port Info - * indicating '0' - * containing the Upper Layer payload - * } - * } - *- * - * @version 0.0.3 - * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PGB/BV/02 - */ - testcase TC_BTP_PGB_BV_02() runs on ItsBtp system ItsBtpSystem { - - // Local variables - - // Test control - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - f_utTriggerEvent(m_generateBtpB(f_getBtpDstPort(), 0)); - tc_ac.start; - alt { - [] btpPort.receive( mw_btpInd( mw_btpB (f_getBtpDstPort(), 0, *))) { - tc_ac.stop; - log("*** TC_BTP_PGB_BV_02: PASS: BTP-B packet correclty received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - - [] tc_ac.timeout { - log("*** TC_BTP_PGB_BV_02: INCONC: Expected BTP packet not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cfDown(); - - }// end TC_BTP_PGB_BV_02 - - } // end btpBtpB - - } // end btpPacketGeneration - - group btpPacketProcessing { - - group btpValid { - - /** - * @desc Checks that BTP passes a valid BTP-A packets to the upper protocol entity - *
- * PICS Selection: none - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a valid BTP-A packet - * containing Source Port - * indicating 'SOURCE_PORT' - * containing Destination Port - * indicating'DESTINATION_PORT' - * containing the payload - * } - * then { - * the IUT passes the payload to the upper layer - * } - * } - *- * - * @version 0.0.3 - * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PP/BV/01 - */ - testcase TC_BTP_PP_BV_01() runs on ItsBtp system ItsBtpSystem { - - // Local variables - var BtpReq v_btpReq; - var integer i; - - // Test control - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_btpReq := valueof(m_btpReq( m_btpAWithPorts (f_getBtpDstPort(), f_getBtpSrcPort(), f_getBtpPayload()))); - btpPort.send(v_btpReq); - - f_sleep(PX_TNOAC); - for(i:=0; i < lengthof(vc_utEvents) and not match(v_btpReq.msgOut.payload, vc_utEvents[i].rawPayload); i:=i+1) { - // empty on purpose - } - if(i < lengthof(vc_utEvents)) { - log("*** " & testcasename() & ": PASS: BTP was transmitted to upper layer***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - else { - log("*** " & testcasename() & ": FAIL: BTP was not transmitted to upper layer***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - // Postamble - f_poDefault(); - f_cfDown(); - - }// end TC_BTP_PP_BV_01 - - /** - * @desc Checks that BTP passes a valid BTP-B packets to the upper protocol entity - *
- * PICS Selection: none - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a valid BTP-B packet - * containing Destination Port - * indicating'DESTINATION_PORT' - * containing Destination Port Info - * indicating'DESTINATION_PORT_INFO' - * containing the payload - * } - * then { - * the IUT passes the payload to the upper layer - * } - * } - *- * - * @version 0.0.3 - * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PP/BV/02 - */ - testcase TC_BTP_PP_BV_02() runs on ItsBtp system ItsBtpSystem { - - // Local variables - var BtpReq v_btpReq; - var integer i; - - // Test control - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_btpReq := valueof(m_btpReq( m_btpBWithPorts (f_getBtpDstPort(), f_getBtpDstPortInfo(), f_getBtpPayload()))); - btpPort.send(v_btpReq); - - f_sleep(PX_TNOAC); - for(i:=0; i < lengthof(vc_utEvents) and not match(v_btpReq.msgOut.payload, vc_utEvents[i].rawPayload); i:=i+1) { - // empty on purpose - } - if(i < lengthof(vc_utEvents)) { - log("*** " & testcasename() & ": PASS: BTP was transmitted to upper layer***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - else { - log("*** " & testcasename() & ": FAIL: BTP was not transmitted to upper layer***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - // Postamble - f_poDefault(); - f_cfDown(); - - }// end TC_BTP_PP_BV_02 - - } // end btpValid - - } // end btpPacketProcessing - -} // end ItsBtp_TestCases +/** + * @author ETSI / STF405 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsBTP/ItsBtp_TestCases.ttcn $ + * $Id: ItsBtp_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Testcases for Basic Transport Protocol (TP version: 0.0.3) + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsBtp_TestCases { + + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_Time all; +// import from LibCommon_VerdictControl all; + + // LibIts + import from LibItsBtp_TestSystem all; + import from LibItsBtp_Functions all; + import from LibItsBtp_Templates all; +// import from LibItsBtp_Pixits all; +// import from LibItsBtp_TypesAndValues all; +// import from LibItsCommon_Functions all; + + group btpPacketGeneration { + + group btpBtpA { + + /** + * @desc Checks that BTP-A packets is well-formatted + *
+ * PICS Selection: none + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a BTP packet via a BTP-data request + * containing BTP Type + * indicationg value 'BTP-A' + * containing Source PorT + * indicating value 'SOURCE_PORT' + * containing Destination Port + * indicating value 'DESTINATION_PORT' + * } + * then { + * the IUT sends a valid BTP-A packet + * containing source port + * indicating 'SOURCE_PORT', + * containing destination port + * indicating 'DESTINATION_PORT', + * containing the Upper Layer payload + * } + * } + *+ * + * @version 0.0.3 + * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PGA/BV/01 + */ + testcase TC_BTP_PGA_BV_01() runs on ItsBtp system ItsBtpSystem { + + // Local variables + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + f_utTriggerEvent(m_generateBtpA(f_getBtpDstPort(), f_getBtpSrcPort())); + tc_ac.start; + alt { + [] btpPort.receive( mw_btpInd( mw_btpA (f_getBtpDstPort(), f_getBtpSrcPort(), *))) { + tc_ac.stop; + log("*** TC_BTP_PGA_BV_01: PASS: BTP-A packet correclty received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + + [] tc_ac.timeout { + log("*** TC_BTP_PGA_BV_01: INCONC: Expected BTP packet not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + }// end TC_BTP_PGA_BV_0 + + } // end btpBtpA + + group btpBtpB { + + /** + * @desc Checks that BTP-B packets is well-formatted if Destination Port info is provided + *
+ * PICS Selection: none + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a BTP packet via a BTP-data request + * containing BTP Type + * indicationg value 'BTP-B' + * containing Destination Port + * indicating value 'DESTINATION_PORT' + * containing Destination Port Info + * indicating value 'DESTINATION_PORT_INFO' + * } + * then { + * the IUT sends a valid BTP-B packet + * containing Destination Port + * indicating value 'DESTINATION_PORT' + * containing Destination Port Info + * indicating value 'DESTINATION_PORT_INFO' + * containing the Upper Layer payload + * } + * } + *+ * + * @version 0.0.3 + * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PGB/BV/01 + */ + testcase TC_BTP_PGB_BV_01() runs on ItsBtp system ItsBtpSystem { + + // Local variables + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + f_utTriggerEvent(m_generateBtpB(f_getBtpDstPort(), f_getBtpDstPortInfo())); + tc_ac.start; + alt { + [] btpPort.receive( mw_btpInd( mw_btpB (f_getBtpDstPort(), f_getBtpDstPortInfo(), *))) { + tc_ac.stop; + log("*** TC_BTP_PGB_BV_01: PASS: BTP-B packet correclty received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + + [] tc_ac.timeout { + log("*** TC_BTP_PGB_BV_01: INCONC: Expected BTP packet not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + }// end TC_BTP_PGB_BV_01 + + /** + * @desc Checks that BTP-B packets are well-formatted if no Destination Port Info is provided + *
+ * PICS Selection: none + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a BTP packet via a BTP-data request + * containing BTP Type + * indicationg value 'BTP-B' + * containing Destination Port + * indicating value 'DESTINATION_PORT' + * not containing Destination Port Info parameter + * } + * then { + * the IUT sends a valid BTP-B packet + * containing Destination Port + * indicating value 'DESTINATION_PORT' + * containing Destination Port Info + * indicating '0' + * containing the Upper Layer payload + * } + * } + *+ * + * @version 0.0.3 + * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PGB/BV/02 + */ + testcase TC_BTP_PGB_BV_02() runs on ItsBtp system ItsBtpSystem { + + // Local variables + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + f_utTriggerEvent(m_generateBtpB(f_getBtpDstPort(), 0)); + tc_ac.start; + alt { + [] btpPort.receive( mw_btpInd( mw_btpB (f_getBtpDstPort(), 0, *))) { + tc_ac.stop; + log("*** TC_BTP_PGB_BV_02: PASS: BTP-B packet correclty received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + + [] tc_ac.timeout { + log("*** TC_BTP_PGB_BV_02: INCONC: Expected BTP packet not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + }// end TC_BTP_PGB_BV_02 + + } // end btpBtpB + + } // end btpPacketGeneration + + group btpPacketProcessing { + + group btpValid { + + /** + * @desc Checks that BTP passes a valid BTP-A packets to the upper protocol entity + *
+ * PICS Selection: none + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a valid BTP-A packet + * containing Source Port + * indicating 'SOURCE_PORT' + * containing Destination Port + * indicating'DESTINATION_PORT' + * containing the payload + * } + * then { + * the IUT passes the payload to the upper layer + * } + * } + *+ * + * @version 0.0.3 + * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PP/BV/01 + */ + testcase TC_BTP_PP_BV_01() runs on ItsBtp system ItsBtpSystem { + + // Local variables + var BtpReq v_btpReq; + var integer i; + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_btpReq := valueof(m_btpReq( m_btpAWithPorts (f_getBtpDstPort(), f_getBtpSrcPort(), f_getBtpPayload()))); + btpPort.send(v_btpReq); + + f_sleep(PX_TNOAC); + for(i:=0; i < lengthof(vc_utEvents) and not match(v_btpReq.msgOut.payload, vc_utEvents[i].rawPayload); i:=i+1) { + // empty on purpose + } + if(i < lengthof(vc_utEvents)) { + log("*** " & testcasename() & ": PASS: BTP was transmitted to upper layer***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: BTP was not transmitted to upper layer***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + // Postamble + f_poDefault(); + f_cfDown(); + + }// end TC_BTP_PP_BV_01 + + /** + * @desc Checks that BTP passes a valid BTP-B packets to the upper protocol entity + *
+ * PICS Selection: none + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a valid BTP-B packet + * containing Destination Port + * indicating'DESTINATION_PORT' + * containing Destination Port Info + * indicating'DESTINATION_PORT_INFO' + * containing the payload + * } + * then { + * the IUT passes the payload to the upper layer + * } + * } + *+ * + * @version 0.0.3 + * @see ETSI TS 102 870-2 v1.1.1 TP/BTP/PP/BV/02 + */ + testcase TC_BTP_PP_BV_02() runs on ItsBtp system ItsBtpSystem { + + // Local variables + var BtpReq v_btpReq; + var integer i; + + // Test control + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + v_btpReq := valueof(m_btpReq( m_btpBWithPorts (f_getBtpDstPort(), f_getBtpDstPortInfo(), f_getBtpPayload()))); + btpPort.send(v_btpReq); + + f_sleep(PX_TNOAC); + for(i:=0; i < lengthof(vc_utEvents) and not match(v_btpReq.msgOut.payload, vc_utEvents[i].rawPayload); i:=i+1) { + // empty on purpose + } + if(i < lengthof(vc_utEvents)) { + log("*** " & testcasename() & ": PASS: BTP was transmitted to upper layer***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + else { + log("*** " & testcasename() & ": FAIL: BTP was not transmitted to upper layer***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + // Postamble + f_poDefault(); + f_cfDown(); + + }// end TC_BTP_PP_BV_02 + + } // end btpValid + + } // end btpPacketProcessing + +} // end ItsBtp_TestCases diff --git a/ttcn/AtsBTP/ItsBtp_TestControl.ttcn b/ttcn/AtsBTP/ItsBtp_TestControl.ttcn index 524414579a90d0c0921001dac1f1a0739eb405e2..8d56169621359336c086c8a9cbe6d33f0f9cae60 100644 --- a/ttcn/AtsBTP/ItsBtp_TestControl.ttcn +++ b/ttcn/AtsBTP/ItsBtp_TestControl.ttcn @@ -1,28 +1,28 @@ -/** - * @author ETSI / STF405 - * @version $URL$ - * $Id$ - * @desc Test Control file for Basic Transport Protocol - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsBtp_TestControl { - - // ATS BTP - import from ItsBtp_TestCases {testcase all}; - - // Test Execution - control { - - execute(TC_BTP_PGA_BV_01()); - execute(TC_BTP_PGB_BV_01()); - execute(TC_BTP_PGB_BV_02()); - execute(TC_BTP_PP_BV_01()); - execute(TC_BTP_PP_BV_02()); - - } - -} // end ItsBtp_TestControl +/** + * @author ETSI / STF405 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsBTP/ItsBtp_TestControl.ttcn $ + * $Id: ItsBtp_TestControl.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Test Control file for Basic Transport Protocol + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsBtp_TestControl { + + // ATS BTP + import from ItsBtp_TestCases {testcase all}; + + // Test Execution + control { + + execute(TC_BTP_PGA_BV_01()); + execute(TC_BTP_PGB_BV_01()); + execute(TC_BTP_PGB_BV_02()); + execute(TC_BTP_PP_BV_01()); + execute(TC_BTP_PP_BV_02()); + + } + +} // end ItsBtp_TestControl diff --git a/ttcn/AtsCAM/ItsCam_TestCases.ttcn b/ttcn/AtsCAM/ItsCam_TestCases.ttcn index 4f183f4c649cce161bd546b95ad5309810ef47de..dc445bd21b590492f9a3dee21ceff366c160e908 100644 --- a/ttcn/AtsCAM/ItsCam_TestCases.ttcn +++ b/ttcn/AtsCAM/ItsCam_TestCases.ttcn @@ -1,2434 +1,2434 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 / STF517 - * @version $URL$ - * $Id$ - * @desc Testcases for CA Protocol - * @reference ETSI EN 302 637-2 v1.3.2 - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - */ - -module ItsCam_TestCases { - - // LibItsCam - import from LibItsCam_TestSystem all; - - // Ats Its - import from ItsCam_TpFunctions all; - - // 5.2.1 - group camMessageDissemination { - - group camMessageFormat { - - /** - * @desc Check that protocolVersion is set to 1 and messageID is - * set to 2. - *
- * Pics Selection: PICS_CAM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing ITS PDU header - * containing protocolVersion - * indicating value 1 - * and containing messageID - * indicating value 2 - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/FMT/BV-01 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.1 - */ - testcase TC_CAM_MSD_FMT_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_01(); - - } // end TC_CAM_MSD_FMT_BV_01 - - /** - * @desc Check that LF container is included in 1st CAM since CA - * basic service activation. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT has not sent any CAM yet - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing lowFrequencyContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/FMT/BV-02 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_FMT_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_02(); - - } // end TC_CAM_MSD_FMT_BV_02 - - /** - * @desc Check that LF container is included if time elapsed since - * the generation of the last CAM with the low frequency - * container generation is equal or larger than 500 ms. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT has sent a CAM - * containing cam - * containing camParameters - * containing lowFrequencyContainer at time TIME_1 - * and the IUT has not sent CAM - * containing cam - * containing camParameters - * containing lowFrequencyContainer after TIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated at time TIME_2 >= (TIME_1 + 500ms) - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing lowFrequencyContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/FMT/BV-03 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_FMT_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_03(); - - } // end TC_CAM_MSD_FMT_BV_03 - - /** - * @desc Check that specialVehicle container is included in 1st CAM - * since CA basic service activation. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR) - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT is configured to advertise itself as a special vehicle - * and the IUT has not sent any CAM yet - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/FMT/BV-04 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_FMT_BV_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_04(); - - } // end TC_CAM_MSD_FMT_BV_04 - - /** - * @desc Check that specialVehicle container is included if time - * elapsed since the generation of the last CAM with the - * special vehicle container generation is equal or larger - * than 500 ms. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR) - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT has sent a CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer at time TIME_1 - * and the IUT has not sent CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer after TIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated at time TIME_2 >= (TIME_1 + 500ms) - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/FMT/BV-05 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_FMT_BV_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_05(); - - } // end TC_CAM_MSD_FMT_BV_05 - - } // end group camMessageFormat - - group camInformationAdaptation { - - group camInVehicleData { - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Curvature value - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .curvature - * VALUE: measured value - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_01(); - - } // end TC_CAM_MSD_INA_BV_01_01 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Brake pedal being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .brakePedalActive - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-02 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_02(); - - } // end TC_CAM_MSD_INA_BV_01_02 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Brake pedal being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .brakePedalActive - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-03 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_03(); - - } // end TC_CAM_MSD_INA_BV_01_03 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Gas pedal being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .gasPedalActive - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-04 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_04(); - - } // end TC_CAM_MSD_INA_BV_01_04 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Gas pedal being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .gasPedalActive - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-05 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_05(); - - } // end TC_CAM_MSD_INA_BV_01_05 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Emergency brake being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .emergencyBrakeActive - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-06 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_06() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_06(); - - } // end TC_CAM_MSD_INA_BV_01_06 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Emergency brake being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .emergencyBrakeActive - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-07 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_07() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_07(); - - } // end TC_CAM_MSD_INA_BV_01_07 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Collision warning being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .collisionWarningActive - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-08 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_08() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_08(); - - } // end TC_CAM_MSD_INA_BV_01_08 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Collision warning being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .collisionWarningActive - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-09 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_09() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_09(); - - } // end TC_CAM_MSD_INA_BV_01_09 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: ACC being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .accActive - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-10 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_10() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_10(); - - } // end TC_CAM_MSD_INA_BV_01_10 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: ACC being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .accActive - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-11 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_11() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_11(); - - } // end TC_CAM_MSD_INA_BV_01_11 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Cruise control being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .cruiseControl - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-12 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_12() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_12(); - - } // end TC_CAM_MSD_INA_BV_01_12 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Cruise control being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .cruiseControl - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-13 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_13() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_13(); - - } // end TC_CAM_MSD_INA_BV_01_13 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Speed limiter being activated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .speedLimiterActive - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-14 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_14() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_14(); - - } // end TC_CAM_MSD_INA_BV_01_14 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Speed limiter control being deactivated - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .accelerationControl - * .speedLimiterActive - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-15 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_15() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_15(); - - } // end TC_CAM_MSD_INA_BV_01_15 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Low beam headlights being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .lowBeamHeadlightsOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-16 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_16() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_16(); - - } // end TC_CAM_MSD_INA_BV_01_16 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Low beam headlights being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .lowBeamHeadlightsOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-17 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_17() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_17(); - - } // end TC_CAM_MSD_INA_BV_01_17 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: High beam headlights being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .highBeamHeadlightsOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-18 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_18() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_18(); - - } // end TC_CAM_MSD_INA_BV_01_18 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: High beam headlights being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .highBeamHeadlightsOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-19 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_19() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_19(); - - } // end TC_CAM_MSD_INA_BV_01_19 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Left turn signal being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .leftTurnSignalOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-20 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_20() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_20(); - - } // end TC_CAM_MSD_INA_BV_01_20 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Left turn signal being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .leftTurnSignalOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-21 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_21() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_21(); - - } // end TC_CAM_MSD_INA_BV_01_21 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Right turn signal being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .rightTurnSignalOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-22 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_22() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_22(); - - } // end TC_CAM_MSD_INA_BV_01_22 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Right turn signal being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .rightTurnSignalOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-23 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_23() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_23(); - - } // end TC_CAM_MSD_INA_BV_01_23 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Daytime running lights being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .daytimeRunningLightsOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-24 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_24() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_24(); - - } // end TC_CAM_MSD_INA_BV_01_24 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Daytime running lights being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .daytimeRunningLightsOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-25 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_25() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_25(); - - } // end TC_CAM_MSD_INA_BV_01_25 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Reverse light being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .reverseLightOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-26 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_26() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_26(); - - } // end TC_CAM_MSD_INA_BV_01_26 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Reverse light being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .reverseLightOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-27 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_27() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_27(); - - } // end TC_CAM_MSD_INA_BV_01_27 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Fog lights being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .fogLightOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-28 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_28() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_28(); - - } // end TC_CAM_MSD_INA_BV_01_28 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Fog lights being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .fogLightOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-29 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_29() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_29(); - - } // end TC_CAM_MSD_INA_BV_01_29 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Parking lights being activated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .parkingLightsOn - * VALUE: 1 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-30 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_30() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_30(); - - } // end TC_CAM_MSD_INA_BV_01_30 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Parking lights being deactivated - * FIELD: lowFrequencyContainer - * .basicVehicleContainerLowFrequency - * .exteriorLights - * .parkingLightsOn - * VALUE: 0 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-31 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_31() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_31(); - - } // end TC_CAM_MSD_INA_BV_01_31 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Heading value - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .heading - * VALUE: measured value - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-32 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_32() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_32(); - - } // end TC_CAM_MSD_INA_BV_01_32 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Speed value - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .speed - * VALUE: measured value - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-33 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_33() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_33(); - - } // end TC_CAM_MSD_INA_BV_01_33 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Drive direction value - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .driveDirection - * VALUE: measured value - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-34 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_34() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_34(); - - } // end TC_CAM_MSD_INA_BV_01_34 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state - * } - * INFO: Yaw rate value - * FIELD: highFrequencyContainer - * .basicVehicleContainerHighFrequency - * .yawRate - * VALUE: measured value - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted about INFO - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing FIELD set to VALUE - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-01-35 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_35() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_35(); - - } // end TC_CAM_MSD_INA_BV_01_35 - - } // end group camInVehicleData - - /** - * @desc Check that publicTransportContainer is included if - * vehicleRole is set to publicTransport(1). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_PUBLICTRANS - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to publicTransport(1) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing publicTransportContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-02 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.11 - */ - testcase TC_CAM_MSD_INA_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_02(); - - } // end TC_CAM_MSD_INA_BV_02 - - /** - * @desc Check that specialTransportContainer is included if - * vehicleRole is set to specialTransport(2). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SPECIALTRANS - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to specialTransport(2) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing specialTransportContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-03 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.12 - */ - testcase TC_CAM_MSD_INA_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_03(); - - } // end TC_CAM_MSD_INA_BV_03 - - /** - * @desc Check that dangerousGoodsContainer is included if - * vehicleRole is set to dangerousGoods(3). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_DANGEROUSGOODS - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to dangerousGoods(3) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing dangerousGoodsContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-04 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.13 - */ - testcase TC_CAM_MSD_INA_BV_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_04(); - - } // end TC_CAM_MSD_INA_BV_04 - - /** - * @desc Check that roadWorksContainerBasic is included if - * vehicleRole is set to roadWork(4). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_ROADWORKS - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to roadWork(4) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing roadWorksContainerBasic - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-05 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.14 - */ - testcase TC_CAM_MSD_INA_BV_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_05(); - - } // end TC_CAM_MSD_INA_BV_05 - - /** - * @desc Check that rescueContainer is included if vehicleRole is - * set to rescue(5). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_RESCUE - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to rescue(5) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing rescueContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-06 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.15 - */ - testcase TC_CAM_MSD_INA_BV_06() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_06(); - - } // end TC_CAM_MSD_INA_BV_06 - - /** - * @desc Check that emergencyContainer is included if vehicleRole - * is set to emergency(6). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_EMERGENCY - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to emergency(6) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing emergencyContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-07 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.16 - */ - testcase TC_CAM_MSD_INA_BV_07() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_07(); - - } // end TC_CAM_MSD_INA_BV_07 - - /** - * @desc Check that safetyCarContainer is included if vehicleRole - * is set to safetyCar(7). - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SAFETY_CAR - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT’s vehicle role being set to safetyCar(7) - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a valid CAM - * containing cam - * containing camParameters - * containing specialVehicleContainer - * containing safetyCarContainer - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/INA/BV-08 - * @reference ETSI EN 302 637-2 v1.3.2, Annex B.17 - */ - testcase TC_CAM_MSD_INA_BV_08() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_08(); - - } // end TC_CAM_MSD_INA_BV_08 - - } // end group camInformationAdaptation - - group camGenerationFrequency { - - /** - * @desc Check that CAMs are not generated more frequently than - * T_GenCamMin. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * IUT sends a CAM - * } - * then { - * the IUT does not send any CAM before expiry of T_GenCamMin - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/TI-01 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_01(); - - } // end TC_CAM_MSD_GFQ_TI_01 - - /** - * @desc Check that CAMs are not generated less frequently than - * T_GenCamMax. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * IUT sends a CAM - * } - * then { - * the IUT sends another CAM before expiry of T_GenCamMax - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/TI-02 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_02(); - - } // end TC_CAM_MSD_GFQ_TI_02 - - /** - * @desc Check that TGenCam is set to T_GenCamMax after generating - * N_GenCam due to condition 2. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT having sent a CAM at time TIME_1 - * the IUT having sent an anticipated CAM due to condition 2 at time (TIME_1 + INTERVAL_1) - * the IUT having sent (N_GenCam - 1) subsequent CAMs every INTERVAL_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT sends CAM - * } - * then { - * the IUT sends another CAM after expiry of T_GenCamMax - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/TI-03 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_03(); - - } // end TC_CAM_MSD_GFQ_TI_03 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam_Dcc and the absolute difference between - * current direction of the originating ITS-S (towards North) - * and direction included in previous CAM exceeds 4°. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT having sent a CAM at time TIME_1 - * containing cam - * containing camParameters - * containing highFrequencyContainer - * containing basicVehicleContainerHighFrequency - * containing heading set to HEADING_1 - * the IUT not having sent any CAM since T_GenCam_Dcc - * } - * Expected behaviour: - * ensure that { - * when { - * T_GenCam_Dcc expires - * and the IUT is alerted that abs(CurrentHeading – HEADING_1) > 4° - * } - * then { - * the IUT sends a CAM immediately - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/BV-04 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_BV_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_BV_04(); - - } // end TC_CAM_MSD_GFQ_BV_04 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam_Dcc and the current position and position - * included in previous CAM exceeds 4 m. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT having sent a CAM at time TIME_1 - * containing cam - * containing camParameters - * containing basicContainer - * containing referencePosition set to POSITION_1 - * the IUT not having sent any CAM since T_GenCam_Dcc - * } - * Expected behaviour: - * ensure that { - * when { - * T_GenCam_Dcc expires - * and the IUT is alerted that distance(CurrentPosition – POSITION_1) > 4 m - * } - * then { - * the IUT sends a CAM immediately - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/BV-05 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_BV_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_BV_05(); - - } // end TC_CAM_MSD_GFQ_BV_05 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam_Dcc and the absolute difference between - * current speed and speed included in previous CAM - * exceeds 0,5 m/s. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT having sent a CAM at time TIME_1 - * containing cam - * containing camParameters - * containing highFrequencyContainer - * containing basicVehicleContainerHighFrequency - * containing speed set to SPEED_1 - * the IUT not having sent any CAM since T_GenCam_Dcc - * } - * Expected behaviour: - * ensure that { - * when { - * T_GenCam_Dcc expires - * and the IUT is alerted that abs(CurrentSpeed – SPEED_1) > 0,5 m/s - * } - * then { - * the IUT sends a CAM immediately - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/BV-06 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_BV_06() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_BV_06(); - - } // end TC_CAM_MSD_GFQ_BV_06 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam and equal or larger than T_GenCam_Dcc. - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT having sent a CAM - * } - * Expected behaviour: - * ensure that { - * when { - * T_GenCam expires - * and T_GenCam_Dcc expires - * } - * then { - * the IUT sends another CAM - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/TI-07 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_07() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_07(); - - } // end TC_CAM_MSD_GFQ_TI_07 - - /** - * @desc Check that maximum CAM generation frequency for RSU ITS-S is 1Hz - * - *
- * Pics Selection: PICS_CAM_GENERATION AND PICS_RSU - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * IUT sends a CAM - * } - * then { - * the IUT does not send another CAM afterbefore 1s - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/GFQ/TI-08 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.1.4 - */ - testcase TC_CAM_MSD_GFQ_TI_08() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_08(); - - } // end TC_CAM_MSD_GFQ_TI_08 - - } // end group camGenerationFrequency - - group camLowerLayerParameters { - - /** - * @desc Check that CAM is encapsulated in BTP type B packet - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a CAM - * encapsulated in a BTP-B packet - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/PAR/BV-01 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.3.4.1 - */ - testcase TC_CAM_MSD_PAR_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_PAR_BV_01(); - - } // end TC_CAM_MSD_PAR_BV_01 - - /** - * @desc Check that CAM is encapsulated in SHB packet - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a CAM - * encapsulated in a SHB packet - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/PAR/BV-02 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.3.4.1 - */ - testcase TC_CAM_MSD_PAR_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_PAR_BV_02(); - - } // end TC_CAM_MSD_PAR_BV_02 - - /** - * @desc Check that CAM is encapsulated in GN packet with lifetime lower than 1s - *
- * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * a CAM is generated - * } - * then { - * the IUT sends a CAM - * encapsulated in a GN packet - * containing Basic Header - * containing Lifetime field - * indicating value lower than 1s - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/PAR/BV-03 - * @reference ETSI EN 302 637-2 v1.3.2, clause 5.3.4.1 - */ - testcase TC_CAM_MSD_PAR_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_PAR_BV_03(); - - } // end TC_CAM_MSD_PAR_BV_03 - - } // end group camLowerLayerParameters - - group camGenerationSSP { - - /** - * @desc Check that the IUT does not send a CAM - * when its content is not permitted by signing certificate - *
- * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT is authorized to sign CAMs with the certificate - * containing CAM SSP - * indicating bit at position '1' set to 0 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a CAM - * containing CenDsrcTollingZone - * } - * then { - * the IUT does not send this CAM - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/SSP/BO-01 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.2.2.1 - */ - testcase TC_CAM_MSD_SSP_BO_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_SSP_BO_01(); - - } // end TC_CAM_MSD_SSP_BO_01 - - /** - * @desc Check that the IUT does not send a CAM - * when its content is not permitted by signing certificate - *
- * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED - * AND PICS_SPECIALVEHICLECONTAINER AND PICS_PUBLICTRANS - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT is authorized to sign CAMs with the certificate - * containing CAM SSP - * indicating bit at position '2' set to 0 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a CAM - * containing publicTransportContainer - * } - * then { - * the IUT does not send this CAM - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/SSP/BO-02 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.2.2.1 - */ - testcase TC_CAM_MSD_SSP_BO_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_SSP_BO_02(); - - } // end TC_CAM_MSD_SSP_BO_02 - - /** - * @desc Check that the IUT does not send a CAM - * when its content is not permitted by signing certificate - *
- * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED - * AND PICS_SPECIALVEHICLECONTAINER AND PICS_SPECIALTRANS - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT is authorized to sign CAMs with the certificate - * containing CAM SSP - * indicating bit at position '3' set to 0 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a CAM - * containing specialTransportContainer - * } - * then { - * the IUT does not send this CAM - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSD/SSP/BO-03 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.2.2.1 - */ - testcase TC_CAM_MSD_SSP_BO_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_SSP_BO_03(); - - } // end TC_CAM_MSD_SSP_BO_03 - - } // end group camGenerationSSP - - } // end group camMessageDissemination - - group camMessageProcessing { - - /** - * @desc Check that content of received CAM is transmitted to - * applications and other facilities. - *
- * Pics Selection: PICS_CAM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a valid CAM - * } - * then { - * the IUT forwards the CAM content to upper layers - * and the IUT forwards the CAM content to other facilities - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSP/BV-01 - * @reference ETSI EN 302 637-2 v1.3.2, clause 4.2.2 - */ - testcase TC_CAM_MSP_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_BV_01(); - - } // end TC_CAM_MSP_BV_01 - - group camProcessingSSP { - /** - * @desc Check that IUT discards CAM if SSP value of the signing certificate - * is not consistent with the provided containers. - *
- * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured CAM - * containing CenDsrcTollingZone/ProtectedCommunicationZonesRSU - * signed with certificate - * containing CAM SSP bit at position 0 - * indicating 0 - * } - * then { - * the IUT discards the CAM - * and the IUT does not forward the CAM content to upper layers - * and the IUT does not forward the CAM content to other facilities - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSP/SSP/BV-01-01 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.2.2.1 - */ - testcase TC_CAM_MSP_SSP_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_SSP_BV_01(); - - } // end TC_CAM_MSP_BV_01 - - /** - * @desc Check that IUT discards CAM if SSP value of the signing certificate - * is not consistent with the provided containers. - *
- * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured CAM - * containing publicTransportContainer - * and signed with certificate - * containing CAM SSP bit at position 1 - * indicating 0 - * } - * then { - * the IUT discards the CAM - * and the IUT does not forward the CAM content to upper layers - * and the IUT does not forward the CAM content to other facilities - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSP/SSP/BV-01-02 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.2.2.1 - */ - testcase TC_CAM_MSP_SSP_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_SSP_BV_02(); - - } // end TC_CAM_MSP_BV_02 - - /** - * @desc Check that IUT discards CAM if SSP value of the signing certificate - * is not consistent with the provided containers. - *
- * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured CAM - * containing specialTransportContainer - * and signed with certificate - * containing CAM SSP bit at position 2 - * indicating 0 - * } - * then { - * the IUT discards the CAM - * and the IUT does not forward the CAM content to upper layers - * and the IUT does not forward the CAM content to other facilities - * } - * } - *- * - * @see ETSI TS 102 868-2 v1.4.1 TP/CAM/MSP/SSP/BV-01-03 - * @reference ETSI EN 302 637-2 v1.3.2, clause 6.2.2.1 - */ - testcase TC_CAM_MSP_SSP_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_SSP_BV_03(); - - } // end TC_CAM_MSP_BV_03 - - }// end group camProcessingSSP - - } // end group camMessageProcessing - -} // end ItsCam_TestCases +/** + * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestCases.ttcn $ + * $Id: ItsCam_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Testcases for CA Protocol + * @reference ETSI EN 302 637-2 v1.4.1 + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + */ + +module ItsCam_TestCases { + + // LibItsCam + import from LibItsCam_TestSystem all; + + // Ats Its + import from ItsCam_TpFunctions all; + + // 5.2.1 + group camMessageDissemination { + + group camMessageFormat { + + /** + * @desc Check that protocolVersion is set to 2 and messageID is + * set to 2. + *
+ * Pics Selection: PICS_CAM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing ITS PDU header + * containing protocolVersion + * indicating value 2 + * and containing messageID + * indicating value 2 + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/FMT/BV-01 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.1 + */ + testcase TC_CAM_MSD_FMT_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_01(); + + } // end TC_CAM_MSD_FMT_BV_01 + + /** + * @desc Check that LF container is included in 1st CAM since CA + * basic service activation. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT has not sent any CAM yet + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing lowFrequencyContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/FMT/BV-02 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_02(); + + } // end TC_CAM_MSD_FMT_BV_02 + + /** + * @desc Check that LF container is included if time elapsed since + * the generation of the last CAM with the low frequency + * container generation is equal or larger than 500 ms. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT has sent a CAM + * containing cam + * containing camParameters + * containing lowFrequencyContainer at time TIME_1 + * and the IUT has not sent CAM + * containing cam + * containing camParameters + * containing lowFrequencyContainer after TIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated at time TIME_2 >= (TIME_1 + 500ms) + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing lowFrequencyContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/FMT/BV-03 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_03(); + + } // end TC_CAM_MSD_FMT_BV_03 + + /** + * @desc Check that specialVehicle container is included in 1st CAM + * since CA basic service activation. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR) + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT is configured to advertise itself as a special vehicle + * and the IUT has not sent any CAM yet + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/FMT/BV-04 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_04(); + + } // end TC_CAM_MSD_FMT_BV_04 + + /** + * @desc Check that specialVehicle container is included if time + * elapsed since the generation of the last CAM with the + * special vehicle container generation is equal or larger + * than 500 ms. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR) + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT has sent a CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer at time TIME_1 + * and the IUT has not sent CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer after TIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated at time TIME_2 >= (TIME_1 + 500ms) + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/FMT/BV-05 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_05(); + + } // end TC_CAM_MSD_FMT_BV_05 + + } // end group camMessageFormat + + group camInformationAdaptation { + + group camInVehicleData { + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Curvature value + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .curvature + * VALUE: measured value + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_01(); + + } // end TC_CAM_MSD_INA_BV_01_01 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Brake pedal being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .brakePedalActive + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-02 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_02(); + + } // end TC_CAM_MSD_INA_BV_01_02 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Brake pedal being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .brakePedalActive + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-03 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_03(); + + } // end TC_CAM_MSD_INA_BV_01_03 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Gas pedal being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .gasPedalActive + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-04 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_04(); + + } // end TC_CAM_MSD_INA_BV_01_04 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Gas pedal being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .gasPedalActive + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-05 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_05(); + + } // end TC_CAM_MSD_INA_BV_01_05 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Emergency brake being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .emergencyBrakeActive + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-06 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_06(); + + } // end TC_CAM_MSD_INA_BV_01_06 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Emergency brake being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .emergencyBrakeActive + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-07 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_07(); + + } // end TC_CAM_MSD_INA_BV_01_07 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Collision warning being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .collisionWarningActive + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-08 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_08(); + + } // end TC_CAM_MSD_INA_BV_01_08 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Collision warning being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .collisionWarningActive + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-09 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_09() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_09(); + + } // end TC_CAM_MSD_INA_BV_01_09 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: ACC being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .accActive + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-10 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_10() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_10(); + + } // end TC_CAM_MSD_INA_BV_01_10 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: ACC being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .accActive + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-11 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_11() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_11(); + + } // end TC_CAM_MSD_INA_BV_01_11 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Cruise control being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .cruiseControl + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-12 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_12() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_12(); + + } // end TC_CAM_MSD_INA_BV_01_12 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Cruise control being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .cruiseControl + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-13 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_13() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_13(); + + } // end TC_CAM_MSD_INA_BV_01_13 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Speed limiter being activated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .speedLimiterActive + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-14 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_14() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_14(); + + } // end TC_CAM_MSD_INA_BV_01_14 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Speed limiter control being deactivated + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .accelerationControl + * .speedLimiterActive + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-15 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_15() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_15(); + + } // end TC_CAM_MSD_INA_BV_01_15 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Low beam headlights being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .lowBeamHeadlightsOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-16 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_16() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_16(); + + } // end TC_CAM_MSD_INA_BV_01_16 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Low beam headlights being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .lowBeamHeadlightsOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-17 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_17() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_17(); + + } // end TC_CAM_MSD_INA_BV_01_17 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: High beam headlights being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .highBeamHeadlightsOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-18 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_18() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_18(); + + } // end TC_CAM_MSD_INA_BV_01_18 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: High beam headlights being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .highBeamHeadlightsOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-19 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_19() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_19(); + + } // end TC_CAM_MSD_INA_BV_01_19 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Left turn signal being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .leftTurnSignalOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-20 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_20() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_20(); + + } // end TC_CAM_MSD_INA_BV_01_20 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Left turn signal being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .leftTurnSignalOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-21 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_21() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_21(); + + } // end TC_CAM_MSD_INA_BV_01_21 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Right turn signal being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .rightTurnSignalOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-22 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_22() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_22(); + + } // end TC_CAM_MSD_INA_BV_01_22 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Right turn signal being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .rightTurnSignalOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-23 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_23() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_23(); + + } // end TC_CAM_MSD_INA_BV_01_23 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Daytime running lights being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .daytimeRunningLightsOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-24 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_24() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_24(); + + } // end TC_CAM_MSD_INA_BV_01_24 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Daytime running lights being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .daytimeRunningLightsOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-25 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_25() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_25(); + + } // end TC_CAM_MSD_INA_BV_01_25 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Reverse light being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .reverseLightOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-26 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_26() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_26(); + + } // end TC_CAM_MSD_INA_BV_01_26 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Reverse light being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .reverseLightOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-27 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_27() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_27(); + + } // end TC_CAM_MSD_INA_BV_01_27 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Fog lights being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .fogLightOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-28 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_28() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_28(); + + } // end TC_CAM_MSD_INA_BV_01_28 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Fog lights being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .fogLightOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-29 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_29() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_29(); + + } // end TC_CAM_MSD_INA_BV_01_29 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Parking lights being activated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .parkingLightsOn + * VALUE: 1 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-30 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_30() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_30(); + + } // end TC_CAM_MSD_INA_BV_01_30 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Parking lights being deactivated + * FIELD: lowFrequencyContainer + * .basicVehicleContainerLowFrequency + * .exteriorLights + * .parkingLightsOn + * VALUE: 0 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-31 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_31() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_31(); + + } // end TC_CAM_MSD_INA_BV_01_31 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Heading value + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .heading + * VALUE: measured value + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-32 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_32() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_32(); + + } // end TC_CAM_MSD_INA_BV_01_32 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Speed value + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .speed + * VALUE: measured value + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-33 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_33() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_33(); + + } // end TC_CAM_MSD_INA_BV_01_33 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Drive direction value + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .driveDirection + * VALUE: measured value + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-34 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_34() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_34(); + + } // end TC_CAM_MSD_INA_BV_01_34 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state + * } + * INFO: Yaw rate value + * FIELD: highFrequencyContainer + * .basicVehicleContainerHighFrequency + * .yawRate + * VALUE: measured value + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted about INFO + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing FIELD set to VALUE + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-01-35 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + */ + testcase TC_CAM_MSD_INA_BV_01_35() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_35(); + + } // end TC_CAM_MSD_INA_BV_01_35 + + } // end group camInVehicleData + + /** + * @desc Check that publicTransportContainer is included if + * vehicleRole is set to publicTransport(1). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_PUBLICTRANS + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to publicTransport(1) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing publicTransportContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-02 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.11 + */ + testcase TC_CAM_MSD_INA_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_02(); + + } // end TC_CAM_MSD_INA_BV_02 + + /** + * @desc Check that specialTransportContainer is included if + * vehicleRole is set to specialTransport(2). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SPECIALTRANS + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to specialTransport(2) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing specialTransportContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-03 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.12 + */ + testcase TC_CAM_MSD_INA_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_03(); + + } // end TC_CAM_MSD_INA_BV_03 + + /** + * @desc Check that dangerousGoodsContainer is included if + * vehicleRole is set to dangerousGoods(3). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_DANGEROUSGOODS + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to dangerousGoods(3) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing dangerousGoodsContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-04 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.13 + */ + testcase TC_CAM_MSD_INA_BV_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_04(); + + } // end TC_CAM_MSD_INA_BV_04 + + /** + * @desc Check that roadWorksContainerBasic is included if + * vehicleRole is set to roadWork(4). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_ROADWORKS + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to roadWork(4) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing roadWorksContainerBasic + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-05 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.14 + */ + testcase TC_CAM_MSD_INA_BV_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_05(); + + } // end TC_CAM_MSD_INA_BV_05 + + /** + * @desc Check that rescueContainer is included if vehicleRole is + * set to rescue(5). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_RESCUE + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to rescue(5) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing rescueContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-06 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.15 + */ + testcase TC_CAM_MSD_INA_BV_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_06(); + + } // end TC_CAM_MSD_INA_BV_06 + + /** + * @desc Check that emergencyContainer is included if vehicleRole + * is set to emergency(6). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_EMERGENCY + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to emergency(6) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing emergencyContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-07 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.16 + */ + testcase TC_CAM_MSD_INA_BV_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_07(); + + } // end TC_CAM_MSD_INA_BV_07 + + /** + * @desc Check that safetyCarContainer is included if vehicleRole + * is set to safetyCar(7). + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SAFETY_CAR + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT’s vehicle role being set to safetyCar(7) + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a valid CAM + * containing cam + * containing camParameters + * containing specialVehicleContainer + * containing safetyCarContainer + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/INA/BV-08 + * @reference ETSI EN 302 637-2 v1.4.1, Annex B.17 + */ + testcase TC_CAM_MSD_INA_BV_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_08(); + + } // end TC_CAM_MSD_INA_BV_08 + + } // end group camInformationAdaptation + + group camGenerationFrequency { + + /** + * @desc Check that CAMs are not generated more frequently than + * T_GenCamMin. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * IUT sends a CAM + * } + * then { + * the IUT does not send any CAM before expiry of T_GenCamMin + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/TI-01 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_01(); + + } // end TC_CAM_MSD_GFQ_TI_01 + + /** + * @desc Check that CAMs are not generated less frequently than + * T_GenCamMax. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * IUT sends a CAM + * } + * then { + * the IUT sends another CAM before expiry of T_GenCamMax + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/TI-02 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_02(); + + } // end TC_CAM_MSD_GFQ_TI_02 + + /** + * @desc Check that TGenCam is set to T_GenCamMax after generating + * N_GenCam due to condition 2. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT having sent a CAM at time TIME_1 + * the IUT having sent an anticipated CAM due to condition 2 at time (TIME_1 + INTERVAL_1) + * the IUT having sent (N_GenCam - 1) subsequent CAMs every INTERVAL_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT sends CAM + * } + * then { + * the IUT sends another CAM after expiry of T_GenCamMax + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/TI-03 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_03(); + + } // end TC_CAM_MSD_GFQ_TI_03 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam_Dcc and the absolute difference between + * current direction of the originating ITS-S (towards North) + * and direction included in previous CAM exceeds 4°. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT having sent a CAM at time TIME_1 + * containing cam + * containing camParameters + * containing highFrequencyContainer + * containing basicVehicleContainerHighFrequency + * containing heading set to HEADING_1 + * the IUT not having sent any CAM since T_GenCam_Dcc + * } + * Expected behaviour: + * ensure that { + * when { + * T_GenCam_Dcc expires + * and the IUT is alerted that abs(CurrentHeading – HEADING_1) > 4° + * } + * then { + * the IUT sends a CAM immediately + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/BV-04 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_BV_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_BV_04(); + + } // end TC_CAM_MSD_GFQ_BV_04 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam_Dcc and the current position and position + * included in previous CAM exceeds 4 m. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT having sent a CAM at time TIME_1 + * containing cam + * containing camParameters + * containing basicContainer + * containing referencePosition set to POSITION_1 + * the IUT not having sent any CAM since T_GenCam_Dcc + * } + * Expected behaviour: + * ensure that { + * when { + * T_GenCam_Dcc expires + * and the IUT is alerted that distance(CurrentPosition – POSITION_1) > 4 m + * } + * then { + * the IUT sends a CAM immediately + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/BV-05 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_BV_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_BV_05(); + + } // end TC_CAM_MSD_GFQ_BV_05 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam_Dcc and the absolute difference between + * current speed and speed included in previous CAM + * exceeds 0,5 m/s. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT having sent a CAM at time TIME_1 + * containing cam + * containing camParameters + * containing highFrequencyContainer + * containing basicVehicleContainerHighFrequency + * containing speed set to SPEED_1 + * the IUT not having sent any CAM since T_GenCam_Dcc + * } + * Expected behaviour: + * ensure that { + * when { + * T_GenCam_Dcc expires + * and the IUT is alerted that abs(CurrentSpeed – SPEED_1) > 0,5 m/s + * } + * then { + * the IUT sends a CAM immediately + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/BV-06 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_BV_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_BV_06(); + + } // end TC_CAM_MSD_GFQ_BV_06 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam and equal or larger than T_GenCam_Dcc. + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT having sent a CAM + * } + * Expected behaviour: + * ensure that { + * when { + * T_GenCam expires + * and T_GenCam_Dcc expires + * } + * then { + * the IUT sends another CAM + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/TI-07 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_07(); + + } // end TC_CAM_MSD_GFQ_TI_07 + + /** + * @desc Check that maximum CAM generation frequency for RSU ITS-S is 1Hz + * + *
+ * Pics Selection: PICS_CAM_GENERATION AND PICS_RSU + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * IUT sends a CAM + * } + * then { + * the IUT does not send another CAM afterbefore 1s + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/GFQ/TI-08 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.4 + */ + testcase TC_CAM_MSD_GFQ_TI_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_08(); + + } // end TC_CAM_MSD_GFQ_TI_08 + + } // end group camGenerationFrequency + + group camLowerLayerParameters { + + /** + * @desc Check that CAM is encapsulated in BTP type B packet + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a CAM + * encapsulated in a BTP-B packet + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/PAR/BV-01 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.3.4.1 + */ + testcase TC_CAM_MSD_PAR_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_PAR_BV_01(); + + } // end TC_CAM_MSD_PAR_BV_01 + + /** + * @desc Check that CAM is encapsulated in SHB packet + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a CAM + * encapsulated in a SHB packet + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/PAR/BV-02 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.3.4.1 + */ + testcase TC_CAM_MSD_PAR_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_PAR_BV_02(); + + } // end TC_CAM_MSD_PAR_BV_02 + + /** + * @desc Check that CAM is encapsulated in GN packet with lifetime lower than 1s + *
+ * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * a CAM is generated + * } + * then { + * the IUT sends a CAM + * encapsulated in a GN packet + * containing Basic Header + * containing Lifetime field + * indicating value lower than 1s + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/PAR/BV-03 + * @reference ETSI EN 302 637-2 v1.4.1, clause 5.3.4.1 + */ + testcase TC_CAM_MSD_PAR_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_PAR_BV_03(); + + } // end TC_CAM_MSD_PAR_BV_03 + + } // end group camLowerLayerParameters + + group camGenerationSSP { + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+ * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT is authorized to sign CAMs with the certificate + * containing CAM SSP + * indicating bit at position '1' set to 0 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a CAM + * containing CenDsrcTollingZone + * } + * then { + * the IUT does not send this CAM + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/SSP/BO-01 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_01(); + + } // end TC_CAM_MSD_SSP_BO_01 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+ * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED + * AND PICS_SPECIALVEHICLECONTAINER AND PICS_PUBLICTRANS + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT is authorized to sign CAMs with the certificate + * containing CAM SSP + * indicating bit at position '2' set to 0 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a CAM + * containing publicTransportContainer + * } + * then { + * the IUT does not send this CAM + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/SSP/BO-02 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_02(); + + } // end TC_CAM_MSD_SSP_BO_02 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+ * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED + * AND PICS_SPECIALVEHICLECONTAINER AND PICS_SPECIALTRANS + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT is authorized to sign CAMs with the certificate + * containing CAM SSP + * indicating bit at position '3' set to 0 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a CAM + * containing specialTransportContainer + * } + * then { + * the IUT does not send this CAM + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSD/SSP/BO-03 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_03(); + + } // end TC_CAM_MSD_SSP_BO_03 + + } // end group camGenerationSSP + + } // end group camMessageDissemination + + group camMessageProcessing { + + /** + * @desc Check that content of received CAM is transmitted to + * applications and other facilities. + *
+ * Pics Selection: PICS_CAM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a valid CAM + * } + * then { + * the IUT forwards the CAM content to upper layers + * and the IUT forwards the CAM content to other facilities + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSP/BV-01 + * @reference ETSI EN 302 637-2 v1.4.1, clause 4.2.2 + */ + testcase TC_CAM_MSP_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_BV_01(); + + } // end TC_CAM_MSP_BV_01 + + group camProcessingSSP { + /** + * @desc Check that IUT discards CAM if SSP value of the signing certificate + * is not consistent with the provided containers. + *
+ * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured CAM + * containing CenDsrcTollingZone/ProtectedCommunicationZonesRSU + * signed with certificate + * containing CAM SSP bit at position 0 + * indicating 0 + * } + * then { + * the IUT discards the CAM + * and the IUT does not forward the CAM content to upper layers + * and the IUT does not forward the CAM content to other facilities + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSP/SSP/BV-01-01 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSP_SSP_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_SSP_BV_01(); + + } // end TC_CAM_MSP_BV_01 + + /** + * @desc Check that IUT discards CAM if SSP value of the signing certificate + * is not consistent with the provided containers. + *
+ * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured CAM + * containing publicTransportContainer + * and signed with certificate + * containing CAM SSP bit at position 1 + * indicating 0 + * } + * then { + * the IUT discards the CAM + * and the IUT does not forward the CAM content to upper layers + * and the IUT does not forward the CAM content to other facilities + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSP/SSP/BV-01-02 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSP_SSP_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_SSP_BV_02(); + + } // end TC_CAM_MSP_BV_02 + + /** + * @desc Check that IUT discards CAM if SSP value of the signing certificate + * is not consistent with the provided containers. + *
+ * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured CAM + * containing specialTransportContainer + * and signed with certificate + * containing CAM SSP bit at position 2 + * indicating 0 + * } + * then { + * the IUT discards the CAM + * and the IUT does not forward the CAM content to upper layers + * and the IUT does not forward the CAM content to other facilities + * } + * } + *+ * + * @see ETSI TS 102 868-2 v1.4.3 TP/CAM/MSP/SSP/BV-01-03 + * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSP_SSP_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_SSP_BV_03(); + + } // end TC_CAM_MSP_BV_03 + + }// end group camProcessingSSP + + } // end group camMessageProcessing + +} // end ItsCam_TestCases diff --git a/ttcn/AtsCAM/ItsCam_TestControl.ttcn b/ttcn/AtsCAM/ItsCam_TestControl.ttcn index ce984b8c4fca2fc4db68fb45aa253d0959056344..328f34551cf6b57ffac3628e6fb3ea0bfcf73177 100644 --- a/ttcn/AtsCAM/ItsCam_TestControl.ttcn +++ b/ttcn/AtsCAM/ItsCam_TestControl.ttcn @@ -1,121 +1,121 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 / STF517 - * @version $URL$ - * $Id$ - * @desc Test Control file for CAM - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. -* - */ -module ItsCam_TestControl { - - // ATS CAM - import from ItsCam_TestCases all; - - // LibIts - import from LibItsCam_Pics all; - - // Test Execution - control { - - if(PICS_CAM_GENERATION) { - execute(TC_CAM_MSD_FMT_BV_01()); - if (not PICS_RSU) { - execute(TC_CAM_MSD_FMT_BV_02()); - execute(TC_CAM_MSD_FMT_BV_03()); - execute(TC_CAM_MSD_FMT_BV_04()); - execute(TC_CAM_MSD_FMT_BV_05()); - execute(TC_CAM_MSD_INA_BV_01_01()); - execute(TC_CAM_MSD_INA_BV_01_02()); - execute(TC_CAM_MSD_INA_BV_01_03()); - execute(TC_CAM_MSD_INA_BV_01_04()); - execute(TC_CAM_MSD_INA_BV_01_05()); - execute(TC_CAM_MSD_INA_BV_01_06()); - execute(TC_CAM_MSD_INA_BV_01_07()); - execute(TC_CAM_MSD_INA_BV_01_08()); - execute(TC_CAM_MSD_INA_BV_01_09()); - execute(TC_CAM_MSD_INA_BV_01_10()); - execute(TC_CAM_MSD_INA_BV_01_11()); - execute(TC_CAM_MSD_INA_BV_01_12()); - execute(TC_CAM_MSD_INA_BV_01_13()); - execute(TC_CAM_MSD_INA_BV_01_14()); - execute(TC_CAM_MSD_INA_BV_01_15()); - execute(TC_CAM_MSD_INA_BV_01_16()); - execute(TC_CAM_MSD_INA_BV_01_17()); - execute(TC_CAM_MSD_INA_BV_01_18()); - execute(TC_CAM_MSD_INA_BV_01_19()); - execute(TC_CAM_MSD_INA_BV_01_20()); - execute(TC_CAM_MSD_INA_BV_01_21()); - execute(TC_CAM_MSD_INA_BV_01_22()); - execute(TC_CAM_MSD_INA_BV_01_23()); - execute(TC_CAM_MSD_INA_BV_01_24()); - execute(TC_CAM_MSD_INA_BV_01_25()); - execute(TC_CAM_MSD_INA_BV_01_26()); - execute(TC_CAM_MSD_INA_BV_01_27()); - execute(TC_CAM_MSD_INA_BV_01_28()); - execute(TC_CAM_MSD_INA_BV_01_29()); - execute(TC_CAM_MSD_INA_BV_01_30()); - execute(TC_CAM_MSD_INA_BV_01_31()); - execute(TC_CAM_MSD_INA_BV_01_32()); - execute(TC_CAM_MSD_INA_BV_01_33()); - execute(TC_CAM_MSD_INA_BV_01_34()); - execute(TC_CAM_MSD_INA_BV_01_35()); - } - if (PICS_PUBLICTRANS) { - execute(TC_CAM_MSD_INA_BV_02()); - } - if (PICS_SPECIALTRANS) { - execute(TC_CAM_MSD_INA_BV_03()); - } - if (PICS_DANGEROUSGOODS) { - execute(TC_CAM_MSD_INA_BV_04()); - } - if (PICS_ROADWORKS) { - execute(TC_CAM_MSD_INA_BV_05()); - } - if (PICS_RESCUE) { - execute(TC_CAM_MSD_INA_BV_06()); - } - if (PICS_EMERGENCY) { - execute(TC_CAM_MSD_INA_BV_07()); - } - if (PICS_SAFETY_CAR) { - execute(TC_CAM_MSD_INA_BV_08()); - } - - execute(TC_CAM_MSD_GFQ_TI_01()); - execute(TC_CAM_MSD_GFQ_TI_02()); - execute(TC_CAM_MSD_GFQ_TI_03()); - execute(TC_CAM_MSD_GFQ_BV_04()); - execute(TC_CAM_MSD_GFQ_BV_05()); - execute(TC_CAM_MSD_GFQ_BV_06()); - execute(TC_CAM_MSD_GFQ_TI_07()); - execute(TC_CAM_MSD_GFQ_TI_08()); - - execute(TC_CAM_MSD_PAR_BV_01()); - execute(TC_CAM_MSD_PAR_BV_02()); - execute(TC_CAM_MSD_PAR_BV_03()); - - if (PICS_IS_IUT_SECURED) { - if (PICS_PUBLICTRANS and PICS_SPECIALVEHICLECONTAINER) { - execute(TC_CAM_MSD_SSP_BO_02()); - } - if (PICS_SPECIALTRANS and PICS_SPECIALVEHICLECONTAINER) { - execute(TC_CAM_MSD_SSP_BO_03()); - } - } - } - - if(PICS_CAM_RECEPTION) { - execute(TC_CAM_MSP_BV_01()); - if (PICS_IS_IUT_SECURED) { - execute(TC_CAM_MSP_SSP_BV_02()); - execute(TC_CAM_MSP_SSP_BV_03()); - } - } - - } - +/** + * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestControl.ttcn $ + * $Id: ItsCam_TestControl.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Test Control file for CAM + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. +* + */ +module ItsCam_TestControl { + + // ATS CAM + import from ItsCam_TestCases all; + + // LibIts + import from LibItsCam_Pics all; + + // Test Execution + control { + + if(PICS_CAM_GENERATION) { + execute(TC_CAM_MSD_FMT_BV_01()); + if (not PICS_RSU) { + execute(TC_CAM_MSD_FMT_BV_02()); + execute(TC_CAM_MSD_FMT_BV_03()); + execute(TC_CAM_MSD_FMT_BV_04()); + execute(TC_CAM_MSD_FMT_BV_05()); + execute(TC_CAM_MSD_INA_BV_01_01()); + execute(TC_CAM_MSD_INA_BV_01_02()); + execute(TC_CAM_MSD_INA_BV_01_03()); + execute(TC_CAM_MSD_INA_BV_01_04()); + execute(TC_CAM_MSD_INA_BV_01_05()); + execute(TC_CAM_MSD_INA_BV_01_06()); + execute(TC_CAM_MSD_INA_BV_01_07()); + execute(TC_CAM_MSD_INA_BV_01_08()); + execute(TC_CAM_MSD_INA_BV_01_09()); + execute(TC_CAM_MSD_INA_BV_01_10()); + execute(TC_CAM_MSD_INA_BV_01_11()); + execute(TC_CAM_MSD_INA_BV_01_12()); + execute(TC_CAM_MSD_INA_BV_01_13()); + execute(TC_CAM_MSD_INA_BV_01_14()); + execute(TC_CAM_MSD_INA_BV_01_15()); + execute(TC_CAM_MSD_INA_BV_01_16()); + execute(TC_CAM_MSD_INA_BV_01_17()); + execute(TC_CAM_MSD_INA_BV_01_18()); + execute(TC_CAM_MSD_INA_BV_01_19()); + execute(TC_CAM_MSD_INA_BV_01_20()); + execute(TC_CAM_MSD_INA_BV_01_21()); + execute(TC_CAM_MSD_INA_BV_01_22()); + execute(TC_CAM_MSD_INA_BV_01_23()); + execute(TC_CAM_MSD_INA_BV_01_24()); + execute(TC_CAM_MSD_INA_BV_01_25()); + execute(TC_CAM_MSD_INA_BV_01_26()); + execute(TC_CAM_MSD_INA_BV_01_27()); + execute(TC_CAM_MSD_INA_BV_01_28()); + execute(TC_CAM_MSD_INA_BV_01_29()); + execute(TC_CAM_MSD_INA_BV_01_30()); + execute(TC_CAM_MSD_INA_BV_01_31()); + execute(TC_CAM_MSD_INA_BV_01_32()); + execute(TC_CAM_MSD_INA_BV_01_33()); + execute(TC_CAM_MSD_INA_BV_01_34()); + execute(TC_CAM_MSD_INA_BV_01_35()); + } + if (PICS_PUBLICTRANS) { + execute(TC_CAM_MSD_INA_BV_02()); + } + if (PICS_SPECIALTRANS) { + execute(TC_CAM_MSD_INA_BV_03()); + } + if (PICS_DANGEROUSGOODS) { + execute(TC_CAM_MSD_INA_BV_04()); + } + if (PICS_ROADWORKS) { + execute(TC_CAM_MSD_INA_BV_05()); + } + if (PICS_RESCUE) { + execute(TC_CAM_MSD_INA_BV_06()); + } + if (PICS_EMERGENCY) { + execute(TC_CAM_MSD_INA_BV_07()); + } + if (PICS_SAFETY_CAR) { + execute(TC_CAM_MSD_INA_BV_08()); + } + + execute(TC_CAM_MSD_GFQ_TI_01()); + execute(TC_CAM_MSD_GFQ_TI_02()); + execute(TC_CAM_MSD_GFQ_TI_03()); + execute(TC_CAM_MSD_GFQ_BV_04()); + execute(TC_CAM_MSD_GFQ_BV_05()); + execute(TC_CAM_MSD_GFQ_BV_06()); + execute(TC_CAM_MSD_GFQ_TI_07()); + execute(TC_CAM_MSD_GFQ_TI_08()); + + execute(TC_CAM_MSD_PAR_BV_01()); + execute(TC_CAM_MSD_PAR_BV_02()); + execute(TC_CAM_MSD_PAR_BV_03()); + + if (PICS_IS_IUT_SECURED) { + if (PICS_PUBLICTRANS and PICS_SPECIALVEHICLECONTAINER) { + execute(TC_CAM_MSD_SSP_BO_02()); + } + if (PICS_SPECIALTRANS and PICS_SPECIALVEHICLECONTAINER) { + execute(TC_CAM_MSD_SSP_BO_03()); + } + } + } + + if(PICS_CAM_RECEPTION) { + execute(TC_CAM_MSP_BV_01()); + if (PICS_IS_IUT_SECURED) { + execute(TC_CAM_MSP_SSP_BV_02()); + execute(TC_CAM_MSP_SSP_BV_03()); + } + } + + } + } // end ItsCam_TestControl \ No newline at end of file diff --git a/ttcn/AtsCAM/ItsCam_TpFunctions.ttcn b/ttcn/AtsCAM/ItsCam_TpFunctions.ttcn index 8c3981167ebf8f1c30bf94af4a2e5128c8addf84..1ba1fc556ebd8044ed6aba54ba8c06a0e0a4942b 100644 --- a/ttcn/AtsCAM/ItsCam_TpFunctions.ttcn +++ b/ttcn/AtsCAM/ItsCam_TpFunctions.ttcn @@ -1,3300 +1,3260 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 / STF517 - * @version $URL$ - * $Id$ - * @desc CAM TP functions - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. -* - */ - -module ItsCam_TpFunctions { - - import from LibItsCommon_Pixits all; - - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_VerdictControl all; - import from LibCommon_Time all; - import from LibCommon_BasicTypesAndValues all; - import from LibCommon_DataStrings all; - - // LibIts - import from ITS_Container language "ASN.1:1997" all; - import from CAM_PDU_Descriptions language "ASN.1:1997" all; - - // LibItsCommon -// import from LibItsCommon_TypesAndValues all; -// import from LibItsCommon_Templates all; - import from LibItsCommon_Functions all; - import from LibItsCommon_Pixits all; - import from LibItsCommon_ASN1_NamedNumbers all; - - // LibItsCam - import from LibItsCam_TestSystem all; - import from LibItsCam_Functions all; - import from LibItsCam_Templates all; - import from LibItsCam_TypesAndValues all; - import from LibItsCam_Pics all; -// import from LibItsCam_Pixits all; - - import from LibItsSecurity_Functions all; - - // 5.2.1 - group camMessageDissemination { - - group camMessageFormat { - - /** - * @desc TP Function for TC_CAM_MSD_FMT_BV_01 - */ - function f_CAM_MSD_FMT_BV_01() runs on ItsCam { - - // Local variables - - // Test control - if (not PICS_CAM_GENERATION or PICS_RSU) { - log("*** " & testcasename() & ": PICS_CAM_GENERATION and not PICS_RSU required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] camPort.receive(mw_camInd ( mw_camMsg_any )){ - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cfDown(); - - } // end f_CAM_MSD_FMT_BV_01 - - /** - * @desc TP Function for TC_CAM_MSD_FMT_BV_02 - */ - function f_CAM_MSD_FMT_BV_02() runs on ItsCam { - - // Local variables - - // Test control - if (not PICS_CAM_GENERATION or PICS_RSU) { - log("*** " & testcasename() & ": PICS_CAM_GENERATION AND NOT PICS_RSU required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] camPort.receive(mw_camInd ( mw_camMsg_LF_any )){ - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] camPort.receive(mw_camInd ( mw_camMsg_any )){ - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Expected CAM message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cfDown(); - - } // end f_CAM_MSD_FMT_BV_02 - - /** - * @desc TP Function for TC_CAM_MSD_FMT_BV_03 - */ - function f_CAM_MSD_FMT_BV_03() runs on ItsCam { - - // Local variables - timer t_minTransInterval := c_lowFrequencyGenerationTime * 1.10; - var SpeedValue v_speedValues[5] := { 1000, 2000, 3000, 4000, 5000 } //cm/s - var integer v_cntSpeed, v_cntTime; - var CamInd v_camInd; - var boolean v_nextCamWithLF := false; - const integer c_cntTimeLimit := 10; - - // Test control - if (not PICS_CAM_GENERATION or PICS_RSU) { - log("*** " & testcasename() & ": PICS_CAM_GENERATION AND NOT PICS_RSU required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(e_dynamicPosition1500m); - camPort.clear; - tc_ac.start; - alt { - [] camPort.receive(mw_camInd ( mw_camMsg_LF_any )){ - tc_ac.stop; - t_minTransInterval.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } - - // Test Body - for (v_cntSpeed:=0; v_cntSpeed
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_Trigger request from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing ITS PDU header, - * containing protocolVersion - * indicating value 1 - * and containing messageID - * indicating value 1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSGF/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, Annex B.1 - */ - testcase TC_DEN_MSGF_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSGF_BV_01(); - - } // end TC_DEN_MSGF_BV_01 - - /** - * @desc Check that sent DENM contains at least one 'trace' DE - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_Trigger request from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing location container - * containing at least one 'trace' - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSGF/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.3.2 - */ - testcase TC_DEN_MSGF_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSGF_BV_02(); - - } // end TC_DEN_MSGF_BV_02 - - } // end denMessageFormat - - // 5.2.1.2 - group denEventGeneration { - - /** - * @desc Check that DEN Basic Service generates a new DENM on reception of a valid AppDENM_Trigger request - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_Trigger request from the application layer - * } - * then { - * the IUT sends a valid DENM - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.2.1 - */ - testcase TC_DEN_EVGN_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_01(); - - } // end TC_DEN_EVGN_BV_01 - - /** - * @desc Check that a new ActionID value is assigned for each newly generated DENM - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated several events - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to generate a new event - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating an unused value - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.1.1 - */ - testcase TC_DEN_EVGN_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_02(); - - } // end TC_DEN_EVGN_BV_02 - - /** - * @desc Check that a newly created ActionID contains the StationID of the originating ITS-S that detected the event - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to generate a new event - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * containing originatingStationID - * indicating its own StationID - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-03 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.1.1 - */ - testcase TC_DEN_EVGN_BV_03() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_03(); - - } // end TC_DEN_EVGN_BV_03 - - /** - * @desc Check that Cause and subcause values included in DENM as provided by application - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_trigger request from the application layer - * containing situation container - * containing eventType - * containing causeCode - * indicating Value1 - * containing subCauseCode - * indicating Value2 - * } - * then { - * the IUT sends a valid DENM - * containing situation container - * containing eventType - * containing causeCode - * indicating Value1 - * containing subCauseCode - * indicating Value2 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-04 - * @reference ETSI EN 302 637-3 v1.2.2, clause 7.1.3 - */ - testcase TC_DEN_EVGN_BV_04() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_04(); - - } // end TC_DEN_EVGN_BV_04 - - /** - * @desc Check that referenceTime is set to the current time when generating a DENM for a new event - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated several events - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to generate a new event - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing referenceTime - * indicating CLT - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-05 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.3 - */ - testcase TC_DEN_EVGN_BV_05() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_05(); - - } // end TC_DEN_EVGN_BV_05 - - /** - * @desc Check that sequenceNumber is set to a next unused value each time an event is detected - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated several events - * and the IUT having generated its last DENM - * containing management container - * containing actionID - * containing sequenceNumber - * indicating SEQ1 - * and no active event being associated with sequenceNumber SEQ1 + 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to generate a new event - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * containing sequenceNumber - * indicating SEQ1 + 1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-07 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 6.1.1.1, 8.2.1.2 - */ - testcase TC_DEN_EVGN_BV_07() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_07(); - - } // end TC_DEN_EVGN_BV_07 - - /** - * @desc Check that actionID are generated using newly assigned stationID when a pseudonym change occurs - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated several events - * containing management container - * containing actionID - * containing originatingStationID - * indicating STATION_ID_1 - * and the IUT having changed its StationID - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to generate a new event - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * containing originatingStationID - * indicating its new StationID - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVGN/BV-10 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 6.1.1.2 - */ - testcase TC_DEN_EVGN_BV_10() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVGN_BV_10(); - - } // end TC_DEN_EVGN_BV_10 - - } // end denEventGeneration - - // 5.2.1.3 - group denEventUpdate { - - /** - * @desc Check that DEN Basic Service generates an update DENM on reception of a valid AppDENM_update request - *
- * PICS Selection: PICS_DENM_UPDATE - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_update request from the application layer - * } - * then { - * the IUT sends a valid DENM - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVUP/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.2.2 - */ - testcase TC_DEN_EVUP_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVUP_BV_01(); - - } // end TC_DEN_EVUP_BV_01 - - /** - * @desc Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged - *
- * PICS Selection: PICS_DENM_UPDATE - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and the IUT not having changed its stationID - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_update request associated with ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVUP/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 6.1.2.2, 8.1.1.1 - */ - testcase TC_DEN_EVUP_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVUP_BV_02(); - - } // end TC_DEN_EVUP_BV_02 - - /** - * @desc Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck - *
- * PICS Selection: PICS_DENM_UPDATE - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing referenceTime - * indicating REFERENCETIME1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_update request associated with ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating CLT > REFERENCETIME1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVUP/BV-03 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.2.2 - */ - testcase TC_DEN_EVUP_BV_03() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVUP_BV_03(); - - } // end TC_DEN_EVUP_BV_03 - - /** - * @desc Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table - *
- * PICS Selection: PICS_DENM_UPDATE - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * and the IUT not having sent an event being associated with actionID ACTION_ID1 - * containing originatorStationID - * indicating its own stationID - * and containing sequenceNumber - * indicating SEQ1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to update an event associated to ACTION_ID1 - * } - * then { - * the IUT does not send any DENM for this event - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVUP/BO-04 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.1.2 - */ - testcase TC_DEN_EVUP_BO_04() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVUP_BO_04(); - - } // end TC_DEN_EVUP_BO_04 - - } // end denEventUpdate - - // 5.2.1.4 - group denEventTermination { - - /** - * @desc Check that DEN Basic Service generates a cancellation DENM when application indicates the - * premature termination of an event for which it is the originator - *
- * PICS Selection: PICS_DENM_CANCELLATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing termination - * indicating value isCancellation - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 6.1.2.4, 8.2.1.3 - */ - testcase TC_DEN_EVTR_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BV_01(); - - } // end TC_DEN_EVTR_BV_01 - - /** - * @desc Check that DEN Basic Service generates a negation DENM when application indicates the - * premature termination of an event for which it is not the originator - *
- * PICS Selection: PICS_DENM_NEGATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing originatorStationID - * indicating stationID different from its own stationID - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing termination - * indicating value isNegation - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.2.4 - */ - testcase TC_DEN_EVTR_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BV_02(); - - } // end TC_DEN_EVTR_BV_02 - - /** - * @desc Check that referenceTime is set to the latest value received for this event in negation DENM - *
- * PICS Selection: PICS_DENM_NEGATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing originatorStationID - * indicating stationID different from its own stationID - * and containing referenceTime - * indicating REFERENCETIME1 - * and the IUT having received an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME2 > REFERENCETIME1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating value REFERENCETIME2 - * and containing termination - * indicating value isNegation - * } - * } - *- * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BV-03 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 6.1.2.4, 8.2.1.3 - */ - testcase TC_DEN_EVTR_BV_03() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BV_03(); - - } // end TC_DEN_EVTR_BV_03 - - /** - * @desc Check that situation container, location container and alacarte container are not present in a cancellation DENM - *
- * PICS Selection: PICS_DENM_CANCELLATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing termination - * indicating value isCancellation - * and not containing situation container - * and not containing location container - * and not containing alacarte container - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BV-04 - * @reference ETSI EN 302 637-3 v1.2.2, clause 7.1.1 - */ - testcase TC_DEN_EVTR_BV_04() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BV_04(); - - } // end TC_DEN_EVTR_BV_04 - - /** - * @desc Check that situation container, location container and alacarte container are not present in a negation DENM - *
- * PICS Selection: PICS_DENM_NEGATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing originatorStationID - * indicating stationID different from its own stationID - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing termination - * indicating value isNegation - * and not containing situation container - * and not containing location container - * and not containing alacarte container - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BV-05 - * @reference ETSI EN 302 637-3 v1.2.2, clause 7.1.1 - */ - testcase TC_DEN_EVTR_BV_05() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BV_05(); - - } // end TC_DEN_EVTR_BV_05 - - /** - * @desc Check that DEN Basic Service does not send any termination DENM if actionID is not in - * originating ITS-S message table or receiving ITS-S message table (own stationID) - *
- * PICS Selection: PICS_DENM_NEGATION OR PICS_DENM_CANCELLATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated several events - * and the IUT not having send event being associated with ACTION_ID1 - * containing originatingStationID - * indicating its own stationID - * and containing sequenceNumber - * indicating SEQ1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to terminate an event associated to ACTION_ID1 - * containing originatingStationID - * indicating its own stationID - * and containing sequenceNumber - * indicating SEQ1 - * } - * then { - * the IUT does not send send any termination DENM for this event - * } - * } - * NOTE: Event associated to ACTION_ID1 cannot be present in receiving ITS-S message - * table as its stationID is IUT’s stationID (see TP/DEN/EVTR/BO-07) - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BO-06 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 8.2.2 - */ - testcase TC_DEN_EVTR_BO_06() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BO_06(); - - } // end TC_DEN_EVTR_BO_06 - - /** - * @desc Check that DEN Basic Service does not send any termination DENM if actionID is not in - * originating ITS-S message table or receiving ITS-S message table (other stationID) - *
- * PICS Selection: PICS_DENM_CANCELLATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received several events - * and the IUT not having received event being associated with ACTION_ID1 - * containing originatingStationID - * indicating STATION_ID1 different from its own stationID - * and containing sequenceNumber - * indicating SEQ1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to terminate an event associated to ACTION_ID1 - * containing originatingStationID - * indicating STATION_ID1 - * and containing sequenceNumber - * indicating SEQ1 - * } - * then { - * the IUT does not send send any termination DENM for this event - * } - * } - * NOTE: Event associated to ACTION_ID1 cannot be present in originating ITS-S message table as its - * stationID is not IUT’s stationID (see TP/DEN/EVTR/BO-06) - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BO-07 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 8.2.2 - */ - testcase TC_DEN_EVTR_BO_07() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BO_07(); - - } // end TC_DEN_EVTR_BV_07 - - /** - * @desc Check that referenceTime is set to to the current time when generating a cancellation DENM - *
- * PICS Selection: PICS_DENM_CANCELLATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having generated an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_1 - * and containing referenceTime - * indicating REFERENCETIME1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_termination request associated with ACTION_ID1 from the application layer - * } - * then { - * the IUT sends a valid DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing termination - * indicating value isCancellation - * and containing referenceTime - * indicating CLT - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVTR/BV-08 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.3 - */ - testcase TC_DEN_EVTR_BV_08() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVTR_BV_08(); - - } // end TC_DEN_EVTR_BV_08 - - } // end denEventTermination - - // 5.2.1.5 - group denMessageRepetition { - - /** - * @desc Check that DEN Basic Sercive repeats DENM transmission according to repetitionInterval parameter provided by application - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from the application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated an the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_1 - * and containing transmissionInterval - * indicating INTERVAL_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with INTERVAL_1 - * } - * then { - * the IUT repeats the transmission of the valid DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/TI-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.2.3 and 8.2.2 - */ - testcase TC_DEN_EVRP_TI_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_TI_01(); - - } // end TC_DEN_EVRP_TI_01 - - /** - * @desc Check that the repeated DENM is always the most up-to-date message - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from the application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated an the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and the IUT having generated an update of the event associated with ACTION_ID1 modifying partly the event - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with INTERVAL_1 - * } - * then { - * the IUT repeats the transmission of the valid DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.2.3 and 8.2.2 - */ - testcase TC_DEN_EVRP_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_02(); - - } // end TC_DEN_EVRP_BV_02 - - /** - * @desc Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration - * expiration - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_1 - * and the IUT having repeated (one or more times) the transmission of the valid DENM associated with ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with DURATION_2 - * } - * then { - * the IUT stops the retransmission of the DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-03 - * @reference ETSI EN 302 637-3 v1.2.2, clauses 6.1.2.4 and 8.2.2 - */ - testcase TC_DEN_EVRP_BV_03() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_03(); - - } // end TC_DEN_EVRP_BV_03 - - /** - * @desc Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration - * expiration - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_2 - * and the IUT having repeated (one or more times) the transmission of the valid DENM associated with ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with DURATION_2 - * } - * then { - * the IUT stops the retransmission of the most up-to-date valid DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-04 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.2 - */ - testcase TC_DEN_EVRP_BV_04() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_04(); - - } // end TC_DEN_EVRP_BV_04 - - /** - * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is - * not provided by application - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * not containing repetitionInterval - * and the IUT having generated an the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT has detected that repetitionInterval is not provided for the event associated with ACTION_ID1 - * } - * then { - * the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-05 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.1.2 - */ - testcase TC_DEN_EVRP_BV_05() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_05(); - - } // end TC_DEN_EVRP_BV_05 - - /** - * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is - * not provided by application - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * not containing repetitionDuration - * and the IUT having generated an the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT has detected that repetitionDuration is not provided for the event associated with ACTION_ID1 - * } - * then { - * the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-06 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.1.2 - */ - testcase TC_DEN_EVRP_BV_06() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_06(); - - } // end TC_DEN_EVRP_BV_06 - - /** - * @desc Check that existing actionID in originating ITS-S are updated when stationID is modified - * - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated the corresponding event - * containing management container - * containing actionID - * containing originatororiginatingStationID - * indicating STATION_ID_1 - * and containing validityDuration - * indicating DURATION_1 - * and the IUT having changed its StationID - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT changes its StationID and is alerted of expiration of the time associated with INTERVAL_1 - * } - * then { - * the IUT repeats the transmission of the valid DENM - * containing management container - * containing actionID - * containing originatingStationID - * indicating its new StationID - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-08 - * @reference ETSI EN 302 637-3 v1.2.2, clause 6.1.1.2 - */ - testcase TC_DEN_EVRP_BV_08() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_08(); - - } // end TC_DEN_EVRP_BV_08 - - /** - * @desc Check that actionID is not modified in repetitions of DENM if stationID is not modified - * - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID_1 - * and containing validityDuration - * indicating DURATION_1 - * and the IUT not having changed its StationID - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with INTERVAL_1 - * } - * then { - * the IUT repeats the transmission of the valid DENM - * containing management container - * containing actionID - * indicating its ACTION_ID_1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-09 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.2 - */ - testcase TC_DEN_EVRP_BV_09() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_09(); - - } // end TC_DEN_EVRP_BV_09 - - /** - * @desc Check that actionID is not modified in repetitions of DENM if stationID is not modified - * - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 - * and containing validityDuration - * indicating DURATION_2 > DURATION_1 - * and the IUT having generated the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID_1 - * and containing validityDuration - * indicating DURATION_2 - * and containing referenceTime - * indicating REFERENCE_TIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with INTERVAL_1 - * } - * then { - * the IUT repeats the transmission of the valid DENM - * containing management container - * containing actionID - * indicating its ACTION_ID_1 - * and containing referenceTime - * indicating REFERENCE_TIME_1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-10 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.2 - */ - testcase TC_DEN_EVRP_BV_10() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_10(); - - } // end TC_DEN_EVRP_BV_10 - - /** - * @desc Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, - * when validityDuration was not provided - * - *
- * PICS Selection: PICS_DENM_REPETITION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an AppDENM_trigger request from application layer - * containing repetitionInterval - * indicating INTERVAL_1 - * and containing repetitionDuration - * indicating DURATION_1 > defaultValidityDuration - * and not containing validityDuration - * and the IUT having generated the corresponding event - * containing management container - * containing actionID - * indicating ACTION_ID_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the defaultValidityDuration - * } - * then { - * the IUT stops the retransmission of the DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/EVRP/BV-11 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.5 - */ - testcase TC_DEN_EVRP_BV_11() runs on ItsDenm system ItsDenmSystem { - - f_DEN_EVRP_BV_11(); - - } // end TC_DEN_EVRP_BV_11 - - } // end denMessageRepetition - - // 5.2.1.6 - group denMessageLowerLayerParameters { - - /** - * @desc Check that DENM is encapsulated in BTP type B packet - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * a DENM is generated - * } - * then { - * the IUT sends a DENM - * encapsulated in a BTP-B packet - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/PAR/BV-01 - * @reference EN 302 637-3 clause 5.4.2.2 - */ - testcase TC_DEN_PAR_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_PAR_BV_01(); - - } // end TC_DEN_PAR_BV_01 - - /** - * @desc Check that DENM is encapsulated in a GBC packet - *
- * PICS Selection: PICS_DENM_GENERATION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * a DENM is generated - * } - * then { - * the IUT sends a DENM - * encapsulated in a GBC packet - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/PAR/BV-02 - * @reference EN 302 637-3 clause 5.4.2.2 - */ - testcase TC_DEN_PAR_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_PAR_BV_02(); - - } // end TC_DEN_PAR_BV_02 - - } // end denMessageLowerLayerParameters - - group denMessageSSP { - - /** - * @desc Check that IUT does not send a DENM if it is not permitted by signing certificate - * - *
- * PICS Selection: PICS_DENM_GENERATION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT is authorized to sign DENMs with the certificate - * containing DENM SSP - * not containing pemisions to send trafficCondition cause code - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_trigger request from the application layer - * containing situation container - * containing eventType - * containing causeCode - * indicating trafficCondition - * } - * then { - * the IUT does not send this DENM - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/SSP/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_SSP_BV_01_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_SSP_BV_01_01(); - - } // end TC_DEN_SSP_BV_01_01 - - /** - * @desc Check that IUT does not send a DENM if it is not permitted by signing certificate - * - *
- * PICS Selection: PICS_DENM_GENERATION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT is authorized to sign DENMs with the certificate - * containing DENM SSP - * not containing pemisions to send 'accident' cause code - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives an AppDENM_trigger request from the application layer - * containing situation container - * containing eventType - * containing causeCode - * indicating 'accident' - * } - * then { - * the IUT does not send this DENM - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/SSP/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_SSP_BV_01_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_SSP_BV_01_02(); - - } // end TC_DEN_SSP_BV_01_02 - } - } // end denMessageTransmission - - // 5.2.2 - group denMessageReception { - - /** - * @desc Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionID and if it is not a termination DENM - * - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT not having received DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM that is not a termination - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - * then { - * the IUT transmits the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_MSRV_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BV_01(); - - } // end TC_DEN_MSRV_BV_01 - - /** - * @desc Check that receiving ITS-S transmits DENM to application if it concerns a known ActionID - * and referenceTime is greater than highest value received for this ActionID - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_2 greater than REFERENCETIME_1 - - * } - * then { - * the IUT transmits the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_MSRV_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BV_02(); - - } // end TC_DEN_MSRV_BV_02 - - /** - * @desc Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionID (own actionID) - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received several events - * and the IUT not having received DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a termination DENM - * containing actionID - * indicating ACTION_ID1 - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BO-03 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.3.2 - */ - testcase TC_DEN_MSRV_BO_03() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_03(); - - } // end TC_DEN_MSRV_BO_03 - - /** - * @desc Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionID (other actionID) - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * and the IUT having received several events - * and the IUT not having received DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a termination DENM - * containing actionID - * indicating ACTION_ID1 - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BO-04 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.3.2 - */ - testcase TC_DEN_MSRV_BO_04() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_04(); - - } // end TC_DEN_MSRV_BO_04 - - /** - * @desc Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionID - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_2 lower than REFERENCETIME_1 - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BO-05 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.3.2 - */ - testcase TC_DEN_MSRV_BO_05() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_05(); - - } // end TC_DEN_MSRV_BO_05 - - /** - * @desc Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionID - * - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * and containing detectionTime - * indicating TIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * and containing detectionTime - * indicating TIME_2 not more recent than TIME_1 - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BO-06 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.3.2 - */ - testcase TC_DEN_MSRV_BO_06() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_06(); - - } // end TC_DEN_MSRV_BO_06 - - /** - * @desc Check that receiving ITS-S transmits DENM to application if it concerns a known ActionID and referenceTime - * is equal to highest received value and detectionTime is more recent - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * and containing detectionTime - * indicating TIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * and containing detectionTime - * indicating TIME_2 more recent than TIME_1 - * } - * then { - * the IUT transmits the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-07 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.3.2 - */ - testcase TC_DEN_MSRV_BV_07() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BV_07(); - - } // end TC_DEN_MSRV_BV_07 - - group denMessageReceptionSSP { - - /** - * @desc Check that receiving ITS-S discards DENM for new event - * if SSP value of the signing certificate is not consistent with the causeCode - * - *
- * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured DENM - * containing situation container - * containing eventType - * containing causeCode - * indicating 'trafficCondition' - * containing signing certificate - * containing SSP - * not permitting to send DENM - * containing causeCode - * indicating 'trafficCondition' - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-08-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_MSRV_BO_08_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_08_01(); - - } // end TC_DEN_MSRV_BO_08_01 - - /** - * @desc Check that receiving ITS-S discards DENM for new event - * if SSP value of the signing certificate is not consistent with the causeCode - * - *
- * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured DENM - * containing situation container - * containing eventType - * containing causeCode - * indicating 'accident' - * containing signing certificate - * containing SSP - * not permitting to send DENM - * containing causeCode - * indicating 'accident' - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-08-0@reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_MSRV_BO_08_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_08_02(); - - } // end TC_DEN_MSRV_BO_08_02 - - /** - * @desc Check that receiving ITS-S discards DENM for existing event - * if SSP value of the signing certificate is not consistent with the causeCode - * - *
- * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a secured DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing situation container - * containing eventType - * containing causeCode - * indicating 'trafficCondition' - * containing signing certificate - * containing SSP - * permitting to send DENM - * containing causeCode - * indicating 'trafficCondition' - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing situation container - * containing eventType - * containing causeCode - * indicating 'trafficCondition' - * containing signing certificate - * containing SSP - * permitting to send DENM - * containing causeCode - * indicating 'trafficCondition' - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-09-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_MSRV_BO_09_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_09_01(); - - } // end TC_DEN_MSRV_BO_09_01 - - /** - * @desc Check that receiving ITS-S discards DENM for existing event - * if SSP value of the signing certificate is not consistent with the causeCode - * - *
- * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a secured DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing situation container - * containing eventType - * containing causeCode - * indicating 'accident' - * containing signing certificate - * containing SSP - * permitting to send DENM - * containing causeCode - * indicating 'accident' - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a secured DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * containing situation container - * containing eventType - * containing causeCode - * indicating 'accident' - * containing signing certificate - * containing SSP - * permitting to send DENM - * containing causeCode - * indicating 'accident' - * } - * then { - * the IUT discards the DENM - * and the IUT does not forward the DENM content to upper layer - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-09-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.4.2 - */ - testcase TC_DEN_MSRV_BO_09_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BO_09_02(); - - } // end TC_DEN_MSRV_BO_09_02 - - } // end denMessageReceptionSSP - - - /** - * @desc Check that receiving ITS-S replies to requestResponseIndication - * - *
- * PICS Selection: PICS_DENM_RECEPTION - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing alacarte container - * containing ImpactReductionContainer - * containing requestResponseIndication - * indicating request(0) - * } - * then { - * the IUT sends a DENM - * containing management container - * containing actionID - * indicating ACTION_ID2 - * and containing alacarte container - * containing ImpactReductionContainer - * containing requestResponseIndication - * indicating response(1) - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/MSRV/BV-10 - * @reference ETSI EN 302 637-3 v1.2.2, clause B.40 - */ - testcase TC_DEN_MSRV_BV_10() runs on ItsDenm system ItsDenmSystem { - - f_DEN_MSRV_BV_10(); - - } // end TC_DEN_MSRV_BV_10 - - - } // end denMessageReception - - // 5.2.3 - group denKeepAliveForwarding { - - /** - * @desc Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing validityDuration - * indicating value more than 3 times greater than TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-01 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.2 - */ - testcase TC_DEN_KAFW_BV_01() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_01(); - - } // end TC_DEN_KAFW_BV_01 - - /** - * @desc Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater - * or equal to the last received DENM has been received during forwarding delay - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * and containing validityDuration - * indicating value more than 3 times greater than TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT having received DENM - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating value REFERENCETIME_2 < REFERENCETIME_1 - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * and containing referenceTime - * indicating value REFERENCETIME_3 > REFERENCETIME_1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-02 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.2 - */ - testcase TC_DEN_KAFW_BV_02() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_02(); - - } // end TC_DEN_KAFW_BV_02 - - /** - * @desc Check that forwarding delay is set to min(2*transmissionInterval + rnd(0, 150ms), validityDuration) - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing validityDuration - * indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 at a point of time corresponding to - * min ( 2*transmissionInterval + rnd ( 0, 150ms ), validityDuration ) - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/TI-03 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.4 - */ - testcase TC_DEN_KAFW_TI_03() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_TI_03(); - - } // end TC_DEN_KAFW_TI_03 - - /** - * @desc Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing validityDuration - * indicating value more than 3 times greater than TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 - * containing ITS PDU header - * containing StationID - * indicating its own stationID - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-04 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.6 - */ - testcase TC_DEN_KAFW_BV_04() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_04(); - - } // end TC_DEN_KAFW_BV_04 - - /** - * @desc Check that forwarding ITS-S does not change actionID - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing validityDuration - * indicating value more than 3 times greater than TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM - * containing management container - * containing actionID - * indicating ACTION_ID1 - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-05 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.1 - */ - testcase TC_DEN_KAFW_BV_05() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_05(); - - } // end TC_DEN_KAFW_BV_05 - - /** - * @desc Check that forwarding ITS-S does not change referenceTime - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing validityDuration - * indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1 - * and containing referenceTime - * indicating REFERENCETIME_1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 - * containing management container - * containing referenceTime - * indicating REFERENCETIME_1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-06 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.2 - */ - testcase TC_DEN_KAFW_BV_06() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_06(); - - } // end TC_DEN_KAFW_BV_06 - - /** - * @desc Check that forwarding ITS-S does not change termination - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and containing validityDuration - * indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1 - * and containing termination - * indicating isNegation - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 - * containing management container - * containing termination - * indicating isNegation - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-07 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.3 - */ - testcase TC_DEN_KAFW_BV_07() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_07(); - - } // end TC_DEN_KAFW_BV_07 - - /** - * @desc Check that Forwarding ITS-S does not modify management, situation, location and alacarte containers - * when forwarding a DENM - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received a DENM - * containing management container - * indicating MANACEMENTCONTAINER_1 - * and containing situation container - * indicating SITUATION_1 - * and containing location container - * indicating LOCATION_1 - * and containing alacarte container - * indicating ALACARTE_1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the timer T_Forwarding expires - * } - * then { - * the IUT reconstructs and sends the DENM associated to ACTION_ID1 - * containing management container - * indicating MANACEMENTCONTAINER_1 - * and containing situation container - * indicating SITUATION_1 - * and containing location container - * indicating LOCATION_1 - * and containing alacarte container - * indicating ALACARTE_1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-08 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.1.6 - */ - testcase TC_DEN_KAFW_BV_08() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_08(); - - } // end TC_DEN_KAFW_BV_08 - - /** - * @desc Check that forwarding ITS-S stops forwarding DENM after validity expiration - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing validityDuration - * indicating DURATION_1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted of expiration of the time associated with DURATION_1 - * } - * then { - * the IUT stops to reconstruct and to send the DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-09 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.2 - */ - testcase TC_DEN_KAFW_BV_09() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_09(); - - } // end TC_DEN_KAFW_BV_09 - - /** - * @desc Check that forwarding ITS-S stops forwarding DENM if it is outside relevance area - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * and the IUT having received an event - * containing management container - * containing actionID - * indicating ACTION_ID1 - * and containing transmissionInterval - * indicating TRANS_INTERVAL1 - * and the IUT having starting timer T_Forwarding for this DENM - * and the IUT not having received further DENM - * containing actionID - * indicating ACTION_ID1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is alerted that its position is now outside of the relevance area associated with ACTION_ID1 - * } - * then { - * the IUT stops to reconstruct and to send the DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI 102 869-2 v1.5.1 TP/DEN/KAFW/BV-10 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.2 - */ - testcase TC_DEN_KAFW_BV_10() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_10(); - - } // end TC_DEN_KAFW_BV_10 - - /** - * @desc Check that forwarding ITS-S does not forward DENM is transmissionInterval is not present - *
- * PICS Selection: PICS_DENM_KAF - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a DENM - * containing actionID - * indicating ACTION_ID1 - * and not containing transmissionInterval - * } - * then { - * the IUT does not reconstruct and send the DENM associated with ACTION_ID1 - * } - * } - *- * - * @see ETSI TS 102 869-2 v1.5.1 TP/DEN/KAFW/BV-10 - * @reference ETSI EN 302 637-3 v1.2.2, clause 8.2.2 - */ - testcase TC_DEN_KAFW_BV_11() runs on ItsDenm system ItsDenmSystem { - - f_DEN_KAFW_BV_11(); - - } // end TC_DEN_KAFW_BV_11 - - } // end denKeepAliveForwarding - -} // end ItsDenm_TestCases +/** + * @author ETSI / STF484 / STF517 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsDENM/ItsDenm_TestCases.ttcn $ + * $Id: ItsDenm_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Testcases for DEN Protocol + * @reference ETSI EN 302 637-3 v1.3.1 + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsDenm_TestCases { + + // ATS ITS + import from ItsDenm_TpFunctions all; + + // LibIts + import from LibItsDenm_TestSystem all; + + // 5.2.1 + group denMessageTransmission { + + // 5.2.1.1 + group denMessageFormat { + + /** + * @desc Check that protocolVersion is set to 2 and messageID is set to 1 + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_Trigger request from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing ITS PDU header, + * containing protocolVersion + * indicating value 2 + * and containing messageID + * indicating value 1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSGF/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, Annex B.1 + */ + testcase TC_DEN_MSGF_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSGF_BV_01(); + + } // end TC_DEN_MSGF_BV_01 + + /** + * @desc Check that sent DENM contains at least one 'trace' DE + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_Trigger request from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing location container + * containing at least one 'trace' + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSGF/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.3.2 + */ + testcase TC_DEN_MSGF_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSGF_BV_02(); + + } // end TC_DEN_MSGF_BV_02 + + } // end denMessageFormat + + // 5.2.1.2 + group denEventGeneration { + + /** + * @desc Check that DEN Basic Service generates a new DENM on reception of a valid AppDENM_Trigger request + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_Trigger request from the application layer + * } + * then { + * the IUT sends a valid DENM + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.2.1 + */ + testcase TC_DEN_EVGN_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_01(); + + } // end TC_DEN_EVGN_BV_01 + + /** + * @desc Check that a new ActionID value is assigned for each newly generated DENM + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated several events + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to generate a new event + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating an unused value + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.1.1 + */ + testcase TC_DEN_EVGN_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_02(); + + } // end TC_DEN_EVGN_BV_02 + + /** + * @desc Check that a newly created ActionID contains the StationID of the originating ITS-S that detected the event + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to generate a new event + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * containing originatingStationID + * indicating its own StationID + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-03 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.1.1 + */ + testcase TC_DEN_EVGN_BV_03() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_03(); + + } // end TC_DEN_EVGN_BV_03 + + /** + * @desc Check that Cause and subcause values included in DENM as provided by application + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_trigger request from the application layer + * containing situation container + * containing eventType + * containing causeCode + * indicating Value1 + * containing subCauseCode + * indicating Value2 + * } + * then { + * the IUT sends a valid DENM + * containing situation container + * containing eventType + * containing causeCode + * indicating Value1 + * containing subCauseCode + * indicating Value2 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-04 + * @reference ETSI EN 302 637-3 v1.3.1, clause 7.1.3 + */ + testcase TC_DEN_EVGN_BV_04() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_04(); + + } // end TC_DEN_EVGN_BV_04 + + /** + * @desc Check that referenceTime is set to the current time when generating a DENM for a new event + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated several events + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to generate a new event + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing referenceTime + * indicating CLT + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-05 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.3 + */ + testcase TC_DEN_EVGN_BV_05() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_05(); + + } // end TC_DEN_EVGN_BV_05 + + /** + * @desc Check that sequenceNumber is set to a next unused value each time an event is detected + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated several events + * and the IUT having generated its last DENM + * containing management container + * containing actionID + * containing sequenceNumber + * indicating SEQ1 + * and no active event being associated with sequenceNumber SEQ1 + 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to generate a new event + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * containing sequenceNumber + * indicating SEQ1 + 1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-07 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 6.1.1.1, 8.2.1.2 + */ + testcase TC_DEN_EVGN_BV_07() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_07(); + + } // end TC_DEN_EVGN_BV_07 + + /** + * @desc Check that actionID are generated using newly assigned stationID when a pseudonym change occurs + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated several events + * containing management container + * containing actionID + * containing originatingStationID + * indicating STATION_ID_1 + * and the IUT having changed its StationID + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to generate a new event + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * containing originatingStationID + * indicating its new StationID + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVGN/BV-10 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 6.1.1.2 + */ + testcase TC_DEN_EVGN_BV_10() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVGN_BV_10(); + + } // end TC_DEN_EVGN_BV_10 + + } // end denEventGeneration + + // 5.2.1.3 + group denEventUpdate { + + /** + * @desc Check that DEN Basic Service generates an update DENM on reception of a valid AppDENM_update request + *
+ * PICS Selection: PICS_DENM_UPDATE + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_update request from the application layer + * } + * then { + * the IUT sends a valid DENM + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVUP/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.2.2 + */ + testcase TC_DEN_EVUP_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVUP_BV_01(); + + } // end TC_DEN_EVUP_BV_01 + + /** + * @desc Check that the actionID is not changed by DENM update, as long as the stationID of the originating ITS-S remains unchanged + *
+ * PICS Selection: PICS_DENM_UPDATE + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and the IUT not having changed its stationID + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_update request associated with ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVUP/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 6.1.2.2, 8.1.1.1 + */ + testcase TC_DEN_EVUP_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVUP_BV_02(); + + } // end TC_DEN_EVUP_BV_02 + + /** + * @desc Check that referenceTime is set to the current time when generating a DENM for an updated eventCheck + *
+ * PICS Selection: PICS_DENM_UPDATE + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing referenceTime + * indicating REFERENCETIME1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_update request associated with ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating CLT > REFERENCETIME1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVUP/BV-03 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.2.2 + */ + testcase TC_DEN_EVUP_BV_03() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVUP_BV_03(); + + } // end TC_DEN_EVUP_BV_03 + + /** + * @desc Check that DEN Basic Service does not send any update DENM if actionID is not in originating ITS-S message table + *
+ * PICS Selection: PICS_DENM_UPDATE + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * and the IUT not having sent an event being associated with actionID ACTION_ID1 + * containing originatorStationID + * indicating its own stationID + * and containing sequenceNumber + * indicating SEQ1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to update an event associated to ACTION_ID1 + * } + * then { + * the IUT does not send any DENM for this event + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVUP/BO-04 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.1.2 + */ + testcase TC_DEN_EVUP_BO_04() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVUP_BO_04(); + + } // end TC_DEN_EVUP_BO_04 + + } // end denEventUpdate + + // 5.2.1.4 + group denEventTermination { + + /** + * @desc Check that DEN Basic Service generates a cancellation DENM when application indicates the + * premature termination of an event for which it is the originator + *
+ * PICS Selection: PICS_DENM_CANCELLATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing validityDuration + * indicating DURATION_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing termination + * indicating value isCancellation + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 6.1.2.4, 8.2.1.3 + */ + testcase TC_DEN_EVTR_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BV_01(); + + } // end TC_DEN_EVTR_BV_01 + + /** + * @desc Check that DEN Basic Service generates a negation DENM when application indicates the + * premature termination of an event for which it is not the originator + *
+ * PICS Selection: PICS_DENM_NEGATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing originatorStationID + * indicating stationID different from its own stationID + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing termination + * indicating value isNegation + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.2.4 + */ + testcase TC_DEN_EVTR_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BV_02(); + + } // end TC_DEN_EVTR_BV_02 + + /** + * @desc Check that referenceTime is set to the latest value received for this event in negation DENM + *
+ * PICS Selection: PICS_DENM_NEGATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing originatorStationID + * indicating stationID different from its own stationID + * and containing referenceTime + * indicating REFERENCETIME1 + * and the IUT having received an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME2 > REFERENCETIME1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating value REFERENCETIME2 + * and containing termination + * indicating value isNegation + * } + * } + *+ * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BV-03 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 6.1.2.4, 8.2.1.3 + */ + testcase TC_DEN_EVTR_BV_03() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BV_03(); + + } // end TC_DEN_EVTR_BV_03 + + /** + * @desc Check that situation container, location container and alacarte container are not present in a cancellation DENM + *
+ * PICS Selection: PICS_DENM_CANCELLATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing termination + * indicating value isCancellation + * and not containing situation container + * and not containing location container + * and not containing alacarte container + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BV-04 + * @reference ETSI EN 302 637-3 v1.3.1, clause 7.1.1 + */ + testcase TC_DEN_EVTR_BV_04() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BV_04(); + + } // end TC_DEN_EVTR_BV_04 + + /** + * @desc Check that situation container, location container and alacarte container are not present in a negation DENM + *
+ * PICS Selection: PICS_DENM_NEGATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing originatorStationID + * indicating stationID different from its own stationID + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_termination request associated to ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing termination + * indicating value isNegation + * and not containing situation container + * and not containing location container + * and not containing alacarte container + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BV-05 + * @reference ETSI EN 302 637-3 v1.3.1, clause 7.1.1 + */ + testcase TC_DEN_EVTR_BV_05() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BV_05(); + + } // end TC_DEN_EVTR_BV_05 + + /** + * @desc Check that DEN Basic Service does not send any termination DENM if actionID is not in + * originating ITS-S message table or receiving ITS-S message table (own stationID) + *
+ * PICS Selection: PICS_DENM_NEGATION OR PICS_DENM_CANCELLATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated several events + * and the IUT not having send event being associated with ACTION_ID1 + * containing originatingStationID + * indicating its own stationID + * and containing sequenceNumber + * indicating SEQ1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to terminate an event associated to ACTION_ID1 + * containing originatingStationID + * indicating its own stationID + * and containing sequenceNumber + * indicating SEQ1 + * } + * then { + * the IUT does not send send any termination DENM for this event + * } + * } + * NOTE: Event associated to ACTION_ID1 cannot be present in receiving ITS-S message + * table as its stationID is IUT’s stationID (see TP/DEN/EVTR/BO-07) + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BO-06 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 8.2.2 + */ + testcase TC_DEN_EVTR_BO_06() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BO_06(); + + } // end TC_DEN_EVTR_BO_06 + + /** + * @desc Check that DEN Basic Service does not send any termination DENM if actionID is not in + * originating ITS-S message table or receiving ITS-S message table (other stationID) + *
+ * PICS Selection: PICS_DENM_CANCELLATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received several events + * and the IUT not having received event being associated with ACTION_ID1 + * containing originatingStationID + * indicating STATION_ID1 different from its own stationID + * and containing sequenceNumber + * indicating SEQ1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to terminate an event associated to ACTION_ID1 + * containing originatingStationID + * indicating STATION_ID1 + * and containing sequenceNumber + * indicating SEQ1 + * } + * then { + * the IUT does not send send any termination DENM for this event + * } + * } + * NOTE: Event associated to ACTION_ID1 cannot be present in originating ITS-S message table as its + * stationID is not IUT’s stationID (see TP/DEN/EVTR/BO-06) + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BO-07 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 8.2.2 + */ + testcase TC_DEN_EVTR_BO_07() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BO_07(); + + } // end TC_DEN_EVTR_BV_07 + + /** + * @desc Check that referenceTime is set to to the current time when generating a cancellation DENM + *
+ * PICS Selection: PICS_DENM_CANCELLATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having generated an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing validityDuration + * indicating DURATION_1 + * and containing referenceTime + * indicating REFERENCETIME1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_termination request associated with ACTION_ID1 from the application layer + * } + * then { + * the IUT sends a valid DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing termination + * indicating value isCancellation + * and containing referenceTime + * indicating CLT + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVTR/BV-08 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.3 + */ + testcase TC_DEN_EVTR_BV_08() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVTR_BV_08(); + + } // end TC_DEN_EVTR_BV_08 + + } // end denEventTermination + + // 5.2.1.5 + group denMessageRepetition { + + /** + * @desc Check that DEN Basic Sercive repeats DENM transmission according to repetitionInterval parameter provided by application + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from the application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated an the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing validityDuration + * indicating DURATION_1 + * and containing transmissionInterval + * indicating INTERVAL_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with INTERVAL_1 + * } + * then { + * the IUT repeats the transmission of the valid DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/TI-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.2.3 and 8.2.2 + */ + testcase TC_DEN_EVRP_TI_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_TI_01(); + + } // end TC_DEN_EVRP_TI_01 + + /** + * @desc Check that the repeated DENM is always the most up-to-date message + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from the application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated an the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and the IUT having generated an update of the event associated with ACTION_ID1 modifying partly the event + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with INTERVAL_1 + * } + * then { + * the IUT repeats the transmission of the valid DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.2.3 and 8.2.2 + */ + testcase TC_DEN_EVRP_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_02(); + + } // end TC_DEN_EVRP_BV_02 + + /** + * @desc Check that DEN Basic Service stops retransmitting DENM after event’s validityDuration + * expiration + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing validityDuration + * indicating DURATION_1 + * and the IUT having repeated (one or more times) the transmission of the valid DENM associated with ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with DURATION_2 + * } + * then { + * the IUT stops the retransmission of the DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-03 + * @reference ETSI EN 302 637-3 v1.3.1, clauses 6.1.2.4 and 8.2.2 + */ + testcase TC_DEN_EVRP_BV_03() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_03(); + + } // end TC_DEN_EVRP_BV_03 + + /** + * @desc Check that DEN Basic Service stops retransmitting DENM after event’s repetitionDuration + * expiration + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing validityDuration + * indicating DURATION_2 + * and the IUT having repeated (one or more times) the transmission of the valid DENM associated with ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with DURATION_2 + * } + * then { + * the IUT stops the retransmission of the most up-to-date valid DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-04 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.2 + */ + testcase TC_DEN_EVRP_BV_04() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_04(); + + } // end TC_DEN_EVRP_BV_04 + + /** + * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionInterval is + * not provided by application + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * not containing repetitionInterval + * and the IUT having generated an the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT has detected that repetitionInterval is not provided for the event associated with ACTION_ID1 + * } + * then { + * the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-05 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.1.2 + */ + testcase TC_DEN_EVRP_BV_05() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_05(); + + } // end TC_DEN_EVRP_BV_05 + + /** + * @desc Check that DEN Basic Service does not repeat transmission of DENM if repetitionDuration is + * not provided by application + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * not containing repetitionDuration + * and the IUT having generated an the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT has detected that repetitionDuration is not provided for the event associated with ACTION_ID1 + * } + * then { + * the IUT does not repeat the transmission of the valid DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-06 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.1.2 + */ + testcase TC_DEN_EVRP_BV_06() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_06(); + + } // end TC_DEN_EVRP_BV_06 + + /** + * @desc Check that existing actionID in originating ITS-S are updated when stationID is modified + * + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event + * containing management container + * containing actionID + * containing originatororiginatingStationID + * indicating STATION_ID_1 + * and containing validityDuration + * indicating DURATION_1 + * and the IUT having changed its StationID + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT changes its StationID and is alerted of expiration of the time associated with INTERVAL_1 + * } + * then { + * the IUT repeats the transmission of the valid DENM + * containing management container + * containing actionID + * containing originatingStationID + * indicating its new StationID + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-08 + * @reference ETSI EN 302 637-3 v1.3.1, clause 6.1.1.2 + */ + testcase TC_DEN_EVRP_BV_08() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_08(); + + } // end TC_DEN_EVRP_BV_08 + + /** + * @desc Check that actionID is not modified in repetitions of DENM if stationID is not modified + * + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID_1 + * and containing validityDuration + * indicating DURATION_1 + * and the IUT not having changed its StationID + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with INTERVAL_1 + * } + * then { + * the IUT repeats the transmission of the valid DENM + * containing management container + * containing actionID + * indicating its ACTION_ID_1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-09 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.2 + */ + testcase TC_DEN_EVRP_BV_09() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_09(); + + } // end TC_DEN_EVRP_BV_09 + + /** + * @desc Check that actionID is not modified in repetitions of DENM if stationID is not modified + * + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 + * and containing validityDuration + * indicating DURATION_2 > DURATION_1 + * and the IUT having generated the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID_1 + * and containing validityDuration + * indicating DURATION_2 + * and containing referenceTime + * indicating REFERENCE_TIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with INTERVAL_1 + * } + * then { + * the IUT repeats the transmission of the valid DENM + * containing management container + * containing actionID + * indicating its ACTION_ID_1 + * and containing referenceTime + * indicating REFERENCE_TIME_1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-10 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.2 + */ + testcase TC_DEN_EVRP_BV_10() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_10(); + + } // end TC_DEN_EVRP_BV_10 + + /** + * @desc Check that DEN Basic Service stops retransmitting DENM after event's validityDuration expiration, + * when validityDuration was not provided + * + *
+ * PICS Selection: PICS_DENM_REPETITION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an AppDENM_trigger request from application layer + * containing repetitionInterval + * indicating INTERVAL_1 + * and containing repetitionDuration + * indicating DURATION_1 > defaultValidityDuration + * and not containing validityDuration + * and the IUT having generated the corresponding event + * containing management container + * containing actionID + * indicating ACTION_ID_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the defaultValidityDuration + * } + * then { + * the IUT stops the retransmission of the DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/EVRP/BV-11 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.5 + */ + testcase TC_DEN_EVRP_BV_11() runs on ItsDenm system ItsDenmSystem { + + f_DEN_EVRP_BV_11(); + + } // end TC_DEN_EVRP_BV_11 + + } // end denMessageRepetition + + // 5.2.1.6 + group denMessageLowerLayerParameters { + + /** + * @desc Check that DENM is encapsulated in BTP type B packet + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * a DENM is generated + * } + * then { + * the IUT sends a DENM + * encapsulated in a BTP-B packet + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/PAR/BV-01 + * @reference EN 302 637-3 clause 5.4.2.2 + */ + testcase TC_DEN_PAR_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_PAR_BV_01(); + + } // end TC_DEN_PAR_BV_01 + + /** + * @desc Check that DENM is encapsulated in a GBC packet + *
+ * PICS Selection: PICS_DENM_GENERATION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * a DENM is generated + * } + * then { + * the IUT sends a DENM + * encapsulated in a GBC packet + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/PAR/BV-02 + * @reference EN 302 637-3 clause 5.4.2.2 + */ + testcase TC_DEN_PAR_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_PAR_BV_02(); + + } // end TC_DEN_PAR_BV_02 + + } // end denMessageLowerLayerParameters + + group denMessageSSP { + + /** + * @desc Check that IUT does not send a DENM if it is not permitted by signing certificate + * + *
+ * PICS Selection: PICS_DENM_GENERATION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT is authorized to sign DENMs with the certificate + * containing DENM SSP + * not containing pemisions to send trafficCondition cause code + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_trigger request from the application layer + * containing situation container + * containing eventType + * containing causeCode + * indicating trafficCondition + * } + * then { + * the IUT does not send this DENM + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/SSP/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_SSP_BV_01_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_SSP_BV_01_01(); + + } // end TC_DEN_SSP_BV_01_01 + + /** + * @desc Check that IUT does not send a DENM if it is not permitted by signing certificate + * + *
+ * PICS Selection: PICS_DENM_GENERATION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT is authorized to sign DENMs with the certificate + * containing DENM SSP + * not containing pemisions to send 'accident' cause code + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives an AppDENM_trigger request from the application layer + * containing situation container + * containing eventType + * containing causeCode + * indicating 'accident' + * } + * then { + * the IUT does not send this DENM + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/SSP/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_SSP_BV_01_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_SSP_BV_01_02(); + + } // end TC_DEN_SSP_BV_01_02 + } + } // end denMessageTransmission + + // 5.2.2 + group denMessageReception { + + /** + * @desc Check that receiving ITS-S transmits DENM to application if it concerns an unknown ActionID and if it is not a termination DENM + * + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT not having received DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM that is not a termination + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + * then { + * the IUT transmits the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_MSRV_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BV_01(); + + } // end TC_DEN_MSRV_BV_01 + + /** + * @desc Check that receiving ITS-S transmits DENM to application if it concerns a known ActionID + * and referenceTime is greater than highest value received for this ActionID + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_2 greater than REFERENCETIME_1 + + * } + * then { + * the IUT transmits the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_MSRV_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BV_02(); + + } // end TC_DEN_MSRV_BV_02 + + /** + * @desc Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionID (own actionID) + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received several events + * and the IUT not having received DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a termination DENM + * containing actionID + * indicating ACTION_ID1 + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BO-03 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.3.2 + */ + testcase TC_DEN_MSRV_BO_03() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_03(); + + } // end TC_DEN_MSRV_BO_03 + + /** + * @desc Check that receiving ITS-S discards termination DENM if it concerns an unknown ActionID (other actionID) + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * and the IUT having received several events + * and the IUT not having received DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a termination DENM + * containing actionID + * indicating ACTION_ID1 + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BO-04 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.3.2 + */ + testcase TC_DEN_MSRV_BO_04() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_04(); + + } // end TC_DEN_MSRV_BO_04 + + /** + * @desc Check that receiving ITS-S discards DENM if referenceTime is lower than highest value received for this ActionID + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_2 lower than REFERENCETIME_1 + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BO-05 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.3.2 + */ + testcase TC_DEN_MSRV_BO_05() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_05(); + + } // end TC_DEN_MSRV_BO_05 + + /** + * @desc Check that receiving ITS-S discards DENM if detectionTime is smaller than highest value received for this ActionID + * + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * and containing detectionTime + * indicating TIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * and containing detectionTime + * indicating TIME_2 not more recent than TIME_1 + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BO-06 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.3.2 + */ + testcase TC_DEN_MSRV_BO_06() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_06(); + + } // end TC_DEN_MSRV_BO_06 + + /** + * @desc Check that receiving ITS-S transmits DENM to application if it concerns a known ActionID and referenceTime + * is equal to highest received value and detectionTime is more recent + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * and containing detectionTime + * indicating TIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * and containing detectionTime + * indicating TIME_2 more recent than TIME_1 + * } + * then { + * the IUT transmits the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-07 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.3.2 + */ + testcase TC_DEN_MSRV_BV_07() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BV_07(); + + } // end TC_DEN_MSRV_BV_07 + + group denMessageReceptionSSP { + + /** + * @desc Check that receiving ITS-S discards DENM for new event + * if SSP value of the signing certificate is not consistent with the causeCode + * + *
+ * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured DENM + * containing situation container + * containing eventType + * containing causeCode + * indicating 'trafficCondition' + * containing signing certificate + * containing SSP + * not permitting to send DENM + * containing causeCode + * indicating 'trafficCondition' + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-08-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_MSRV_BO_08_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_08_01(); + + } // end TC_DEN_MSRV_BO_08_01 + + /** + * @desc Check that receiving ITS-S discards DENM for new event + * if SSP value of the signing certificate is not consistent with the causeCode + * + *
+ * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured DENM + * containing situation container + * containing eventType + * containing causeCode + * indicating 'accident' + * containing signing certificate + * containing SSP + * not permitting to send DENM + * containing causeCode + * indicating 'accident' + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-08-0@reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_MSRV_BO_08_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_08_02(); + + } // end TC_DEN_MSRV_BO_08_02 + + /** + * @desc Check that receiving ITS-S discards DENM for existing event + * if SSP value of the signing certificate is not consistent with the causeCode + * + *
+ * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a secured DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing situation container + * containing eventType + * containing causeCode + * indicating 'trafficCondition' + * containing signing certificate + * containing SSP + * permitting to send DENM + * containing causeCode + * indicating 'trafficCondition' + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing situation container + * containing eventType + * containing causeCode + * indicating 'trafficCondition' + * containing signing certificate + * containing SSP + * permitting to send DENM + * containing causeCode + * indicating 'trafficCondition' + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-09-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_MSRV_BO_09_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_09_01(); + + } // end TC_DEN_MSRV_BO_09_01 + + /** + * @desc Check that receiving ITS-S discards DENM for existing event + * if SSP value of the signing certificate is not consistent with the causeCode + * + *
+ * PICS Selection: PICS_DENM_RECEPTION AND PICS_IS_IUT_SECURED + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a secured DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing situation container + * containing eventType + * containing causeCode + * indicating 'accident' + * containing signing certificate + * containing SSP + * permitting to send DENM + * containing causeCode + * indicating 'accident' + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a secured DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * containing situation container + * containing eventType + * containing causeCode + * indicating 'accident' + * containing signing certificate + * containing SSP + * permitting to send DENM + * containing causeCode + * indicating 'accident' + * } + * then { + * the IUT discards the DENM + * and the IUT does not forward the DENM content to upper layer + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-09-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.4.2 + */ + testcase TC_DEN_MSRV_BO_09_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BO_09_02(); + + } // end TC_DEN_MSRV_BO_09_02 + + } // end denMessageReceptionSSP + + + /** + * @desc Check that receiving ITS-S replies to requestResponseIndication + * + *
+ * PICS Selection: PICS_DENM_RECEPTION + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing alacarte container + * containing ImpactReductionContainer + * containing requestResponseIndication + * indicating request(0) + * } + * then { + * the IUT sends a DENM + * containing management container + * containing actionID + * indicating ACTION_ID2 + * and containing alacarte container + * containing ImpactReductionContainer + * containing requestResponseIndication + * indicating response(1) + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/MSRV/BV-10 + * @reference ETSI EN 302 637-3 v1.3.1, clause B.40 + */ + testcase TC_DEN_MSRV_BV_10() runs on ItsDenm system ItsDenmSystem { + + f_DEN_MSRV_BV_10(); + + } // end TC_DEN_MSRV_BV_10 + + + } // end denMessageReception + + // 5.2.3 + group denKeepAliveForwarding { + + /** + * @desc Check that forwarding ITS-S forwards DENM if no DENM with same ActionId has been received during forwarding delay + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing validityDuration + * indicating value more than 3 times greater than TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-01 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.2 + */ + testcase TC_DEN_KAFW_BV_01() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_01(); + + } // end TC_DEN_KAFW_BV_01 + + /** + * @desc Check that forwarding ITS-S forwards DENM if no DENM with same ActionId and referenceTime greater + * or equal to the last received DENM has been received during forwarding delay + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * and containing validityDuration + * indicating value more than 3 times greater than TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT having received DENM + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating value REFERENCETIME_2 < REFERENCETIME_1 + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * and containing referenceTime + * indicating value REFERENCETIME_3 > REFERENCETIME_1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-02 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.2 + */ + testcase TC_DEN_KAFW_BV_02() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_02(); + + } // end TC_DEN_KAFW_BV_02 + + /** + * @desc Check that forwarding delay is set to min(2*transmissionInterval + rnd(0, 150ms), validityDuration) + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing validityDuration + * indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 at a point of time corresponding to + * min ( 2*transmissionInterval + rnd ( 0, 150ms ), validityDuration ) + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/TI-03 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.4 + */ + testcase TC_DEN_KAFW_TI_03() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_TI_03(); + + } // end TC_DEN_KAFW_TI_03 + + /** + * @desc Check that Forwarding ITS-S replaces the ITS PDU header of forwarded DENMs + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing validityDuration + * indicating value more than 3 times greater than TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 + * containing ITS PDU header + * containing StationID + * indicating its own stationID + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-04 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.6 + */ + testcase TC_DEN_KAFW_BV_04() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_04(); + + } // end TC_DEN_KAFW_BV_04 + + /** + * @desc Check that forwarding ITS-S does not change actionID + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing validityDuration + * indicating value more than 3 times greater than TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM + * containing management container + * containing actionID + * indicating ACTION_ID1 + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-05 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.1 + */ + testcase TC_DEN_KAFW_BV_05() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_05(); + + } // end TC_DEN_KAFW_BV_05 + + /** + * @desc Check that forwarding ITS-S does not change referenceTime + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing validityDuration + * indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1 + * and containing referenceTime + * indicating REFERENCETIME_1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 + * containing management container + * containing referenceTime + * indicating REFERENCETIME_1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-06 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.2 + */ + testcase TC_DEN_KAFW_BV_06() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_06(); + + } // end TC_DEN_KAFW_BV_06 + + /** + * @desc Check that forwarding ITS-S does not change termination + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and containing validityDuration + * indicating value DURATION_1 more than 3 times greater than TRANS_INTERVAL1 + * and containing termination + * indicating isNegation + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 + * containing management container + * containing termination + * indicating isNegation + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-07 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.3 + */ + testcase TC_DEN_KAFW_BV_07() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_07(); + + } // end TC_DEN_KAFW_BV_07 + + /** + * @desc Check that Forwarding ITS-S does not modify management, situation, location and alacarte containers + * when forwarding a DENM + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received a DENM + * containing management container + * indicating MANACEMENTCONTAINER_1 + * and containing situation container + * indicating SITUATION_1 + * and containing location container + * indicating LOCATION_1 + * and containing alacarte container + * indicating ALACARTE_1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the timer T_Forwarding expires + * } + * then { + * the IUT reconstructs and sends the DENM associated to ACTION_ID1 + * containing management container + * indicating MANACEMENTCONTAINER_1 + * and containing situation container + * indicating SITUATION_1 + * and containing location container + * indicating LOCATION_1 + * and containing alacarte container + * indicating ALACARTE_1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-08 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.1.6 + */ + testcase TC_DEN_KAFW_BV_08() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_08(); + + } // end TC_DEN_KAFW_BV_08 + + /** + * @desc Check that forwarding ITS-S stops forwarding DENM after validity expiration + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing validityDuration + * indicating DURATION_1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted of expiration of the time associated with DURATION_1 + * } + * then { + * the IUT stops to reconstruct and to send the DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-09 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.2 + */ + testcase TC_DEN_KAFW_BV_09() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_09(); + + } // end TC_DEN_KAFW_BV_09 + + /** + * @desc Check that forwarding ITS-S stops forwarding DENM if it is outside relevance area + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * and the IUT having received an event + * containing management container + * containing actionID + * indicating ACTION_ID1 + * and containing transmissionInterval + * indicating TRANS_INTERVAL1 + * and the IUT having starting timer T_Forwarding for this DENM + * and the IUT not having received further DENM + * containing actionID + * indicating ACTION_ID1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is alerted that its position is now outside of the relevance area associated with ACTION_ID1 + * } + * then { + * the IUT stops to reconstruct and to send the DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI 102 869-2 v1.5.3 TP/DEN/KAFW/BV-10 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.2 + */ + testcase TC_DEN_KAFW_BV_10() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_10(); + + } // end TC_DEN_KAFW_BV_10 + + /** + * @desc Check that forwarding ITS-S does not forward DENM is transmissionInterval is not present + *
+ * PICS Selection: PICS_DENM_KAF + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a DENM + * containing actionID + * indicating ACTION_ID1 + * and not containing transmissionInterval + * } + * then { + * the IUT does not reconstruct and send the DENM associated with ACTION_ID1 + * } + * } + *+ * + * @see ETSI TS 102 869-2 v1.5.3 TP/DEN/KAFW/BV-10 + * @reference ETSI EN 302 637-3 v1.3.1, clause 8.2.2 + */ + testcase TC_DEN_KAFW_BV_11() runs on ItsDenm system ItsDenmSystem { + + f_DEN_KAFW_BV_11(); + + } // end TC_DEN_KAFW_BV_11 + + } // end denKeepAliveForwarding + +} // end ItsDenm_TestCases diff --git a/ttcn/AtsDENM/ItsDenm_TestControl.ttcn b/ttcn/AtsDENM/ItsDenm_TestControl.ttcn index 22172736fd9bfd1c03d4a168a2db800c63993bc7..16cfd253d0c0e1660e5951f5331db817336f3250 100644 --- a/ttcn/AtsDENM/ItsDenm_TestControl.ttcn +++ b/ttcn/AtsDENM/ItsDenm_TestControl.ttcn @@ -1,117 +1,117 @@ -/** - * @author ETSI / STF449 / STF484 / STF517 - * @version $URL$ - * $Id$ - * @desc Test Control file for DENM - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsDenm_TestControl { - - // ATS DENM - import from ItsDenm_TestCases all; - - // LibIts - import from LibItsDenm_Pics all; - - // Test Execution - control { - - if(PICS_DENM_GENERATION) { - execute(TC_DEN_MSGF_BV_01()); - execute(TC_DEN_MSGF_BV_02()); - - execute(TC_DEN_EVGN_BV_01()); - execute(TC_DEN_EVGN_BV_02()); - execute(TC_DEN_EVGN_BV_03()); - execute(TC_DEN_EVGN_BV_04()); - execute(TC_DEN_EVGN_BV_05()); - execute(TC_DEN_EVGN_BV_07()); - execute(TC_DEN_EVGN_BV_10()); - } - - if(PICS_DENM_UPDATE) { - execute(TC_DEN_EVUP_BV_01()); - execute(TC_DEN_EVUP_BV_02()); - execute(TC_DEN_EVUP_BV_03()); - execute(TC_DEN_EVUP_BO_04()); - } - - if(PICS_DENM_CANCELLATION) { - execute(TC_DEN_EVTR_BV_01()); - execute(TC_DEN_EVTR_BV_04()); - execute(TC_DEN_EVTR_BV_08()); - } - - if(PICS_DENM_NEGATION) { - execute(TC_DEN_EVTR_BV_02()); - execute(TC_DEN_EVTR_BV_03()); - execute(TC_DEN_EVTR_BV_05()); - } - - if(PICS_DENM_NEGATION or PICS_DENM_CANCELLATION) { - execute(TC_DEN_EVTR_BO_06()); - execute(TC_DEN_EVTR_BO_07()); - } - - if(PICS_DENM_REPETITION) { - execute(TC_DEN_EVRP_TI_01()); - execute(TC_DEN_EVRP_BV_02()); - execute(TC_DEN_EVRP_BV_03()); - execute(TC_DEN_EVRP_BV_04()); - execute(TC_DEN_EVRP_BV_05()); - execute(TC_DEN_EVRP_BV_06()); - execute(TC_DEN_EVRP_BV_08()); - execute(TC_DEN_EVRP_BV_09()); - execute(TC_DEN_EVRP_BV_10()); - execute(TC_DEN_EVRP_BV_11()); - } - - if(PICS_DENM_GENERATION) { - execute(TC_DEN_PAR_BV_01()); - execute(TC_DEN_PAR_BV_02()); - if(PICS_IS_IUT_SECURED) { - execute(TC_DEN_SSP_BV_01_01()); - execute(TC_DEN_SSP_BV_01_02()); - } - } - - if(PICS_DENM_RECEPTION) { - execute(TC_DEN_MSRV_BV_01()); - execute(TC_DEN_MSRV_BV_02()); - execute(TC_DEN_MSRV_BO_03()); - execute(TC_DEN_MSRV_BO_04()); - execute(TC_DEN_MSRV_BO_05()); - execute(TC_DEN_MSRV_BO_06()); - execute(TC_DEN_MSRV_BV_07()); - - if(PICS_IS_IUT_SECURED) { - execute(TC_DEN_MSRV_BO_08_01()); - execute(TC_DEN_MSRV_BO_08_02()); - - execute(TC_DEN_MSRV_BO_09_01()); - execute(TC_DEN_MSRV_BO_09_02()); - } - if(PICS_IMPACT_REDUCTION) { - execute(TC_DEN_MSRV_BV_10()); - } - } - - if(PICS_DENM_KAF) { - execute(TC_DEN_KAFW_BV_01()); - execute(TC_DEN_KAFW_BV_02()); - execute(TC_DEN_KAFW_TI_03()); - execute(TC_DEN_KAFW_BV_04()); - execute(TC_DEN_KAFW_BV_05()); - execute(TC_DEN_KAFW_BV_06()); - execute(TC_DEN_KAFW_BV_07()); - execute(TC_DEN_KAFW_BV_08()); - execute(TC_DEN_KAFW_BV_09()); - execute(TC_DEN_KAFW_BV_10()); - } - } - +/** + * @author ETSI / STF449 / STF484 / STF517 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsDENM/ItsDenm_TestControl.ttcn $ + * $Id: ItsDenm_TestControl.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Test Control file for DENM + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsDenm_TestControl { + + // ATS DENM + import from ItsDenm_TestCases all; + + // LibIts + import from LibItsDenm_Pics all; + + // Test Execution + control { + + if(PICS_DENM_GENERATION) { + execute(TC_DEN_MSGF_BV_01()); + execute(TC_DEN_MSGF_BV_02()); + + execute(TC_DEN_EVGN_BV_01()); + execute(TC_DEN_EVGN_BV_02()); + execute(TC_DEN_EVGN_BV_03()); + execute(TC_DEN_EVGN_BV_04()); + execute(TC_DEN_EVGN_BV_05()); + execute(TC_DEN_EVGN_BV_07()); + execute(TC_DEN_EVGN_BV_10()); + } + + if(PICS_DENM_UPDATE) { + execute(TC_DEN_EVUP_BV_01()); + execute(TC_DEN_EVUP_BV_02()); + execute(TC_DEN_EVUP_BV_03()); + execute(TC_DEN_EVUP_BO_04()); + } + + if(PICS_DENM_CANCELLATION) { + execute(TC_DEN_EVTR_BV_01()); + execute(TC_DEN_EVTR_BV_04()); + execute(TC_DEN_EVTR_BV_08()); + } + + if(PICS_DENM_NEGATION) { + execute(TC_DEN_EVTR_BV_02()); + execute(TC_DEN_EVTR_BV_03()); + execute(TC_DEN_EVTR_BV_05()); + } + + if(PICS_DENM_NEGATION or PICS_DENM_CANCELLATION) { + execute(TC_DEN_EVTR_BO_06()); + execute(TC_DEN_EVTR_BO_07()); + } + + if(PICS_DENM_REPETITION) { + execute(TC_DEN_EVRP_TI_01()); + execute(TC_DEN_EVRP_BV_02()); + execute(TC_DEN_EVRP_BV_03()); + execute(TC_DEN_EVRP_BV_04()); + execute(TC_DEN_EVRP_BV_05()); + execute(TC_DEN_EVRP_BV_06()); + execute(TC_DEN_EVRP_BV_08()); + execute(TC_DEN_EVRP_BV_09()); + execute(TC_DEN_EVRP_BV_10()); + execute(TC_DEN_EVRP_BV_11()); + } + + if(PICS_DENM_GENERATION) { + execute(TC_DEN_PAR_BV_01()); + execute(TC_DEN_PAR_BV_02()); + if(PICS_IS_IUT_SECURED) { + execute(TC_DEN_SSP_BV_01_01()); + execute(TC_DEN_SSP_BV_01_02()); + } + } + + if(PICS_DENM_RECEPTION) { + execute(TC_DEN_MSRV_BV_01()); + execute(TC_DEN_MSRV_BV_02()); + execute(TC_DEN_MSRV_BO_03()); + execute(TC_DEN_MSRV_BO_04()); + execute(TC_DEN_MSRV_BO_05()); + execute(TC_DEN_MSRV_BO_06()); + execute(TC_DEN_MSRV_BV_07()); + + if(PICS_IS_IUT_SECURED) { + execute(TC_DEN_MSRV_BO_08_01()); + execute(TC_DEN_MSRV_BO_08_02()); + + execute(TC_DEN_MSRV_BO_09_01()); + execute(TC_DEN_MSRV_BO_09_02()); + } + if(PICS_IMPACT_REDUCTION) { + execute(TC_DEN_MSRV_BV_10()); + } + } + + if(PICS_DENM_KAF) { + execute(TC_DEN_KAFW_BV_01()); + execute(TC_DEN_KAFW_BV_02()); + execute(TC_DEN_KAFW_TI_03()); + execute(TC_DEN_KAFW_BV_04()); + execute(TC_DEN_KAFW_BV_05()); + execute(TC_DEN_KAFW_BV_06()); + execute(TC_DEN_KAFW_BV_07()); + execute(TC_DEN_KAFW_BV_08()); + execute(TC_DEN_KAFW_BV_09()); + execute(TC_DEN_KAFW_BV_10()); + } + } + } // end ItsDenm_TestControl \ No newline at end of file diff --git a/ttcn/AtsDENM/ItsDenm_TpFunctions.ttcn b/ttcn/AtsDENM/ItsDenm_TpFunctions.ttcn index d0f3b57c62c4b625572e1795e3dbdd6571f87d77..8e552aab3d3ee6f4f2fe6b738004493dbe95431c 100644 --- a/ttcn/AtsDENM/ItsDenm_TpFunctions.ttcn +++ b/ttcn/AtsDENM/ItsDenm_TpFunctions.ttcn @@ -1,4055 +1,4064 @@ -/** - * @author ETSI / STF484 / STF517 / STF525 - * @version $URL$ - * $Id$ - * @desc DENM TP functions - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsDenm_TpFunctions { - - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_Time all; -// import from LibCommon_VerdictControl all; - import from LibCommon_BasicTypesAndValues all; - import from LibCommon_DataStrings all; - - // LibItsCommon -// import from LibItsCommon_TypesAndValues all; - import from LibItsCommon_Templates all; - import from LibItsCommon_Functions all; - import from LibItsCommon_ASN1_NamedNumbers all; - - // LibIts - import from DENM_PDU_Descriptions language "ASN.1:1997" all; - import from ITS_Container language "ASN.1:1997" all; - - // LibItsDenm - import from LibItsDenm_TestSystem all; - import from LibItsDenm_Functions all; - import from LibItsDenm_Templates all; - import from LibItsDenm_TypesAndValues all; - import from LibItsDenm_Pics all; -// import from LibItsDenm_Pixits all; - - import from LibItsSecurity_Functions all; - - // 5.2.1 - group denMessageTransmission { - - // 5.2.1.1 - group denMessageFormat { - - /** - * @desc TP Function for TC_DEN_MSGF_BV_01 - */ - function f_DEN_MSGF_BV_01() runs on ItsDenm { - - // Local variables - var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_); - var ActionID v_actionId; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_actionId := f_utTriggerEvent(m_utTriggerEvent(v_situation)); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm, - mw_anyStationId, - LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, - LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_denm_ - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Successfully received DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received a DENM with incorrect header information. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poCancelEvent(e_iut, v_actionId); - f_cfDown(); - - } // end TC_DEN_MSGF_BV_01 - - /** - * @desc TP Function for TC_DEN_MSGF_BV_02 - */ - function f_DEN_MSGF_BV_02() runs on ItsDenm { - - // Local variables - var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_); - var ActionID v_actionId; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_actionId := f_utTriggerEvent(m_utTriggerEvent(v_situation)); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_anyDenmMgmtCon, - -, - mw_denmLocationWithTrace({ ?, * }) - ) - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Successfully received DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received a DENM with incorrect location container information. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poCancelEvent(e_iut, v_actionId); - f_cfDown(); - - } // end TC_DEN_MSGF_BV_02 - - } // end denMessageFormat - - // 5.2.1.2 - group denEventGeneration { - - /** - * @desc TP Function for TC_DEN_EVGN_BV_01 - */ - function f_DEN_EVGN_BV_01() runs on ItsDenm { - - // Local variables - var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_); - var ActionID v_actionId; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_actionId := f_utTriggerEvent(m_utTriggerEvent(v_situation)); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_anyDenmPdu( - mw_itsPduHeader, - mw_denm (mw_anyDenmMgmtCon) - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Successfully received DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received a DENM with incorrect header and management information. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poCancelEvent(e_iut, v_actionId); - f_cfDown(); - - } // end TC_DEN_EVGN_BV_01 - - /** - * @desc TP Function for TC_DEN_EVGN_BV_02 - */ - function f_DEN_EVGN_BV_02() runs on ItsDenm { - - // Local variables - var template (value) SituationContainerList v_situations := { - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_), - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_accident_, LibItsCommon_ASN1_NamedNumbers.AccidentSubCauseCode_unavailable_), - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_roadworks_, LibItsCommon_ASN1_NamedNumbers.RoadworksSubCauseCode_unavailable_), - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_slowVehicle_, LibItsCommon_ASN1_NamedNumbers.SlowVehicleSubCauseCode_unavailable_) - }; - var boolean v_success := true; - var ActionIDList v_actionIds; - var DenmInd v_denmInd; - var integer i; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - for (i := 0; i < lengthof(v_situations) - 1; i := i + 1) { - f_utTriggerEvent(m_utTriggerEvent(valueof(v_situations[i]))); - f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); - v_actionIds[i] := v_denmInd.msgIn.denm.management.actionID; - } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - f_utTriggerEvent(m_utTriggerEvent(valueof(v_situations[lengthof(v_situations) - 1]))); - f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); - v_actionIds[lengthof(v_actionIds) - 1] := v_denmInd.msgIn.denm.management.actionID; - - //check the action id - for (i := 0; i < lengthof(v_actionIds) - 1; i := i + 1) { - if (v_actionIds[lengthof(v_actionIds) - 1].sequenceNumber == v_actionIds[i].sequenceNumber) { - v_success := false; - } - } - if (v_success==true) { - log("*** " & testcasename() & ": PASS: actionID field indicating unused value. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - else { - log("*** " & testcasename() & ": FAIL: actionID field indicating used value. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - - // Postamble - for (i := 0; i < lengthof(v_actionIds); i := i + 1) { - f_poCancelEvent(e_iut, v_actionIds[i]); - } - f_cfDown(); - - } // end TC_DEN_EVGN_BV_02 - - /** - * @desc TP Function for TC_DEN_EVGN_BV_03 - */ - function f_DEN_EVGN_BV_03() runs on ItsDenm { - - // Local variables - var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_); - var ActionID v_actionId; - var DenmInd v_denmInd; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_actionId := f_utTriggerEvent(m_utTriggerEvent(v_situation)); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtConWithActionID( - v_actionId - ) - ) - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poCancelEvent(e_iut, v_actionId); - f_cfDown(); - - } // end TC_DEN_EVGN_BV_03 - - /** - * @desc TP Function for TC_DEN_EVGN_BV_04 - */ - function f_DEN_EVGN_BV_04() runs on ItsDenm { - - // Local variables - var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_); - var ActionID v_actionId; - var DenmInd v_denmInd; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - v_actionId := f_utTriggerEvent(m_utTriggerEvent(v_situation)); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_anyDenmMgmtCon, - v_situation - ) - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received an unexpected DENM. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poCancelEvent(e_iut, v_actionId); - f_cfDown(); - - } // end TC_DEN_EVGN_BV_04 - - /** - * @desc TP Function for TC_DEN_EVGN_BV_05 - */ - function f_DEN_EVGN_BV_05() runs on ItsDenm { - - // Local variables - var template (value) SituationContainerList v_situations := { - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_), - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_accident_, LibItsCommon_ASN1_NamedNumbers.AccidentSubCauseCode_unavailable_), - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_roadworks_, LibItsCommon_ASN1_NamedNumbers.RoadworksSubCauseCode_unavailable_), - m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_slowVehicle_, LibItsCommon_ASN1_NamedNumbers.SlowVehicleSubCauseCode_unavailable_) - }; - var ActionIDList v_actionIds; - var DenmInd v_denmInd; - var integer i; - var TimestampIts v_timestampIts; - - // Test control - if (not PICS_DENM_GENERATION) { - log("*** " & testcasename() & ": PICS_DENM_GENERATION required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cfUp(); - - // Test adapter configuration - - // Preamble - f_prInitialState(); - for (i := 0; i < lengthof(v_situations) - 1; i := i + 1) { - f_utTriggerEvent(m_utTriggerEvent(valueof(v_situations[i]))); - f_awaitDenMessage(mw_denmInd(mw_anyDenmPdu), v_denmInd); - v_actionIds[i] := v_denmInd.msgIn.denm.management.actionID; - v_timestampIts := v_denmInd.msgIn.denm.management.referenceTime; - } - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - f_utTriggerEvent(m_utTriggerEvent(valueof(v_situations[lengthof(v_situations) - 1]))); - - tc_ac.start; - alt { - [] denmPort.receive( - mw_denmInd( - mw_denmPdu( - mw_denm( - mw_denmMgmtConWithReferenceTime(?) - ) - ) - ) - ) -> value v_denmInd { - tc_ac.stop; - v_actionIds[lengthof(v_actionIds)] := v_denmInd.msgIn.denm.management.actionID; - if (v_timestampIts
- * Pics Selection: PICS_GN_BASIC_HEADER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet - * } - * then { - * the IUT sends a GBC packet - * containing a correctly formatted Basic Header - * containing version field - * set to itsGnProtocolVersion MIB parameter - * containing RHL field - * set to itsGnDefaultHopLimit MIB parameter - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BAH/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.2 , 8.6.2 and Annex G - */ - testcase TC_GEONW_FDV_BAH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_BAH_BV_01(); - - } // end TC_GEONW_FDV_BAH_BV_01 - - /** - * @desc Check discard of packet having incorrect version - *
- * Pics Selection: PICS_GN_BASIC_HEADER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * the IUT having received a SHB packet from ItsNodeB - * containing a correctly formatted Basic Header - * containing version field - * set to value equal to itsGnProtocolVersion MIB parameter - * and the IUT having passed the received SHB packet to Upper Layer - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a SHB packet from ItsNodeB - * containing a correctly formatted Basic Header - * containing version field - * set to value not equal to itsGnProtocolVersion MIB parameter - * } - * then { - * the IUT discards the received SHB packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BAH/BI-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.3 - */ - testcase TC_GEONW_FDV_BAH_BI_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_BAH_BI_02(); - - } // end TC_GEONW_FDV_BAH_BI_02 - - } // end geoFdvBasicHeader - - // 6.2.1.2 - group geoFdvCommonHeader { - - /** - * @desc Common GeoNetworking header validity test (PL field) - *
- * Pics Selection: PICS_GN_COMMON_HEADER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a Beacon message - * } - * then { - * the IUT sends a GeoNetworking message - * containing a correctly formatted Common Header - * containing HT field - * set to '1' (BEACON) - * containing HST field - * set to '0' (UNSPECIFIED) - * containing PL field - * set to '0' - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.6 and 9.3.6 - */ - testcase TC_GEONW_FDV_COH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_COH_BV_01(); - - } // end TC_GEONW_FDV_COH_BV_01 - - /** - * @desc Common GeoNetworking header validity test (PL field) - *
- * Pics Selection: PICS_GN_COMMON_HEADER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a SHB packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '5' (TSB) - * containing HST field - * set to '0' (SINGLE_HOP) - * containing MHL field - * set to '1' - * containing PL field - * set to the length of the included payload - * containing a payload - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV-02 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.4, 9.3.4 and 9.3.10 - */ - testcase TC_GEONW_FDV_COH_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_COH_BV_02(); - - } // end TC_GEONW_FDV_COH_BV_02 - - /** - * @desc Check defined values of default Gn parameters in the common header - *
- * Pics Selection: PICS_GN_COMMON_HEADER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet - * } - * then { - * the IUT sends a GBC packet - * containing a correctly formatted Common Header - * containing Flags field - * indicating value equalling the itsGnIsMobile MIB parameter - * containing MHL field - * set to itsGnDefaultHopLimit MIB parameter - * } - * } - *- * - * @version 0.0.11 - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BV-03 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.2, 9.3.4 and Annex G - */ - testcase TC_GEONW_FDV_COH_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_COH_BV_03(); - - } // end TC_GEONW_FDV_COH_BV_03 - - /** - * @desc Check that a received TSB packet is discarded if received with RHL > MHL - *
- * Pics Selection: PICS_GN_COMMON_HEADER - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a TSB packet - * containing Basic Header - * containing RHL field - * indicating HL1 higher than MHL1 - * containing Common Header - * containing MHL field - * indicating MHL1 - * } - * then { - * the IUT discards the TSB packet - * } - * } - *- * - * @version 0.0.11 - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/COH/BO-04 - * @reference EN 302 636-4-1 [1], clauses 9.3.5 - */ - testcase TC_GEONW_FDV_COH_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_FDV_COH_BO_04(); - - } // end TC_GEONW_FDV_COH_BV_04 - - } // end geoFdvCommonHeader - - // 6.2.1.3 - group geoFdvBeacon { - - /** - * @desc Beacon header validity test - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a Beacon packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '1' (BEACON) - * containing HST field - * set to '0' (UNSPECIFIED) - * containing NH field - * set to '0' (UNSPECIFIED) - * containing Extended Header - * containing SOPV - * indicating LPV of the IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.6 and 9.3.6 - */ - testcase TC_GEONW_FDV_BEA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_BEA_BV_01(); - - } // end TC_GEONW_FDV_BEA_BV_01 - - /** - * @desc GeoNetworking address validity test - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a Beacon packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing SOPV field - * containing GN_ADDR field - * containing ST field - * indicating the ITS Station type - * containing SCC field - * indicating the ITS Station country code - * } - * } - * NOTE: Correct Source GeoNetworking address value: itsGnLocalGnAddr MIB parameter value. - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV-02 - * @reference EN 302 636-4-1 [1], clauses 6.3 and 8.8.6.2 - */ - testcase TC_GEONW_FDV_BEA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_BEA_BV_02(); - - } // end TC_GEONW_FDV_BEA_BV_02 - - /** - * @desc Local Position Vector validity test, involving comparison against sensor input data - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a Beacon packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correct SOPV field - * indicating the latest position of the IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV-03 - * @reference EN 302 636-4-1 [1], clauses 8.5.2.2 and 8.8.6.2 - */ - testcase TC_GEONW_FDV_BEA_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_BEA_BV_03(); - - } // end TC_GEONW_FDV_BEA_BV_03 - - /** - * @desc Local Position Vector validity test, involving timestamp comparison against sensor input data - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a Beacon packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correct SOPV field - * indicating the timestamp value corresponding to the sensor acquisition time of position data - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/BEA/BV-04 - * @reference EN 302 636-4-1 [1], clauses 8.5.2.2 and 8.8.6.2 - */ - testcase TC_GEONW_FDV_BEA_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_BEA_BV_04(); - - } // end TC_GEONW_FDV_BEA_BV_04 - - } // end geoFdvBeacon - - // 6.2.1.4 - group geoFdvGeoUnicast { - - /** - * @desc GUC header validity - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing HST field - * set to '0' (UNSPECIFIED) - * containing GUC Extended Header - * containing DEPV field - * indicating position of the ItsNodeB - * containing SOPV field - * indicating position of the IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/GUC/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.2.2 and 9.3.8 - */ - testcase TC_GEONW_FDV_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_GUC_BV_01(); - - } // end TC_GEONW_FDV_GUC_BV_01 - - } // end geoFdvGeoUnicast - - // 6.2.1.5 - group geoFdvGeoBroadcast { - - /** - * @desc GBC header validity - *
- * Pics Selection: PICS_GN_GBC_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from the ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '4' (GEOBROADCAST) - * containing GBC Extended Header - * containing SOPV field - * indicating position of the IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/GBC/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.5.2 and 9.3.11 - */ - testcase TC_GEONW_FDV_GBC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_GBC_BV_01(); - - } // end TC_GEONW_FDV_GBC_BV_01 - - } // end geoFdvGeoBroadcast - - // 6.2.1.6 - group geoFdvGeoAnycast { - - /** - * @desc GAC header validity - *
- * Pics Selection: PICS_GN_GAC_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from the ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GAC packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '3' (GEOANYCAST) - * containing GAC Extended Header - * containing SOPV field - * indicating position of IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/GAC/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.5.2 and 9.3.12 - */ - testcase TC_GEONW_FDV_GAC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_GAC_BV_01(); - - } // end TC_GEONW_FDV_GAC_BV_01 - - } // end geoFdvGeoAnycast - - // 6.2.1.7 - group geoFdvSingleHopBroadcast { - - /** - * @desc SHB header validity - *
- * Pics Selection: PICS_GN_SHB_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from the ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a SHB packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '5' (TSB) - * containing HST field - * set to '0' (SINGLE_HOP) - * containing MHL field - * set to '1' - * containing Extended Header - * containing SOPV - * indicating LPV of the IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/SHB/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 9.3.4, 8.8.4.2 and 9.3.10 - */ - testcase TC_GEONW_FDV_SHB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_SHB_BV_01(); - - } // end TC_GEONW_FDV_SHB_BV_01 - - } // end geoFdvSingleHopBroadcast - - // 6.2.1.8 - group geoFdvTopologicallyScopedBroadcast { - - /** - * @desc TSB header validity - *
- * Pics Selection: PICS_GN_TSB_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from the ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a TSB packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '5' (TSB) - * containing HST field - * set to '1' (MULTI_HOP) - * containing TSB Extended Header - * containing SOPV field - * indicating position of the IUT - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/FDV/TSB/BV-01 - * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.3.2 and 9.3.9 - */ - testcase TC_GEONW_FDV_TSB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_FDV_TSB_BV_01(); - - } // end TC_GEONW_FDV_TSB_BV_01 - - } // end geoFdvTopologicallyScopedBroadcast - - } // end geoFormatingAndDataValidity - - // 6.2.2 - group geoProtocolOperation { - - // 6.2.2.1 - group geoLocationTable { - - /** - * @desc Check insertion of new entries into location table from Beacon header - *
- * Pics Selection: PICS_GN_GUC_SRC AND PICS_GN_BEACON_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from the ItsNodeB and - * the lifetime of the ItsNodeB Location Table entry not being expired - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received from ItsNodeB - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.10.3, 9.3.6.2 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_01(); - - } // end TC_GEONW_PON_LOT_BV_01 - - /** - * @desc Check insertion of new entries into location table from LS Reply data - *
- * Pics Selection: PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having been requested to send a first GUC packet to ItsNodeA and - * the IUT having sent a LS_REQUEST packet - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating ItsNodeA - * the IUT having received a LS_REPLY packet from ItsNodeA - * containing SOPV field and - * the IUT having sent the GUC packet to ItsNodeA and - * the lifetime of the ItsNodeA Location Table entry not being expired - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a second GUC packet to ItsNodeA - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating ItsNodeA - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the LS_REPLY packet received from ItsNodeA - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.4, 9.3.7.1.2 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_02(); - - } // end TC_GEONW_PON_LOT_BV_02 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_BEACON_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: Beacon packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_01(); - - } // end TC_GEONW_PON_LOT_BV_03_01 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_GUC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: GUC packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_02(); - - } // end TC_GEONW_PON_LOT_BV_03_02 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_GAC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: GAC packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_03(); - - } // end TC_GEONW_PON_LOT_BV_03_03 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_GBC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: GBC packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_04(); - - } // end TC_GEONW_PON_LOT_BV_03_04 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_TSB_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: TSB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_05(); - - } // end TC_GEONW_PON_LOT_BV_03_05 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_SHB_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: SHB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_06(); - - } // end TC_GEONW_PON_LOT_BV_03_06 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_LS_REQ_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: LS Request packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_07(); - - } // end TC_GEONW_PON_LOT_BV_03_07 - - /** - * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) - *
- * Pics Selection: PICS_GN_LS_REP_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any beacon from NODE - * the IUT having received a MESSAGE from originated by NODE - * } - * MESSAGE: LS Reply packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to NODE - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating NODE - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV of the MESSAGE received from NODE - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOT_BV_03_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_03_08(); - - } // end TC_GEONW_PON_LOT_BV_03_08 - - /** - * @desc Check location table entry expiration - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacons information from ItsNodeB and - * the IUT not having received beacons from ItsNodeB for the duration of itsGnLifetimeLocTE parameter (20 sec) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-04 - * @reference EN 302 636-4-1 [1], clauses 7.1.3, 9.3.8.2, 9.3.7.1.2 and Annex G - */ - testcase TC_GEONW_PON_LOT_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_04(); - - } // end TC_GEONW_PON_LOT_BV_04 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_GUC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: GUC packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_01(); - - } // end TC_GEONW_PON_LOT_BV_05_01 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_GAC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: GAC packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_02(); - - } // end TC_GEONW_PON_LOT_BV_05_02 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_GBC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: GBC packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_03(); - - } // end TC_GEONW_PON_LOT_BV_05_03 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_TSB_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: TSB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_04(); - - } // end TC_GEONW_PON_LOT_BV_05_04 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_SHB_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: SHB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_05(); - - } // end TC_GEONW_PON_LOT_BV_05_05 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_LS_REQ_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: LS Request packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_06(); - - } // end TC_GEONW_PON_LOT_BV_05_06 - - /** - * @desc Check update of entries in location table with most up-to-date position data extracted - * from common header processing (including timestamp comparison before updating) - *
- * Pics Selection: PICS_GN_LS_REP_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a MESSAGE from ItsNodeB, - * containing Extended Header - * containing SOPV field - * indicating an older timestamp than the last Beacon packet and - * indicating a different position than the position of the last Beacon packet - * } - * MESSAGE: LS Reply packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT does not send a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * indicating GN_ADDR of ItsNodeB - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOT/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 - */ - testcase TC_GEONW_PON_LOT_BV_05_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOT_BV_05_07(); - - } // end TC_GEONW_PON_LOT_BV_05_07 - - } // end geoLocationTable - - // 6.2.2.2 - group geoLocalPositionVector { - - /** - * @desc Check update of the Local position vector - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having changed its position - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates eventually a Beacon packet - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '1' (BEACON) - * containing HST field - * set to '0' (UNSPECIFIED) - * containing Extended Header - * containing SOPV field - * indicating the new position - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LPV/BV-01 - * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.2.2.2, 9.3.6.1 and Annex G - */ - testcase TC_GEONW_PON_LPV_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LPV_BV_01(); - - } // end TC_GEONW_PON_LPV_BV_01 - - } // end geoLocalPositionVector - - // 6.2.2.3 - group geoSequenceNumber { - - /** - * @desc Check initial sequence number assignment - *
- * Pics Selection: PICS_GN_GBC_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having sent any GBC packet and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet to AREA1 - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '4' (GEOBROADCAST) - * containing GBC Extended Header - * containing SN field - * indicating value '0' - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SQN/BV-01 - * @reference EN 302 636-4-1 [1], clauses 7.3.2, 9.3.8.2 - */ - testcase TC_GEONW_PON_SQN_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_SQN_BV_01(); - - } // end TC_GEONW_PON_SQN_BV_01 - - /** - * @desc Check the local sequence number incrementation - *
- * Pics Selection: PICS_GN_GBC_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having sent a GBC packet to AREA1 - * containing the Sequence Number field - * indicating value SN1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet to AREA1 - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '4' (GEOBROADCAST) - * containing GBC Extended Header - * containing SN field - * indicating value SN1 + 1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SQN/BV-02 - * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.3.8.2 - */ - testcase TC_GEONW_PON_SQN_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_SQN_BV_02(); - - } // end TC_GEONW_PON_SQN_BV_02 - - } // end geoSequenceNumber - - // 6.2.2.4 - group geoLocationService { - - /** - * @desc Check first LS invocation for unknown Destination nodes - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeA - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '6' (LS) - * containing HST field - * set to '0' (LS_REQUEST) - * containing NH field - * set to '0' (UNSPECIFIED) - * containing LS_REQUEST Extended Header - * containing Request field - * indicating GN_ADDR of ItsNodeA - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4, 6.3 and 9.3.7.1.2 - */ - testcase TC_GEONW_PON_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_01(); - - } // end TC_GEONW_PON_LOS_BV_01 - - /** - * @desc Check absence of LS invocation for unknown Destination nodes when LS procedure is already active - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a first GUC packet to ItsNodeA and - * the IUT having sent a GeoNetworking packet - * containing a LS_REQUEST - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating ItsNodeA - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a new GUC packet to ItsNodeA - * } - * then { - * IUT does not send a second LS_REQUEST packet (see note) - * } - * } - * NOTE: at least not before the LS_REQUEST retransmission timer expires - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4 and 9.3.7.1.2 - */ - testcase TC_GEONW_PON_LOS_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_02(); - - } // end TC_GEONW_PON_LOS_BV_02 - - /** - * @desc Check packet buffering into LS buffer during Location service procedure, - * including handling of LT fields in the LT packet buffer - *
- * Pics Selection: PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 and - * the IUT having sent a LS_REQUEST packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the LS_REPLY packet from ItsNodeA - * } - * then { - * the IUT sends the GUC packet addressed to ItsNodeA - * containing GUC Extended Header - * containing LT field - * indicating value (default LT value – WaitingTime (see note)) - * } - * } - * NOTE: Waiting Time == time difference between LS_REQUEST sending and LS_REPLY reception. - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-03 - * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.7.1.4, 9.3.8.2, 9.2.4 and 9.3.7.1.2 - */ - testcase TC_GEONW_PON_LOS_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_03(); - - } // end TC_GEONW_PON_LOS_BV_03 - - /** - * @desc Check LS buffer characteristics: FIFO type - *
- * Pics Selection: PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 - * containing payload field - * indicating value PL1 and - * the IUT having sent a LS_REQUEST packet and - * the IUT having been requested to send a second GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating LT2 - * containing payload field - * indicating value PL2 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the LS_REPLY packet from ItsNodeA and - * before expiry of LT1 and LT2 - * } - * then { - * the IUT sends GUC packet addressed to ItsNodeA - * containing payload field - * indicating value PL1 and - * the IUT sends GUC packet addressed to ItsNodeA - * containing payload field - * indicating value PL2 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-04 - * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.8.2, 9.2.4 and 9.3.7.1.2 - */ - testcase TC_GEONW_PON_LOS_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_04(); - - } // end TC_GEONW_PON_LOS_BV_04 - - /** - * @desc Check LS buffer characteristics: discarding upon LT expiration - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send multiple GUC packets to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating values LTx and - * the IUT having sent a LS_REQUEST packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the LS_REPLY packet from ItsNodeA after expiry of LTs - * } - * then { - * the IUT does not send any packet to ItsNodeA - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-05 - * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.8.2, 9.2.4 and 9.3.7.1.2 - */ - testcase TC_GEONW_PON_LOS_BV_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_05(); - - } // end TC_GEONW_PON_LOS_BV_05 - - /** - * @desc Check LS Request retransmission if no answer is received - *
- * Pics Selection: PICS_GN_LS_REQ_RETRANSMISSION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 higher than itsGnLocationServiceTimer and - * the IUT having sent a LS_REQUEST packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT does not receive LS_REPLY packet from ItsNodeA and - * before expiration of LT1 - * } - * then { - * the IUT retransmits the LS_REQUEST packet - * upon expiry of itsGnLocationServiceTimer - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-06 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.3, 9.3.7.1.2 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOS_TI_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_TI_06(); - - } // end TC_GEONW_PON_LOS_TI_06 - - /** - * @desc Check LS Request retransmission if no answer is received - *
- * Pics Selection: PICS_GN_LS_REQ_RETRANSMISSION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and - * the IUT having sent a LS_REQUEST packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT does not receive LS_REPLY packet from ItsNodeA and - * before expiration of LT1 - * } - * then { - * the IUT retransmits the LS_REQUEST packet itsGnLocationServiceMaxRetrans times - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-07 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOS_BV_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_07(); - - } // end TC_GEONW_PON_LOS_BV_07 - - /** - * @desc Check LS Reply generation by destination node - *
- * Pics Selection: PICS_GN_LS_REQ_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a LS_REQUEST packet - * containing Request field - * indicating the IUT's GN_ADDR - * } - * then { - * the IUT replies with a LS_REPLY packet - * containing Common Header - * containing NH field - * set to '0' (UNSPECIFIED) - * containing LS_REPLY Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the received LS_REQUEST - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-08 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.3 and 9.3.5 - */ - testcase TC_GEONW_PON_LOS_BV_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_08(); - - } // end TC_GEONW_PON_LOS_BV_08 - - /** - * @desc Check absence of LS Reply generation for already answered LS Request packets - *
- * Pics Selection: PICS_GN_LS_REQ_DST - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received a LS_REQUEST packet generated by ItsNodeB from ItsNodeB - * the IUT having sent a LS_REPLY packet to ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same LS_REQUEST packet from ItsNodeD - * } - * then { - * the IUT does not reply with a LS_REPLY packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BO-09 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.3 and 9.3.5 - */ - testcase TC_GEONW_PON_LOS_BO_09() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BO_09(); - - } // end TC_GEONW_PON_LOS_BO_09 - - - /** - * @desc Check LS Request forwarding - *
- * Pics Selection: PICS_GN_LS_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a LS_REQUEST packet from ItsNodeC - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * containing LS_REQUEST Extended Header - * containing Request field - * containing GN_ADDR - * containing M_ID - * indicating value differing from the M_ID part of the GN_ADDR of the IUT - * } - * then { - * the IUT re-broadcasts the received LS_REQUEST packet - * containing Basic Header - * containing RHL field - * indicating value decreased by 1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-10 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.2 - */ - testcase TC_GEONW_PON_LOS_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_10(); - - } // end TC_GEONW_PON_LOS_BV_10 - - /** - * @desc Check LS Reply forwarding - *
- * Pics Selection: PICS_GN_LS_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a LS_REPLY packet from ItsNodeC addressed to ItsNodeB - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * } - * then { - * the IUT forwards the received LS_REPLY packet to ItsNodeB - * containing Basic Header - * containing RHL field - * indicating value decreased by 1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-11 - * @reference EN 302 636-4-1 [1], clauses 9.3.7.2 - */ - testcase TC_GEONW_PON_LOS_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_11(); - - } // end TC_GEONW_PON_LOS_BV_11 - - /** - * @desc Check flushing of the LS buffer, initiated by the processing of a common header from the target destination - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet ItsNodeA - * containing LT field - * indicating LT1 and - * the IUT having sent a LS_REQUEST packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to it from ItsNodeA before expiry of LT1 - * } - * then { - * the IUT sends the waiting GUC packet to ItsNodeA - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-12 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.7.1.2 and 7.4.2 - */ - testcase TC_GEONW_PON_LOS_BV_12() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_12(); - - } // end TC_GEONW_PON_LOS_BV_12 - - /** - * @desc Check LS buffer characteristics: FIFO type and Lifetime - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 - * containing payload field - * indicating value PL1 and - * the IUT having sent a LS_REQUEST packet and - * the IUT having been requested to send a second GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating LT2 lower than LT1 - * containing payload field - * indicating value PL2 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the LS_REPLY packet from ItsNodeA - * after expiry of LT2 - * before expiry of LT1 - * } - * then { - * the IUT sends GUC packet addressed to ItsNodeA - * containing payload field - * indicating value PL1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-13 - * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.7.1.2 - */ - testcase TC_GEONW_PON_LOS_BV_13() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_13(); - - } // end TC_GEONW_PON_LOS_BV_13 - - /** - * @desc Check that GeoNetworking packets in LS buffer are discarded when LS does not complete. - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and - * the IUT having sent a LS_REQUEST packet itsGnLocationServiceMaxRetrans times - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet from ItsNodeA - * before expiration of LT1 - * } - * then { - * the IUT does not send any packet to ItsNodeA (see note) - * } - * } - * NOTE: Stored GUC packets have been discarded upon LS failure - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-14 - * @reference EN 302 636-4-1 [1], clauses 7.4.3 - */ - testcase TC_GEONW_PON_LOS_BV_14() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_14(); - - } // end TC_GEONW_PON_LOS_BV_14 - - /** - * @desc Check flushing of the LS buffer, initiated by the processing of a common header from the target destination - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet ItsNodeA - * containing LT field - * indicating LT1 and - * the IUT having sent a LS_REQUEST packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeB from ItsNodeA before expiry of LT1 - * } - * then { - * the IUT sends the waiting GUC packet to ItsNodeA - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-15 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 9.3.7.1.2 and 7.4.2 - */ - testcase TC_GEONW_PON_LOS_BV_15() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_15(); - - } // end TC_GEONW_PON_LOS_BV_15 - - /** - * @desc Check LS Request retransmission termination when indirect response is received - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and - * the IUT having sent a LS_REQUEST packet - * the IUT having retransmitted the LS_REQUEST packet less than itsGnLocationServiceMaxRetrans - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to it from ItsNodeA before expiry of LT1 - * } - * then { - * the IUT does not retransmits the LS_REQUEST packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-16 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOS_BV_16() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_16(); - - } // end TC_GEONW_PON_LOS_BV_16 - - /** - * @desc Check LS Request retransmission termination when indirect response is received - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 - * containing LT field - * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and - * the IUT having sent a LS_REQUEST packet - * the IUT having retransmitted the LS_REQUEST packet less than itsGnLocationServiceMaxRetrans - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeB from ItsNodeA before expiry of LT1 - * } - * then { - * the IUT does not retransmits the LS_REQUEST packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/LOS/BV-17 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_LOS_BV_17() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_LOS_BV_17(); - - } // end TC_GEONW_PON_LOS_BV_17 - - } // end geoLocationService - - // 6.2.2.5 - group geoForwardingPacketBuffer { - - /** - * @desc Check Source packet buffering into UC forwarding buffer for unreachable Unicast destinations - * (absence of a suitable next hop candidate) - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA (see note) and - * the IUT having been requested to send a GUC packet addressed to ItsNodeA - * containing TrafficClass.SCF set to 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from ItsNodeB - * } - * then { - * the IUT selects the ItsNodeB as the next hop and - * the IUT sends the buffered GUC packet - * } - * } - * NOTE: Location Table Entry is created by sending any GeoNetworking packet, originated by ItsNodeA, from ItsNodeC to IUT - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-01 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3, 9.3.4.2 and 9.3.8.3 - */ - testcase TC_GEONW_PON_FPB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_01(); - - } // end TC_GEONW_PON_FPB_BV_01 - - /** - * @desc Check Forwarder packet buffering into UC forwarding buffer for unreachable Unicast destinations - * (absence of a suitable next hop candidate) - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having received GUC packets addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT1 - * containing RHL field - * indicating value greater than 1 - * containing GUC Extended Header - * containing SN field - * indicating value SN1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from ItsNodeB - * } - * then { - * the IUT selects the ItsNodeB as the next hop and - * the IUT forwards the buffered GUC packet - * containing Basic Header - * containing RHL field - * indicating value decreased by 1 - * containing GUC Extended Header - * containing SN field - * indicating value SN1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 7.5.3, 9.3.6.3 - */ - testcase TC_GEONW_PON_FPB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_02(); - - } // end TC_GEONW_PON_FPB_BV_02 - - /** - * @desc Check UC forwarding buffer characteristics: FIFO type - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having received a GUC (GEOUNI1) packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating value LT1 and - * containing RHL field - * indicating value greater than 1 - * containing GUC Extended Header - * containing SN field - * indicating value SN1 - * the IUT having received a second GUC (GEOUNI2) packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT2 - * containing RHL field - * indicating value greater than 1 - * containing GUC Extended Header - * containing SN field - * indicating value SN2 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from ItsNodeB - * before expiry of LT1 and LT2 - * } - * then { - * the IUT selects ItsNodeB as the next hop and - * the IUT forwards the GEOUNI1 buffered packet - * containing GUC Extended Header - * containing SN field - * indicating value SN1 - * the IUT forwards the GEOUNI2 buffered packet - * containing GUC Extended Header - * containing SN field - * indicating value SN2 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-03 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.3 - */ - testcase TC_GEONW_PON_FPB_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_03(); - - } // end TC_GEONW_PON_FPB_BV_03 - - /** - * @desc Check UC forwarding buffer characteristics: discarding upon LT expiration - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having received a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT1 - * containing RHL field - * indicating value greater than 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from ItsNodeB - * after expiry of LT1 - * } - * then { - * the IUT does not forward the buffered GUC packet addressed to ItsNodeA - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-03 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.3 - */ - testcase TC_GEONW_PON_FPB_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_04(); - - } // end TC_GEONW_PON_FPB_BV_04 - - /** - * @desc Check Source packet buffering into BC forwarding buffer for no GBC recipients - *
- * Pics Selection: none - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received Beacon information from ItsNodeD and - * the IUT not having received Beacon information from ItsNodeB and - * the IUT having been requested to send a GBC packet to AREA1 - * containing TrafficClass.SCF set to 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD - * } - * then { - * the IUT broadcasts the buffered GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-06 - * @reference EN 302 636-4-1 [1], clauses 9.3.5, 7.5.3, 9.3.6.3 and 9.3.11.2 - */ - testcase TC_GEONW_PON_FPB_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_06(); - - } // end TC_GEONW_PON_FPB_BV_06 - - /** - * @desc Check BC forwarding buffer characteristics: FIFO type - *
- * Pics Selection: none - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received Beacon information from ItsNodeD and - * the IUT not having received Beacon information from ItsNodeB and - * the IUT having been requested to send a GBC (GEOBROAD1) packet to AREA1 - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT1 - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * the IUT having been requested to send a GBC (GEOBROAD2) packet to AREA1 - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT2 - * containing GBC Extended Header - * containing SN field - * indicating value SN2 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from either ItsNodeD or ItsNodeB - * before expiry of LT1 and LT2 - * } - * then { - * the IUT broadcasts GEOBROAD1 packet - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * the IUT broadcasts GEOBROAD2 packet - * containing GBC Extended Header - * containing SN field - * indicating value SN2 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-07 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 - */ - testcase TC_GEONW_PON_FPB_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_07(); - - } // end TC_GEONW_PON_FPB_BV_07 - - /** - * @desc Check BC forwarding buffer characteristics: discarding upon LT expiration - *
- * Pics Selection: none - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received Beacon information from ItsNodeD and - * the IUT not having received Beacon information from ItsNodeB and - * the IUT having been requested to send a GBC (GEOBROAD1) packet to AREA1 - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT1 - * the IUT having been requested to send a GBC (GEOBROAD2) packet to AREA1 - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing LT field - * indicating LT2 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD - * after expiry of LT1 and LT2 - * } - * then { - * the IUT does not broadcast any of the buffered GEOBROAD1 and GEOBROAD2 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-08 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 - */ - testcase TC_GEONW_PON_FPB_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_08(); - - } // end TC_GEONW_PON_FPB_BV_08 - - /** - * @desc Check Source packet buffering into UC forwarding buffer for handling of LT fields in absence of a suitable next hop candidate - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA and - * the IUT having been requested to send a GUC packet addressed to ItsNodeA - * containing TrafficClass.SCF set to 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from ItsNodeB - * } - * then { - * the IUT selects the ItsNodeB as the next hop and - * the IUT sends the buffered GUC packet - * containing GUC Extended Header - * containing LT field - * indicating (default LT value – WaitingTime(see note)) - * } - * } - * NOTE: WaitingTime == time difference between Upper layer packet generation and the neighbour Beacon reception - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-09 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.2 - */ - testcase TC_GEONW_PON_FPB_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_09(); - - } // end TC_GEONW_PON_FPB_BV_09 - - /** - * @desc Check Source packet buffering into BC forwarding buffer for handling of LT fields for no GBC recipients - *
- * Pics Selection: none - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received Beacon information from ItsNodeD and - * the IUT not having received Beacon information from ItsNodeB and - * the IUT having been requested to send a GBC packet to AREA1 - * containing TrafficClass.SCF set to 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD - * } - * then { - * the IUT broadcasts the buffered GBC packet - * containing GBC Extended Header - * containing LT field - * indicating (default LT value - WaitingTime (see note)) - * } - * } - * NOTE: WaitingTime == time difference between Upper layer packet generation and the neighbour Beacon reception - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-10 - * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 - */ - testcase TC_GEONW_PON_FPB_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_10(); - - } // end TC_GEONW_PON_FPB_BV_10 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA (see note) - * } - * - * MESSAGE : GUC packet addressed to ItsNodeA - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-11-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_11_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_11_01(); - - } // end TC_GEONW_PON_FPB_BV_11_01 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_GAC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA (see note) - * } - * - * MESSAGE : GAC packet - * containing DestinationArea - * indicating AREA2 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-11-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_11_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_11_02(); - - } // end TC_GEONW_PON_FPB_BV_11_02 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_GBC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA (see note) - * } - * - * MESSAGE : GBC packet - * containing DestinationArea - * indicating AREA2 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-11-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_11_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_11_03(); - - } // end TC_GEONW_PON_FPB_BV_11_03 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_TSB_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA (see note) - * } - * - * MESSAGE : TSB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-11-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_11_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_11_04(); - - } // end TC_GEONW_PON_FPB_BV_11_04 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_SHB_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB and - * the IUT having a Location Table Entry for ItsNodeA (see note) - * } - * - * MESSAGE : SHB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-11-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_11_05() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_11_05(); - - } // end TC_GEONW_PON_FPB_BV_11_05 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_GUC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB - * } - * - * MESSAGE : GUC packet addressed to ItsNodeA - * - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-12-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_12_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_12_01(); - - } // end TC_GEONW_PON_FPB_BV_12_01 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_GAC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB - * } - * - * MESSAGE : GAC packet - * containing DestinationArea - * indicating AREA2 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-12-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_12_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_12_02(); - - } // end TC_GEONW_PON_FPB_BV_12_02 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_GBC_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB - * } - * - * MESSAGE : GBC packet - * containing DestinationArea - * indicating AREA2 - * - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-12-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_12_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_12_03(); - - } // end TC_GEONW_PON_FPB_BV_12_03 - - /** - * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled - *
- * Pics Selection: PICS_GN_TSB_SRC - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT not having received any Beacon information from ItsNodeB - * } - * - * MESSAGE : TSB packet - * - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a MESSAGE - * containing TrafficClass.SCF set to 0 - * } - * then { - * the IUT broadcast the MESSAGE immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/FPB/BV-12-X - * @reference EN 302 636-4-1 [1], Annex D2 - */ - testcase TC_GEONW_PON_FPB_BV_12_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_FPB_BV_12_04(); - - } // end TC_GEONW_PON_FPB_BV_11_04 - - } // end geoForwardingPacketBuffer - - // 6.2.2.6 - group geoGeoNetworkingAddress { - - /** - * @desc Check the initial GeoNetworking address assignment by IUT with auto-address configuration - *
- * Pics Selection: PICS_GN_ADDR_AUTO - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT's itsGnLocalAddrConfMethod MIB parameter is set to AUTO (0) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates a Beacon packet - * } - * then { - * the IUT sends a GeoNetworking message - * containing a correctly formatted Common Header - * containing HT field - * set to '1' (BEACON) - * containing HST field - * set to '0' (UNSPECIFIED) - * containing a Beacon Extender Header - * containing SOPV field - * containing GN_ADDR field - * indicating itsGnLocalGnAddr MIB parameter - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GNA/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.2.1.2 and 9.3.6.2 - */ - testcase TC_GEONW_PON_GNA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GNA_BV_01(); - - } // end TC_GEONW_PON_GNA_BV_01 - - /** - * @desc Check the proper functioning of duplicate address detection mechanism - *
- * Pics Selection: PICS_GN_DAD - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having sent an SHB packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a SHB packet - * containing SHB Extended Header - * containing SOPV field - * containing GN_ADDR field - * indicating same GN_ADDR as the GN_ADDR field in the last SHB packet originated by the IUT - * } - * then { - * the IUT sends subsequent SHB packet - * containing SHB Extended Header - * containing SOPV field - * containing GN_ADDR field - * indicating different GN_ADDR as the previous used GN_ADDR - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GNA/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.2.1.4 - */ - testcase TC_GEONW_PON_GNA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GNA_BV_02(); - - } // end TC_GEONW_PON_GNA_BV_02 - - } // end geoGeoNetworkingAddress - - // 6.2.2.7 - group geoBeaconing { - - /** - * @desc Check that the IUT transmits Beacons at prescribed periodicity in the absence of other originated - * packets - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT generates Beacon packets - * } - * then { - * the IUT sends each Beacon packet - * after expiry of itsGnBeaconServiceRetransmitTimer - * and before expiry of itsGnBeaconServiceRetransmitTimer + itsGnBeaconServiceMaxJitter - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BEA/TI-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.6.2 - */ - testcase TC_GEONW_PON_BEA_TI_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_BEA_TI_01(); - - } // end TC_GEONW_PON_BEA_TI_01 - - /** - * @desc Check that the IUT resets its timer for next Beacon transmission when originating other packets - *
- * Pics Selection: PICS_GN_BEACON_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a SHB packet - * } - * then { - * the IUT broadcasts a SHB packet and - * the IUT sends the next Beacon packet - * after expiry of itsGnBeaconServiceRetransmitTimer - * and before expiry of itsGnBeaconServiceRetransmitTimer + itsGnBeaconServiceMaxJitter - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BEA/TI-02 - * @reference EN 302 636-4-1 [1], clauses 9.2.3 and 9.3.10.2 - */ - testcase TC_GEONW_PON_BEA_TI_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_BEA_TI_02(); - - } // end TC_GEONW_PON_BEA_TI_02 - - } // end geoBeaconing - - // 6.2.2.8 - group geoGeoUnicast { - - /** - * @desc Check that a GUC request over upper Gn SAP triggers the origination of a - * GUC packet - *
- * Pics Selection: PICS_GN_GUC_SRC AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT sends a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the Beacon information received - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.3.6.3 - */ - testcase TC_GEONW_PON_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_01(); - - } // end TC_GEONW_PON_GUC_BV_01 - - /** - * @desc Check that a received GUC packet is routed to the correct next hop neighbour according - * to the greedy forwarding rules - *
- * Pics Selection: PICS_GN_GUC_FWD AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * } - * then { - * the IUT selects ItsNodeB as the next hop ITS station and - * the IUT forwards the GUC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.2 - */ - testcase TC_GEONW_PON_GUC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_02(); - - } // end TC_GEONW_PON_GUC_BV_02 - - /** - * @desc Check that the protocol header fields (RHL, PV) are correctly updated at each forwarding step - *
- * Pics Selection: PICS_GN_GUC_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the IUT having received a GUC packet (GEOUNI1) originated by ItsNodeA - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet (GEOUNI2) addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * containing Common Header - * containing MHL field - * indicating value MHL1 - * containing GUC Extended Header - * containing DEPV field - * indicating position different from the SOPV value of GEOUNI1 - * containing TST field - * indicating older value than the TimeStamp value of GEOUNI1 - * } - * then { - * the IUT selects ItsNodeB as the next hop ITS station and - * the IUT forwards GEOUNI2 - * containing Basic Header - * containing RHL field - * indicating value decreased by 1 from the incoming value - * containing Common Header - * containing MHL field - * indicating value MHL1 - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of GEOUNI1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 - */ - testcase TC_GEONW_PON_GUC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_03(); - - } // end TC_GEONW_PON_GUC_BV_03 - - /** - * @desc Check that the RHL restriction is correctly handled at the forwarding step - *
- * Pics Selection: PICS_GN_GUC_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating 1 - * } - * then { - * the IUT does not forward the GUC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BO-04 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 - */ - testcase TC_GEONW_PON_GUC_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BO_04(); - - } // end TC_GEONW_PON_GUC_BO_04 - - /** - * @desc Check that a received GUC packet is passed over the Gn SAP to the correct upper - * protocol if the Destination address matches the IUT address - *
- * Pics Selection: PICS_GN_GUC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to it - * } - * then { - * the IUT passes the received GUC packet to the correct Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 - */ - testcase TC_GEONW_PON_GUC_BV_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_05(); - - } // end TC_GEONW_PON_GUC_BV_05 - - /** - * @desc Check that a received GUC packet is forwarded at the correct time according to the - * contention based forwarding rules - *
- * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the distance between IUT and ItsNodeA being - * less than itsGnDefaultMaxCommunicationRange MIB attribute - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * } - * then { - * the IUT re-broadcasts the received GUC packet - * upon expiry of calculated CBF delay (see note) - * } - * } - * NOTE: The CBF delay timer value is calculated from the itsGnDefaultMaxCommunicationRange, - * itsGnGeoUnicastCbfMinTime, and itsGnGeoUnicastCbfMaxTime MIB attributes, and the distance value - * between IUT and ItsNodeC - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-06 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 - */ - testcase TC_GEONW_PON_GUC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_06(); - - } // end TC_GEONW_PON_GUC_BV_06 - - /** - * @desc Check that a received GUC packet forwarding is correctly handling the minimum delay - * value according to the contention based forwarding rules - *
- * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the distance between IUT and ItsNodeA being - * larger than the itsGnDefaultMaxCommunicationRange MIB attribute - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * } - * then { - * the IUT re-broadcasts the received GUC packet - * upon expiry of itsGnGeoUnicastCbfMinTime delay - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-07 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 - */ - testcase TC_GEONW_PON_GUC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_07(); - - } // end TC_GEONW_PON_GUC_BV_07 - - /** - * @desc Check that GUC packet forwarding correctly avoids packet duplication according to the - * contention based forwarding rules - *
- * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the distance between IUT and ItsNodeA being - * less than the itsGnDefaultMaxCommunicationRange MIB attribute and - * the IUT having received a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 and - * the IUT having started a CBF timer for this packet (see note) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet from ItsNodeD - * before expiration of the CBF timer - * } - * then { - * the IUT does not re-broadcast the received GUC packet - * } - * } - * NOTE: the CBF delay timer value is calculated from the itsGnDefaultMaxCommunicationRange, - * itsGnGeoUnicastCbfMinTime, and itsGnGeoUnicastCbfMaxTime MIB attributes, and the - * distance value between IUT and ItsNodeC - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-08 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 - */ - testcase TC_GEONW_PON_GUC_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_08(); - - } // end TC_GEONW_PON_GUC_BV_08 - - /** - * @desc Check that a received GUC packet is forwarded at the correct time according to the - * contention based forwarding rules when the sender is unknown - *
- * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT not having received any message from ItsNodeC and - * the distance between IUT and ItsNodeA being - * less than the itsGnDefaultMaxCommunicationRange MIB attribute and - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 - * } - * then { - * the IUT re-broadcasts the received GUC packet - * upon expiry of CBF_MAX - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-10 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 - */ - testcase TC_GEONW_PON_GUC_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_10(); - - } // end TC_GEONW_PON_GUC_BV_10 - - /** - * @desc Check that a GUC request over upper Gn SAP triggers the origination of a GUC packet - *
- * Pics Selection: PICS_GN_GUC_SRC AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeB - * } - * then { - * the IUT broadcasts a GeoNetworking packet - * containing a correctly formatted Common Header - * containing HT field - * set to '2' (GEOUNICAST) - * containing GUC Extended Header - * containing DEPV field - * indicating same position as the SOPV value of the received Beacon information - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BV-11 - * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 - */ - testcase TC_GEONW_PON_GUC_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BV_11(); - - } // end TC_GEONW_PON_GUC_BV_11 - - /** - * @desc Check that a received GUC packet is not triggering forwarding if received twice or more - *
- * Pics Selection: PICS_GN_GUC_FWD AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeC and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 and - * the IUT having forwarded the GUC packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GUC packet from ItsNodeB - * containing Basic Header - * containing RHL field - * indicating HL1 - 1 - * } - * then { - * the IUT does forward the packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BO-12 - * @reference EN 302 636-4-1 [1], clause 9.3.9.3 - */ - testcase TC_GEONW_PON_GUC_BO_12() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BO_12(); - - } // end TC_GEONW_PON_GUC_BO_12 - - /** - * @desc Check that a received GUC packet is not passed over the Gn SAP to the correct upper protocol - * when the Destination address matches the IUT address if received twice or more - *
- * Pics Selection: PICS_GN_GUC_DST AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeC and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a GUC packet addressed to IUT from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value greater than 1 and - * the IUT having forwarded the GUC packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GUC packet from ItsNodeB - * containing Basic Header - * containing RHL field - * indicating HL1 - 1 - * } - * then { - * the IUT does not pass the received GUC packet to any Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GUC/BO-13 - * @reference EN 302 636-4-1 [1], clause 9.3.9.3 - */ - testcase TC_GEONW_PON_GUC_BO_13() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GUC_BO_13(); - - } // end TC_GEONW_PON_GUC_BV_13 - - } // end geoGeoUnicast - - // 6.2.2.9 - group geoGeoBroadcast { - - /** - * @desc Check that a GBC request over upper Gn SAP triggers broadcasting of a GBC packet if the IUT is within the Destination Area - *
- * Pics Selection: PICS_GN_GBC_SRC - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT broadcasts immediately the GBC packet - * containing DestinationArea - * indicating AREA1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.2 - */ - testcase TC_GEONW_PON_GBC_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_01(); - - } // end TC_GEONW_PON_GBC_BV_01 - - /** - * @desc Check that a GBC request over upper Gn SAP triggers line forwarding if the IUT is outside the Destination Area - *
- * Pics Selection: PICS_GN_GBC_SRC AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' - * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED' - * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED') - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects ItsNodeB as the next hop ITS station and - * the IUT sends the GBC packet (see note) - * } - * } - * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.2, Annex E.2 - */ - testcase TC_GEONW_PON_GBC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_02(); - - } // end TC_GEONW_PON_GBC_BV_02 - - /** - * @desc Check that a received GBC packet is triggering re-broadcasting if received for the first - * time within its destination area - *
- * Pics Selection: PICS_GN_GBC_SRC AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' - * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED' - * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED') - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT re-broadcasts immediately the GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 - */ - testcase TC_GEONW_PON_GBC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_03(); - - } // end TC_GEONW_PON_GBC_BV_03 - - /** - * @desc Check that a received GBC packet is not triggering re-broadcasting if received for - * the second or more time (duplicate packet detection) - *
- * Pics Selection: PICS_GN_GBC_FWD AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a GBC packet from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value HL1 higher than 1 - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * containing DestinationArea - * indicating AREA1 and - * the IUT having re-broadcast the GBC packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet from ItsNodeD - * containing Basic Header - * containing RHL field - * indicating value lower than HL1 - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not re-broadcast the GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BO-04 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex A.2 - */ - testcase TC_GEONW_PON_GBC_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BO_04(); - - } // end TC_GEONW_PON_GBC_BO_04 - - /** - * @desc Check that a received GBC packet is triggering line forwarding if received out of its - * destination area for the first time from a known ITS-Station - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet generated by ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects ItsNodeB as the next hop ITS station and - * the IUT forwards the GBC packet (see note) - * } - * } - * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 - */ - testcase TC_GEONW_PON_GBC_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_05(); - - } // end TC_GEONW_PON_GBC_BV_05 - - /** - * @desc Check that a received GBC packet is not triggering line forwarding if received out of its - * destination area for the second or more time - *
- * Pics Selection: PICS_GN_GBC_FWD AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * the IUT having received a GBC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value HL1 higher than 1 - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * containing DestinationArea - * indicating AREA2 - * the IUT having forwarded the received GBC packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet from ItsNodeD - * containing Basic Header - * containing RHL field - * indicating value lower than HL1 - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not forward the received GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BO-06 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 - */ - testcase TC_GEONW_PON_GBC_BO_06() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BO_06(); - - } // end TC_GEONW_PON_GBC_BO_06 - - /** - * @desc Check that the protocol header fields (RHL) are correctly updated during a GBC re- - * broadcasting step - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value HL1 higher than 1 - * containing Common Header - * containing MHL field - * indicating value MHL1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT re-broadcasts the GBC packet - * containing Basic Header - * containing RHL field - * indicating value (HL1 -1) - * containing Common Header - * containing MHL field - * indicating value MHL1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-07 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 - */ - testcase TC_GEONW_PON_GBC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_07(); - - } // end TC_GEONW_PON_GBC_BV_07 - - /** - * @desc Check that the RHL restriction is correctly handled at a GBC re-broadcasting step - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT does not re-broadcast the GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-08 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 - */ - testcase TC_GEONW_PON_GBC_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_08(); - - } // end TC_GEONW_PON_GBC_BV_08 - - /** - * @desc Check that a received GBC packet is passed over the Gn SAP to the correct upper - * protocol if it is received for the first time within the GBC destination area - *
- * Pics Selection: PICS_GN_GBC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT passes the received GBC packet to the correct Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-09 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 - */ - testcase TC_GEONW_PON_GBC_BV_09() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_09(); - - } // end TC_GEONW_PON_GBC_BV_09 - - /** - * @desc Check that a received GBC packet is not passed over the Gn SAP if it is received for the - * second or more time - *
- * Pics Selection: PICS_GN_GBC_DST AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a GBC packet from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating HL1 - * containing GBC Extended Header - * containing SN field - * indicating value SN1 - * containing DestinationArea - * indicating AREA1 and - * the IUT having passed the received GBC packet to the correct Upper Layer protocol - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet from ItsNodeD - * containing Basic Header - * containing RHL field - * indicating value lower than HL1 - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not pass the received GBC packet to any Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BO-10 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 - */ - testcase TC_GEONW_PON_GBC_BO_10() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BO_10(); - - } // end TC_GEONW_PON_GBC_BO_10 - - /** - * @desc Check that a received GBC packet is not passed over the Gn SAP if it is received for the - * first time outside the GBC destination area - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT does not pass the received GBC packet to any Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-11 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 - */ - testcase TC_GEONW_PON_GBC_BV_11() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_11(); - - } // end TC_GEONW_PON_GBC_BV_11 - - /** - * @desc Check that a GBC request over upper Gn SAP triggers the broadcasting of a GBC packet if this CBF is selected in the MIB - *
- * Pics Selection: PICS_GN_GBC_SRC AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GBC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT broadcasts immediately the GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-12 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.2, Annex D.2 - */ - testcase TC_GEONW_PON_GBC_BV_12() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_12(); - - } // end TC_GEONW_PON_GBC_BV_12 - - /** - * @desc Check that a received GBC packet is discarded when indicating a too big GeoArea - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating a geoArea bigger than itsGnMaxGeoAreaSize - * } - * then { - * the IUT does not forward the received GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BO-19 - * @reference EN 302 636-4-1 [1], Annex B.3 - */ - testcase TC_GEONW_PON_GBC_BO_19() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BO_19(); - - } // end TC_GEONW_PON_GBC_BO_19 - - /** - * @desc Check that a received GBC packet is triggering rebroadcast if received out of its - * destination area for the first time from an unknown sender - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT not having received any message from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT re-broadcasts the GBC packet immediately - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-20 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2, E3 and E.4 - */ - testcase TC_GEONW_PON_GBC_BV_20() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_20(); - - } // end TC_GEONW_PON_GBC_BV_20 - - /** - * @desc Check that a received GBC packet is triggering rebroadcast if received out of its - * destination area for the first time from a known sender with PAI=0 - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * containing SOPV.PAI indicating 0 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT re-broadcasts the GBC packet immediately - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GBC/BV-21 - * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2, E.3 and E.4 - */ - testcase TC_GEONW_PON_GBC_BV_21() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GBC_BV_21(); - - } // end TC_GEONW_PON_GBC_BV_21 - - } // end geoGeoBroadcast - - // 6.2.2.10 - group geoTopologicallyScopedBroadcast { - - /** - * @desc Check that a TSB request over upper Gn SAP triggers the origination of a TSB - * packet - *
- * Pics Selection: PICS_GN_TSB_SRC - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a TSB packet - * } - * then { - * the IUT broadcasts a TSB packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.2 - */ - testcase TC_GEONW_PON_TSB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BV_01(); - - } // end TC_GEONW_PON_TSB_BV_01 - - /** - * @desc Check that a received TSB packet is triggering re-broadcasting if received for the first time - *
- * Pics Selection: PICS_GN_TSB_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a TSB packet - * containing Basic Header - * containing RHL field - * indicating HL1 higher than 1 - * } - * then { - * the IUT re-broadcasts the TSB packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 - */ - testcase TC_GEONW_PON_TSB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BV_02(); - - } // end TC_GEONW_PON_TSB_BV_02 - - /** - * @desc Check that a received TSB packet is not triggering re-broadcasting if received for the second or - * more time - *
- * Pics Selection: PICS_GN_TSB_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received a TSB packet from ItsNodeB - * containing Basic Header - * containing RHL field - * indicating HL1 higher than 1 - * containing TSB Extended Header - * containing SN field - * indicating value SN1 and - * the IUT having re-broadcast the TSB packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same TSB packet from ItsNodeD - * containing Basic Header - * containing RHL field - * indicating HL1 - 1 - * containing TSB Extended Header - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not re-broadcast the TSB packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BO-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 - */ - testcase TC_GEONW_PON_TSB_BO_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BO_03(); - - } // end TC_GEONW_PON_TSB_BO_03 - - /** - * @desc Check that the protocol header fields (RHL) are correctly updated during a TSB re- - * broadcasting step - *
- * Pics Selection: PICS_GN_TSB_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a TSB packet - * containing Basic Header - * containing RHL field - * indicating HL1 - * containing Common Header - * containing MHL field - * indicating value MHL1 - * } - * then { - * the IUT re-broadcasts the TSB packet - * containing Basic Header - * containing RHL field - * indicating value (HL1 -1) - * containing Common Header - * containing MHL field - * indicating value MHL1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV-04 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 - */ - testcase TC_GEONW_PON_TSB_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BV_04(); - - } // end TC_GEONW_PON_TSB_BV_04 - - /** - * @desc Check that the RHL restriction is correctly handled at a TSB re-broadcasting step - *
- * Pics Selection: PICS_GN_TSB_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a TSB packet - * containing Basic Header - * containing RHL field - * indicating 1 - * } - * then { - * the IUT does not re-broadcast the TSB packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BO-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 - */ - testcase TC_GEONW_PON_TSB_BO_05() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BO_05(); - - } // end TC_GEONW_PON_TSB_BO_05 - - /** - * @desc Check that a received TSB packet is passed over the Gn SAP to the correct upper protocol if it is - * received for the first time - *
- * Pics Selection: PICS_GN_TSB_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a TSB packet - * } - * then { - * the IUT passes the received TSB packet to the correct Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BV-06 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 - */ - testcase TC_GEONW_PON_TSB_BV_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BV_06(); - - } // end TC_GEONW_PON_TSB_BV_06 - - /** - * @desc Check that a received TSB packet is not passed over the Gn SAP if it is received for the second - * or more time - *
- * Pics Selection: PICS_GN_TSB_DST - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received a TSB packet from ItsNodeB - * containing Basic Header - * containing RHL field - * indicating HL1 higher than 1 - * containing TSB Extended Header - * containing SN field - * indicating value SN1 and - * the IUT having passed the received TSB packet to the correct Upper Layer protocol - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same TSB packet from ItsNodeD - * containing Basic Header - * containing RHL field - * indicating HL1 - 1 - * containing TSB Extended Header - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not pass the received TSB packet to any Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/TSB/BO-07 - * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 - */ - testcase TC_GEONW_PON_TSB_BO_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_TSB_BO_07(); - - } // end TC_GEONW_PON_TSB_BO_07 - - } // end geoTopologicallyScopedBroadcast - - // 6.2.2.11 - group geoSingleHopBroadcast { - - /** - * @desc Check that a SHB request over upper Gn SAP triggers the origination of a SHB - * packet - *
- * Pics Selection: PICS_GN_SHB_SRC - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a SHB packet - * } - * then { - * the IUT broadcasts the SHB packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SHB/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.10.2 - */ - testcase TC_GEONW_PON_SHB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_SHB_BV_01(); - - } // end TC_GEONW_PON_SHB_BV_01 - - /** - * @desc Check that a received SHB packet is passed over the Gn SAP to the correct upper protocol if it is - * received for the first time - *
- * Pics Selection: PICS_GN_SHB_DST - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a SHB packet - * } - * then { - * the IUT passes the received SHB packet to the Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/SHB/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.10.3 - */ - testcase TC_GEONW_PON_SHB_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_SHB_BV_02(); - - } // end TC_GEONW_PON_SHB_BV_02 - - } // end geoSingleHopBroadcast - - // 6.2.2.12 - group geoGeoAnycast { - - /** - * @desc Check that GAC request over upper Gn SAP triggers broadcasting of a GAC packet if the IUT is within the Destination Area - *
- * Pics Selection: PICS_GN_GAC_SRC - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GAC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT broadcasts the GAC packet - * containing DestinationArea - * indicating AREA1 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-01 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.2 - */ - testcase TC_GEONW_PON_GAC_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_01(); - - } // end TC_GEONW_PON_GAC_BV_01 - - /** - * @desc Check that a GAC request over upper Gn SAP triggers line forwarding if the IUT is outside the Destination Area - *
- * Pics Selection: PICS_GN_GAC_SRC AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GAC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects ItsNodeB as the next hop and - * the IUT sends the GAC packet (see note) - * containing DestinationArea - * indicating AREA2 - * } - * } - * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-02 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.2, Annex D.2 - */ - testcase TC_GEONW_PON_GAC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_02(); - - } // end TC_GEONW_PON_GAC_BV_02 - - /** - * @desc Check that a received GAC packet is not triggering forwarding or re-broadcasting if the IUT - * is within the Destination Area - *
- * Pics Selection: PICS_GN_GAC_FWD - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * IUT does not re-broadcast the received GAC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-03 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_03(); - - } // end TC_GEONW_PON_GAC_BV_03 - - /** - * @desc Check that a received GAC packet is triggering line forwarding if received out of its - * destination area for the first time - *
- * Pics Selection: PICS_GN_GAC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects ItsNodeB as the next hop and - * the IUT forwards the GAC packet (see note) - * } - * } - * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-04 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3, Annex E.2 - */ - testcase TC_GEONW_PON_GAC_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_04(); - - } // end TC_GEONW_PON_GAC_BV_04 - - /** - * @desc Check that a received GAC packet is not triggering line forwarding if received out of its - * destination area for the second or more time - *
- * Pics Selection: PICS_GN_GAC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * the IUT having received Beacon information from ItsNodeD - * the IUT having received a GAC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value HL1 higher than 1 - * containing GAC Extended Header - * containing SN field - * indicating value SN1 and - * containing DestinationArea - * indicating AREA2 - * the IUT having forwarded the GAC packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GAC packet from other neighbour - * containing Basic Header - * containing RHL field - * indicating value lower than HL1 - * containing GAC Extended Header - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not forward the received GAC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BO-05 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BO_05() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BO_05(); - - } // end TC_GEONW_PON_GAC_BO_05 - - /** - * @desc Check that the protocol header fields (RHL) are correctly updated during a GAC - * forwarding step - *
- * Pics Selection: PICS_GN_GAC_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating value HL1 higher than 1 - * containing Common Header - * containing MHL field - * indicating value MHL1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects the ItsNodeB as the next hop - * the IUT forwards the GAC packet - * containing Basic Header - * containing RHL field - * indicating value (HL1 - 1) - * containing Common Header - * containing MHL field - * indicating value MHL1 - * containing DestinationArea - * indicating AREA2 - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-06 - * @reference EN 302 636-4-1 [1], clauses 9.3.6.3 and 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_06(); - - } // end TC_GEONW_PON_GAC_BV_06 - - /** - * @desc Check that the RHL restriction is correctly handled at a GAC forwarding step - *
- * Pics Selection: PICS_GN_GAC_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating 1 - * containing GAC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT does not forward the GAC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BO-07 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BO_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BO_07(); - - } // end TC_GEONW_PON_GAC_BO_07 - - /** - * @desc Check that a received GAC packet is passed over the Gn SAP to the correct upper - * protocol if it is received for the first time within the GAC destination area - *
- * Pics Selection: PICS_GN_GAC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT passes the received GAC packet to the correct Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-08 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BV_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_08(); - - } // end TC_GEONW_PON_GAC_BV_08 - - /** - * @desc Check that a received GAC packet is not passed over the Gn SAP if it is received for - * the second or more time - *
- * Pics Selection: PICS_GN_GAC_DST - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received a GAC packet from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating HL1 - * containing GAC Extended Header - * containing SN field - * indicating value SN1 and - * containing DestinationArea - * indicating AREA1 and - * the IUT having passed the received GAC packet to the correct Upper Layer protocol - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GAC packet from ItsNodeB - * containing Basic Header - * containing RHL field - * indicating value lower than HL1 - * containing GAC Extended Header - * containing SN field - * indicating value SN1 - * } - * then { - * the IUT does not pass the received GAC packet to any Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BO-09 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BO_09() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BO_09(); - - } // end TC_GEONW_PON_GAC_BO_09 - - /** - * @desc Check that a received GAC packet is not passed over the Gn SAP if it is received for the - * first time outside the GAC destination area - *
- * Pics Selection: PICS_GN_GAC_DST - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT does not pass the received GAC packet to any Upper Layer protocol - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-10 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 - */ - testcase TC_GEONW_PON_GAC_BV_10() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_10(); - - } // end TC_GEONW_PON_GAC_BV_10 - - /** - * @desc Check that a received GAC packet is discarded when indicating a too big GeoArea - *
- * Pics Selection: PICS_GN_GAC_FWD - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GAC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating a geoArea bigger than itsGnMaxGeoAreaSize - * } - * then { - * the IUT does not forward the received GAC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BO-11 - * @reference EN 302 636-4-1 [1], Annex B.3 - */ - testcase TC_GEONW_PON_GAC_BO_11() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BO_11(); - - } // end TC_GEONW_PON_GAC_BO_11 - - /** - * @desc Check that a GAC request over upper Gn SAP triggers immediate broadcasting of a - * GAC packet if the IUT is outside the Destination Area - *
- * Pics Selection: PICS_GN_GAC_SRC AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF02 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeB - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GAC packet - * containing TrafficClass.SCF set to 1 - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT broadcasts the packet immediately - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/GAC/BV-13 - * @reference EN 302 636-4-1 [1], clauses 9.3.12.2 - */ - testcase TC_GEONW_PON_GAC_BV_13() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_GAC_BV_13(); - - } // end TC_GEONW_PON_GAC_BV_13 - - } // end geoGeoAnycast - - // 6.2.2.13 - group geoGeoBroadcastCbfAlgorithm { - - /** - * @desc Check that a received GBC packet is discarded if received twice or more - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * the IUT having received a GBC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * the IUT having saved the packet into CBF buffer - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet from ItsNodeD - * } - * then { - * the IUT removes the GBC packet from the CBF buffer - * the IUT discards the new received GBC packet - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-01 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_01(); - - } // end TC_GEONW_PON_BCA_BV_01 - - /** - * @desc Check that a received GBC packet is triggering contention if received for the first time from a known sender - * when inside of the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT saves the GBC packet into the CBF buffer and - * the IUT starts the contention timer and - * the IUT re-broadcasts the received GBC packet - * upon expiry of the contention timer - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-02 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_02(); - - } // end TC_GEONW_PON_BCA_BV_02 - - /** - * @desc Check that a received GBC packet from outside of the destination area is triggering line - * forwarding if received for the first time when IUT is outside of the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received Beacon information from ItsNodeC - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects ItsNodeB as next hop ITS station and - * the IUT forwards the GBC packet (see note) - * } - * } - * - * NOTE: Next hop ITS Statoin being identified by the MAC layer address of ItsNodeB - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-03 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_03(); - - } // end TC_GEONW_PON_BCA_BV_03 - - /** - * @desc Check that a received GBC packet from inside of the destination area is discarded if - * received for the first time when IUT is outside of the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT discards the received GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BO-04 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BO_04(); - - } // end TC_GEONW_PON_BCA_BO_04 - - /** - * @desc Check that a received GBC packet is triggering contention if received for the first time - * when IUT is inside of the destination area from an unknown sender - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT not having received any message from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT saves the GBC packet into the CBF buffer and - * the IUT starts the contention timer set to CBF_MAX and - * the IUT broadcasts the received GeoBroedcast packet - * upon expiry of the contention timer - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-05 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_05(); - - } // end TC_GEONW_PON_BCA_BV_05 - - /** - * @desc Check that a received GBC packet from outside of the destination area is triggering re-broadcast - * if received for the first time when IUT is outside of the destination area from an - * unknown sender - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT not having received any message from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT re-broadcasts the GBC packet immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-06 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_06(); - - } // end TC_GEONW_PON_BCA_BV_06 - - /** - * @desc Check that a received GBC packet is rebroadcasted if received for the first time - * when IUT is outside of the destination area from a known sender having an uncertain position (PAI == 0). - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * containing Beacon ExtendedHeader - * containing SOPV field - * containing PAI - * set to '0' - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT re-broadcasts the GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-07 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_07(); - - } // end TC_GEONW_PON_BCA_BV_07 - - /** - * @desc Check that a received GBC packet is triggering contention if received for the first time - * when IUT is inside of the destination area from an unknown sender - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD - * containing Beacon ExtendedHeader - * containing SOPV field - * containing PAI - * set to '0' - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT saves the GBC packet into the CBF buffer and - * the IUT starts the contention timer set to CBF_MAX and - * the IUT re-broadcasts the received GeoBroedcast packet - * upon expiry of the contention timer - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BCA/BV-08 - * @reference EN 302 636-4-1 [1], Annex E.3 - */ - testcase TC_GEONW_PON_BCA_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BCA_BV_08(); - - } // end TC_GEONW_PON_BCA_BV_08 - - /** - * @desc Check that a received GBC packet is discarded if received more than MAX_COUNTER - * times when IUT is inside of the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF06 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeF and - * the IUT having received a GBC packet GBC1 from ItsNodeF - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * the IUT having saved the packet into CBF buffer - * the IUT having received MAX_COUNTER - 1 times the GBC1 packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet GBC1 - * } - * then { - * the IUT removes GBC1 from the CBF buffer - * the IUT discards the new received GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-01 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_01(); - - } // end TC_GEONW_PON_BAA_BV_01 - - /** - * @desc Check that a received GBC packet is discarded if received more than 1 times when IUT - * is inside of the destination area and inside the sectorial area of the GBC packet Sender - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF05 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeE and - * the IUT having received a GBC packet GBC1 from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * the IUT having saved the packet into CBF buffer - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet GBC1 from ItsNodeE - * the IUT is inside the sectorial area of ItsNodeB - * } - * then { - * the IUT removes GBC1 from the CBF buffer - * the IUT discards the new received GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-02 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_02(); - - } // end TC_GEONW_PON_BAA_BV_02 - - /** - * @desc Check that a received GBC packet is triggering contention if received more than 1 times when the IUT - * is inside of the destination area and outside the sectorial area of the GBC packet Sender (Angle_FSR > Angle_TH) - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF06 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeF and - * the IUT having received a GBC packet GBC1 from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * the IUT having saved the packet into CBF buffer - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet GBC1 from ItsNodeF - * the IUT is outside the sectorial area of ItsNodeB - * } - * then { - * the IUT saves the GBC packet GBC1 from ItsNodeF and - * the IUT starts the contention timer and - * the IUT re-broadcasts the received GBC packet - * upon expiry of the contention timer - * } - * } - * - * Note: In this configuration IUT is outside sectorial area of ItsNodeB to the angle FSR - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-03 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_03(); - - } // end TC_GEONW_PON_BAA_BV_03 - - /** - * @desc Check that a received GBC packet with Unicast MAC destination is triggering line - * forwarding if received for the first time when IUT is inside the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF05 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeE and - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeE - * addressed to IUT's link-layer address - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT selects ItsNodeB as the next hop ITS station and - * the IUT forwards the GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-04 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_04(); - - } // end TC_GEONW_PON_BAA_BV_04 - - /** - * @desc Check that a received GBC packet with Unicast MAC destination is triggering - * rebroadcast if received for the first time when IUT is inside the destination area. - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF05 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeE - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeE addressed to IUT's link-layer address - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT saves the GBC packet into the CBF buffer and - * the IUT starts the contention timer set to CBF_MAX and - * the IUT re-broadcasts the received GBC packet - * upon expiry of the contention timer - * } - * } - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-05 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_05(); - - } // end TC_GEONW_PON_BAA_BV_05 - - /** - * @desc Check that a received GBC packet with Broadcast destination is triggering contention if - * received for the first time from known sender when IUT is inside the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF05 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeE - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeE - * addressed to broadcast link-layer address - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT calculates and starts the contention timer and - * the IUT re-broadcasts the received GBC packet - * upon expiry of the contention timer - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-06 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_06(); - - } // end TC_GEONW_PON_BAA_BV_06 - - /** - * @desc Check that a received GBC packet from outside the destination area is triggering line - * forwarding if received for the first time from known sender when IUT is outside the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT selects ItsNodeB as the next hop ITS station and - * the IUT forwards the GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-07 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_07(); - - } // end TC_GEONW_PON_BAA_BV_07 - - /** - * @desc Check that a received GBC packet with from inside the destination area is discarded if - * received for the first time from known sender when IUT is outside the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the IUT having received Beacon information from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT discards the received GBC packet - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BO-08 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BO_08() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BO_08(); - - } // end TC_GEONW_PON_BAA_BO_08 - - /** - * @desc Check that a received GBC packet with Broadcast MAC destination is triggering - * contention if received for the first time from an unknown sender when IUT is inside the - * destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF05 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT not having received any message from ItsNodeE - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet from ItsNodeE - * addressed to link-layer broadcast address - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * } - * then { - * the IUT saves the GBC packet into the CBF buffer and - * the IUT starts the contention timer set to CBF_MAX and - * the IUT re-broadcasts the received GBC packet - * upon expiry of the contention timer - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-09 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_09(); - - } // end TC_GEONW_PON_BAA_BV_09 - - /** - * @desc Check that a received GBC packet is triggering re-broadcast if received from unknown - * sender for the first time when IUT is outside the destination area - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF04 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeC and - * the IUT not having received any message from ItsNodeD - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet generated by ItsNodeC from ItsNodeD - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA2 - * } - * then { - * the IUT re-broadcasts the GBC packet immediately - * } - * } - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-10 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_10(); - - } // end TC_GEONW_PON_BAA_BV_10 - - /** - * @desc Check that a received GBC packet is triggering contention if received more than 1 times when IUT - * is inside the destination area and outside the sectorial area of the GBC packet Sender (Dist_R > Dist_F) - *
- * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' - * Config Id: CF07 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having received Beacon information from ItsNodeD and - * the IUT having received a GBC packet GBC1 from ItsNodeB - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing DestinationArea - * indicating AREA1 - * the IUT having saved packet into the CBF buffer - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives the same GBC packet GBC1 from ItsNodeD - * the IUT is outside the sectorial area of ItsNodeB - * } - * then { - * the IUT saves the GBC packet into the CBF buffer and - * the IUT starts the contention timer and - * the IUT re-broadcasts the received GBC packet - * upon expiry of the contention timer - * } - * } - * - * Note: In this configuration IUT is outside sectorial area of ItsNodeB because of dist_R > dist_F - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/PON/BAA/BV-11 - * @reference EN 302 636-4-1 [1], Annex E.4 - */ - testcase TC_GEONW_PON_BAA_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_PON_BAA_BV_11(); - - } // end TC_GEONW_PON_BAA_BV_11 - - } // end geoGeoBroadcastCbfAlgorithm - - } // end geoProtocolOperation - - // 6.2.3 Capacities - group geoCapacities { - - // 6.2.3.1 - group geoCapLocationService { - - /** - * @desc Test of LS buffer capacity according to its GnLocationServicePacketBufferSize parameter and - * the overflow handling procedure - *
- * Pics Selection: PICS_GN_LS_REQ_SRC - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeA and - * the IUT having received Beacon information from ItsNodeB and - * the IUT having been requested to send multiple GUC packets to ItsNodeA - * containing TrafficClass.SCF set to 1 and - * the IUT having sent a LS_REQUEST packet and - * the IUT not having received a LS_REPLY packet - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a GUC packet to ItsNodeA - * containing TrafficClass.SCF set to 1 and - * the location service buffer capacity exceeded (see note 1) - * } - * then { - * the IUT removes the older packet(s) in the location service buffer and, - * the IUT inserts the new received packet at the end of the location service buffer (see note 2) - * } - * } - * NOTE 1: The amount of stored data exceeds Location Service buffer capacity defined by the - * itsGnLocationServicePacketBufferSize MIB parameter - * NOTE 2: Buffered packets will be delivered upon reception of LS_REPLY message - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/CAP/LOS/BV-01 - * @reference EN 302 636-4-1 [1], clauses 7.4.3 - */ - testcase TC_GEONW_CAP_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - f_GEONW_CAP_LOS_BV_01(); - - } // end TC_GEONW_CAP_LOS_BV_01 - - } // end geoCapLocationService - - // 6.2.3.2 - group geoCapForwardingPacketBuffer { - - /** - * @desc Test of UC forwarding buffer capacity according to itsGnUcForwardingPacketBufferSize - * parameter and the overflow handling procedure - *
- * Pics Selection: PICS_GN_GUC_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeB and - * the IUT having received multiple GUC packets addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC - * containing TrafficClass.SCF set to 1 - * containing Basic Header - * containing RHL field - * indicating HL1 higher than 1 - * the UC forwarding packet buffer capacity exceeded (see note 1) - * } - * then { - * the IUT removes the older packet(s) in the UC forwarding packet buffer and, - * the IUT inserts the new received GUC packet at the end of the UC forwarding packet buffer (see note 2) - * } - * } - * NOTE 1: The amount of stored data exceeds UC forwarding packet capacity defined by the - * itsGnUcForwardingPacketBufferSize MIB parameter - * NOTE 2: Buffered packets will be delivered upon reception of Beacon message from ItsNodeB - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/CAP/FPB/BV-01 - * @reference EN 302 636-4-1 [1], clauses 7.5.3 - */ - testcase TC_GEONW_CAP_FPB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_CAP_FPB_BV_01(); - - } // end TC_GEONW_CAP_FPB_BV_01 - - /** - * @desc Test of BC forwarding buffer capacity according to itsGnBcForwardingPacketBufferSize - * parameter and the overflow handling procedure - *
- * Pics Selection: PICS_GN_GBC_FWD - * Config Id: CF03 - * Initial conditions: - * with { - * the IUT being in the "initial state" and - * the IUT having no Location Table Entry for ItsNodeB - * the IUT having received multiple GBC packets - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing GBC Destination Area - * indicating AREA2 - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT receives a GBC packet - * containing TrafficClass.SCF set to 1 - * containing GBC Extended Header - * containing GBC Destination Area - * indicating AREA2 and - * the BC forwarding packet buffer capacity exceeded (see note 1) - * } - * then { - * the IUT removes the older packet(s) in the BC forwarding packet buffer and, - * the IUT inserts the new received GBC packet at the end of the BC forwarding packet buffer (see note 2) - * } - * } - * NOTE 1: The amount of stored data exceeds BC forwarding buffer capacity defined by the - * itsGnBcForwardingPacketBufferSize MIB parameter - * NOTE 2: Buffered packets will be delivered upon reception of Beacon message from ItsNodeB - * - *- * - * @see ETSI TS 102 871-2 v1.3.1 TP/GEONW/CAP/FPB/BV-02 - * @reference EN 302 636-4-1 [1], clauses 7.5.3 - */ - testcase TC_GEONW_CAP_FPB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { - - f_GEONW_CAP_FPB_BV_02(); - - } // end TC_GEONW_CAP_FPB_BV_02 - - } // end geoCapForwardingPacketBuffer - - } // end geoCapacities - -} // end ItsGeoNetworking_TestCases - - \ No newline at end of file +/** + * @author ETSI / STF405 / STF449 / STF484 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestCases.ttcn $ + * $Id: ItsGeoNetworking_TestCases.ttcn 2700 2017-05-29 13:17:49Z berge $ + * @desc GeoNetworking Testcases + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsGeoNetworking_TestCases { + + // LibIts + import from LibItsGeoNetworking_TestSystem all; + + // Its + import from ItsGeoNetworking_TpFunctions all; + + // 6.2.1 + group geoFormatingAndDataValidity { + + // 6.2.1.1 + group geoFdvBasicHeader { + + /** + * @desc Check defined values of default Gn parameters in the basic header + *
+ * Pics Selection: PICS_GN_BASIC_HEADER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet + * } + * then { + * the IUT sends a GBC packet + * containing a correctly formatted Basic Header + * containing version field + * set to itsGnProtocolVersion MIB parameter + * containing RHL field + * set to itsGnDefaultHopLimit MIB parameter + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/BAH/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.2 , 8.6.2 and Annex G + */ + testcase TC_GEONW_FDV_BAH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_BAH_BV_01(); + + } // end TC_GEONW_FDV_BAH_BV_01 + + /** + * @desc Check discard of packet having incorrect version + *
+ * Pics Selection: PICS_GN_BASIC_HEADER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * the IUT having received a SHB packet from ItsNodeB + * containing a correctly formatted Basic Header + * containing version field + * set to value equal to itsGnProtocolVersion MIB parameter + * and the IUT having passed the received SHB packet to Upper Layer + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a SHB packet from ItsNodeB + * containing a correctly formatted Basic Header + * containing version field + * set to value not equal to itsGnProtocolVersion MIB parameter + * } + * then { + * the IUT discards the received SHB packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/BAH/BI-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.3 + */ + testcase TC_GEONW_FDV_BAH_BI_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_BAH_BI_02(); + + } // end TC_GEONW_FDV_BAH_BI_02 + + } // end geoFdvBasicHeader + + // 6.2.1.2 + group geoFdvCommonHeader { + + /** + * @desc Common GeoNetworking header validity test (PL field) + *
+ * Pics Selection: PICS_GN_COMMON_HEADER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a Beacon message + * } + * then { + * the IUT sends a GeoNetworking message + * containing a correctly formatted Common Header + * containing HT field + * set to '1' (BEACON) + * containing HST field + * set to '0' (UNSPECIFIED) + * containing PL field + * set to '0' + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/COH/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.6 and 9.3.6 + */ + testcase TC_GEONW_FDV_COH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_COH_BV_01(); + + } // end TC_GEONW_FDV_COH_BV_01 + + /** + * @desc Common GeoNetworking header validity test (PL field) + *
+ * Pics Selection: PICS_GN_COMMON_HEADER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a SHB packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '5' (TSB) + * containing HST field + * set to '0' (SINGLE_HOP) + * containing MHL field + * set to '1' + * containing PL field + * set to the length of the included payload + * containing a payload + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/COH/BV-02 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.4, 9.3.4 and 9.3.10 + */ + testcase TC_GEONW_FDV_COH_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_COH_BV_02(); + + } // end TC_GEONW_FDV_COH_BV_02 + + /** + * @desc Check defined values of default Gn parameters in the common header + *
+ * Pics Selection: PICS_GN_COMMON_HEADER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet + * } + * then { + * the IUT sends a GBC packet + * containing a correctly formatted Common Header + * containing Flags field + * indicating value equalling the itsGnIsMobile MIB parameter + * containing MHL field + * set to itsGnDefaultHopLimit MIB parameter + * } + * } + *+ * + * @version 0.0.11 + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/COH/BV-03 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.2, 9.3.4 and Annex G + */ + testcase TC_GEONW_FDV_COH_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_COH_BV_03(); + + } // end TC_GEONW_FDV_COH_BV_03 + + /** + * @desc Check that a received TSB packet is discarded if received with RHL > MHL + *
+ * Pics Selection: PICS_GN_COMMON_HEADER + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a TSB packet + * containing Basic Header + * containing RHL field + * indicating HL1 higher than MHL1 + * containing Common Header + * containing MHL field + * indicating MHL1 + * } + * then { + * the IUT discards the TSB packet + * } + * } + *+ * + * @version 0.0.11 + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/COH/BO-04 + * @reference EN 302 636-4-1 [1], clauses 9.3.5 + */ + testcase TC_GEONW_FDV_COH_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_FDV_COH_BO_04(); + + } // end TC_GEONW_FDV_COH_BV_04 + + } // end geoFdvCommonHeader + + // 6.2.1.3 + group geoFdvBeacon { + + /** + * @desc Beacon header validity test + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a Beacon packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '1' (BEACON) + * containing HST field + * set to '0' (UNSPECIFIED) + * containing NH field + * set to '0' (UNSPECIFIED) + * containing Extended Header + * containing SOPV + * indicating LPV of the IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/BEA/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.6 and 9.3.6 + */ + testcase TC_GEONW_FDV_BEA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_BEA_BV_01(); + + } // end TC_GEONW_FDV_BEA_BV_01 + + /** + * @desc GeoNetworking address validity test + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a Beacon packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing SOPV field + * containing GN_ADDR field + * containing ST field + * indicating the ITS Station type + * containing SCC field + * indicating the ITS Station country code + * } + * } + * NOTE: Correct Source GeoNetworking address value: itsGnLocalGnAddr MIB parameter value. + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/BEA/BV-02 + * @reference EN 302 636-4-1 [1], clauses 6.3 and 8.8.6.2 + */ + testcase TC_GEONW_FDV_BEA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_BEA_BV_02(); + + } // end TC_GEONW_FDV_BEA_BV_02 + + /** + * @desc Local Position Vector validity test, involving comparison against sensor input data + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a Beacon packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correct SOPV field + * indicating the latest position of the IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/BEA/BV-03 + * @reference EN 302 636-4-1 [1], clauses 8.5.2.2 and 8.8.6.2 + */ + testcase TC_GEONW_FDV_BEA_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_BEA_BV_03(); + + } // end TC_GEONW_FDV_BEA_BV_03 + + /** + * @desc Local Position Vector validity test, involving timestamp comparison against sensor input data + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a Beacon packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correct SOPV field + * indicating the timestamp value corresponding to the sensor acquisition time of position data + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/BEA/BV-04 + * @reference EN 302 636-4-1 [1], clauses 8.5.2.2 and 8.8.6.2 + */ + testcase TC_GEONW_FDV_BEA_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_BEA_BV_04(); + + } // end TC_GEONW_FDV_BEA_BV_04 + + } // end geoFdvBeacon + + // 6.2.1.4 + group geoFdvGeoUnicast { + + /** + * @desc GUC header validity + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing HST field + * set to '0' (UNSPECIFIED) + * containing GUC Extended Header + * containing DEPV field + * indicating position of the ItsNodeB + * containing SOPV field + * indicating position of the IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/GUC/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.8.2.2 and 9.3.8 + */ + testcase TC_GEONW_FDV_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_GUC_BV_01(); + + } // end TC_GEONW_FDV_GUC_BV_01 + + } // end geoFdvGeoUnicast + + // 6.2.1.5 + group geoFdvGeoBroadcast { + + /** + * @desc GBC header validity + *
+ * Pics Selection: PICS_GN_GBC_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from the ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '4' (GEOBROADCAST) + * containing GBC Extended Header + * containing SOPV field + * indicating position of the IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/GBC/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.5.2 and 9.3.11 + */ + testcase TC_GEONW_FDV_GBC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_GBC_BV_01(); + + } // end TC_GEONW_FDV_GBC_BV_01 + + } // end geoFdvGeoBroadcast + + // 6.2.1.6 + group geoFdvGeoAnycast { + + /** + * @desc GAC header validity + *
+ * Pics Selection: PICS_GN_GAC_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from the ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GAC packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '3' (GEOANYCAST) + * containing GAC Extended Header + * containing SOPV field + * indicating position of IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/GAC/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.5.2 and 9.3.12 + */ + testcase TC_GEONW_FDV_GAC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_GAC_BV_01(); + + } // end TC_GEONW_FDV_GAC_BV_01 + + } // end geoFdvGeoAnycast + + // 6.2.1.7 + group geoFdvSingleHopBroadcast { + + /** + * @desc SHB header validity + *
+ * Pics Selection: PICS_GN_SHB_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from the ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a SHB packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '5' (TSB) + * containing HST field + * set to '0' (SINGLE_HOP) + * containing MHL field + * set to '1' + * containing Extended Header + * containing SOPV + * indicating LPV of the IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/SHB/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 9.3.4, 8.8.4.2 and 9.3.10 + */ + testcase TC_GEONW_FDV_SHB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_SHB_BV_01(); + + } // end TC_GEONW_FDV_SHB_BV_01 + + } // end geoFdvSingleHopBroadcast + + // 6.2.1.8 + group geoFdvTopologicallyScopedBroadcast { + + /** + * @desc TSB header validity + *
+ * Pics Selection: PICS_GN_TSB_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from the ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a TSB packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '5' (TSB) + * containing HST field + * set to '1' (MULTI_HOP) + * containing TSB Extended Header + * containing SOPV field + * indicating position of the IUT + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/FDV/TSB/BV-01 + * @reference EN 302 636-4-1 [1], clauses 8.7.2, 8.7.4, 8.8.3.2 and 9.3.9 + */ + testcase TC_GEONW_FDV_TSB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_FDV_TSB_BV_01(); + + } // end TC_GEONW_FDV_TSB_BV_01 + + } // end geoFdvTopologicallyScopedBroadcast + + } // end geoFormatingAndDataValidity + + // 6.2.2 + group geoProtocolOperation { + + // 6.2.2.1 + group geoLocationTable { + + /** + * @desc Check insertion of new entries into location table from Beacon header + *
+ * Pics Selection: PICS_GN_GUC_SRC AND PICS_GN_BEACON_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from the ItsNodeB and + * the lifetime of the ItsNodeB Location Table entry not being expired + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received from ItsNodeB + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.10.3, 9.3.6.2 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_01(); + + } // end TC_GEONW_PON_LOT_BV_01 + + /** + * @desc Check insertion of new entries into location table from LS Reply data + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having been requested to send a first GUC packet to ItsNodeA and + * the IUT having sent a LS_REQUEST packet + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating ItsNodeA + * the IUT having received a LS_REPLY packet from ItsNodeA + * containing SOPV field and + * the IUT having sent the GUC packet to ItsNodeA and + * the lifetime of the ItsNodeA Location Table entry not being expired + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a second GUC packet to ItsNodeA + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating ItsNodeA + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the LS_REPLY packet received from ItsNodeA + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.4, 9.3.7.1.2 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_02(); + + } // end TC_GEONW_PON_LOT_BV_02 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_BEACON_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: Beacon packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_01(); + + } // end TC_GEONW_PON_LOT_BV_03_01 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_GUC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: GUC packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_02(); + + } // end TC_GEONW_PON_LOT_BV_03_02 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_GAC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: GAC packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_03(); + + } // end TC_GEONW_PON_LOT_BV_03_03 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_GBC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: GBC packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_04(); + + } // end TC_GEONW_PON_LOT_BV_03_04 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_TSB_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: TSB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_05(); + + } // end TC_GEONW_PON_LOT_BV_03_05 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_SHB_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: SHB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_06(); + + } // end TC_GEONW_PON_LOT_BV_03_06 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_LS_REQ_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: LS Request packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_07(); + + } // end TC_GEONW_PON_LOT_BV_03_07 + + /** + * @desc Check insertion of new entries into location table from extended header processing (e.g. GUC header) + *
+ * Pics Selection: PICS_GN_LS_REP_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any beacon from NODE + * the IUT having received a MESSAGE from originated by NODE + * } + * MESSAGE: LS Reply packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to NODE + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating NODE + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV of the MESSAGE received from NODE + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.9.3, 9.3.10.3, 9.3.7.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOT_BV_03_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_03_08(); + + } // end TC_GEONW_PON_LOT_BV_03_08 + + /** + * @desc Check location table entry expiration + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacons information from ItsNodeB and + * the IUT not having received beacons from ItsNodeB for the duration of itsGnLifetimeLocTE parameter (20 sec) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-04 + * @reference EN 302 636-4-1 [1], clauses 7.1.3, 9.3.8.2, 9.3.7.1.2 and Annex G + */ + testcase TC_GEONW_PON_LOT_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_04(); + + } // end TC_GEONW_PON_LOT_BV_04 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_GUC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: GUC packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_01(); + + } // end TC_GEONW_PON_LOT_BV_05_01 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_GAC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: GAC packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_02(); + + } // end TC_GEONW_PON_LOT_BV_05_02 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_GBC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: GBC packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_03(); + + } // end TC_GEONW_PON_LOT_BV_05_03 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_TSB_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: TSB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_04(); + + } // end TC_GEONW_PON_LOT_BV_05_04 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_SHB_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: SHB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_05(); + + } // end TC_GEONW_PON_LOT_BV_05_05 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_LS_REQ_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: LS Request packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_06(); + + } // end TC_GEONW_PON_LOT_BV_05_06 + + /** + * @desc Check update of entries in location table with most up-to-date position data extracted + * from common header processing (including timestamp comparison before updating) + *
+ * Pics Selection: PICS_GN_LS_REP_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a MESSAGE from ItsNodeB, + * containing Extended Header + * containing SOPV field + * indicating an older timestamp than the last Beacon packet and + * indicating a different position than the position of the last Beacon packet + * } + * MESSAGE: LS Reply packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT does not send a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * indicating GN_ADDR of ItsNodeB + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOT/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.12.3, 9.3.11.3, 9.3.9.3, 9.3.7.3, 9.3.8.2 and Annex C2 + */ + testcase TC_GEONW_PON_LOT_BV_05_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOT_BV_05_07(); + + } // end TC_GEONW_PON_LOT_BV_05_07 + + } // end geoLocationTable + + // 6.2.2.2 + group geoLocalPositionVector { + + /** + * @desc Check update of the Local position vector + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having changed its position + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates eventually a Beacon packet + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '1' (BEACON) + * containing HST field + * set to '0' (UNSPECIFIED) + * containing Extended Header + * containing SOPV field + * indicating the new position + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LPV/BV-01 + * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.2.2.2, 9.3.6.1 and Annex G + */ + testcase TC_GEONW_PON_LPV_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LPV_BV_01(); + + } // end TC_GEONW_PON_LPV_BV_01 + + } // end geoLocalPositionVector + + // 6.2.2.3 + group geoSequenceNumber { + + /** + * @desc Check initial sequence number assignment + *
+ * Pics Selection: PICS_GN_GBC_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having sent any GBC packet and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet to AREA1 + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '4' (GEOBROADCAST) + * containing GBC Extended Header + * containing SN field + * indicating value '0' + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/SQN/BV-01 + * @reference EN 302 636-4-1 [1], clauses 7.3.2, 9.3.8.2 + */ + testcase TC_GEONW_PON_SQN_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_SQN_BV_01(); + + } // end TC_GEONW_PON_SQN_BV_01 + + /** + * @desc Check the local sequence number incrementation + *
+ * Pics Selection: PICS_GN_GBC_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having sent a GBC packet to AREA1 + * containing the Sequence Number field + * indicating value SN1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet to AREA1 + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '4' (GEOBROADCAST) + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + 1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/SQN/BV-02 + * @reference EN 302 636-4-1 [1], clauses 7.2.3, 9.3.8.2 + */ + testcase TC_GEONW_PON_SQN_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_SQN_BV_02(); + + } // end TC_GEONW_PON_SQN_BV_02 + + } // end geoSequenceNumber + + // 6.2.2.4 + group geoLocationService { + + /** + * @desc Check first LS invocation for unknown Destination nodes + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeA + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '6' (LS) + * containing HST field + * set to '0' (LS_REQUEST) + * containing NH field + * set to '0' (UNSPECIFIED) + * containing LS_REQUEST Extended Header + * containing Request field + * indicating GN_ADDR of ItsNodeA + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4, 6.3 and 9.3.7.1.2 + */ + testcase TC_GEONW_PON_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_01(); + + } // end TC_GEONW_PON_LOS_BV_01 + + /** + * @desc Check absence of LS invocation for unknown Destination nodes when LS procedure is already active + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a first GUC packet to ItsNodeA and + * the IUT having sent a GeoNetworking packet + * containing a LS_REQUEST + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating ItsNodeA + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a new GUC packet to ItsNodeA + * } + * then { + * IUT does not send a second LS_REQUEST packet (see note) + * } + * } + * NOTE: at least not before the LS_REQUEST retransmission timer expires + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.2.4 and 9.3.7.1.2 + */ + testcase TC_GEONW_PON_LOS_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_02(); + + } // end TC_GEONW_PON_LOS_BV_02 + + /** + * @desc Check packet buffering into LS buffer during Location service procedure, + * including handling of LT fields in the LT packet buffer + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 and + * the IUT having sent a LS_REQUEST packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the LS_REPLY packet from ItsNodeA + * } + * then { + * the IUT sends the GUC packet addressed to ItsNodeA + * containing GUC Extended Header + * containing LT field + * indicating value (default LT value – WaitingTime (see note)) + * } + * } + * NOTE: Waiting Time == time difference between LS_REQUEST sending and LS_REPLY reception. + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-03 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.7.1.4, 9.3.8.2, 9.2.4 and 9.3.7.1.2 + */ + testcase TC_GEONW_PON_LOS_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_03(); + + } // end TC_GEONW_PON_LOS_BV_03 + + /** + * @desc Check LS buffer characteristics: FIFO type + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 + * containing payload field + * indicating value PL1 and + * the IUT having sent a LS_REQUEST packet and + * the IUT having been requested to send a second GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating LT2 + * containing payload field + * indicating value PL2 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the LS_REPLY packet from ItsNodeA and + * before expiry of LT1 and LT2 + * } + * then { + * the IUT sends GUC packet addressed to ItsNodeA + * containing payload field + * indicating value PL1 and + * the IUT sends GUC packet addressed to ItsNodeA + * containing payload field + * indicating value PL2 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-04 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.8.2, 9.2.4 and 9.3.7.1.2 + */ + testcase TC_GEONW_PON_LOS_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_04(); + + } // end TC_GEONW_PON_LOS_BV_04 + + /** + * @desc Check LS buffer characteristics: discarding upon LT expiration + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send multiple GUC packets to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating values LTx and + * the IUT having sent a LS_REQUEST packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the LS_REPLY packet from ItsNodeA after expiry of LTs + * } + * then { + * the IUT does not send any packet to ItsNodeA + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-05 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.8.2, 9.2.4 and 9.3.7.1.2 + */ + testcase TC_GEONW_PON_LOS_BV_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_05(); + + } // end TC_GEONW_PON_LOS_BV_05 + + /** + * @desc Check LS Request retransmission if no answer is received + *
+ * Pics Selection: PICS_GN_LS_REQ_RETRANSMISSION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 higher than itsGnLocationServiceTimer and + * the IUT having sent a LS_REQUEST packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT does not receive LS_REPLY packet from ItsNodeA and + * before expiration of LT1 + * } + * then { + * the IUT retransmits the LS_REQUEST packet + * upon expiry of itsGnLocationServiceTimer + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-06 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.3, 9.3.7.1.2 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOS_TI_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_TI_06(); + + } // end TC_GEONW_PON_LOS_TI_06 + + /** + * @desc Check LS Request retransmission if no answer is received + *
+ * Pics Selection: PICS_GN_LS_REQ_RETRANSMISSION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and + * the IUT having sent a LS_REQUEST packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT does not receive LS_REPLY packet from ItsNodeA and + * before expiration of LT1 + * } + * then { + * the IUT retransmits the LS_REQUEST packet itsGnLocationServiceMaxRetrans times + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-07 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOS_BV_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_07(); + + } // end TC_GEONW_PON_LOS_BV_07 + + /** + * @desc Check LS Reply generation by destination node + *
+ * Pics Selection: PICS_GN_LS_REQ_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a LS_REQUEST packet + * containing Request field + * indicating the IUT's GN_ADDR + * } + * then { + * the IUT replies with a LS_REPLY packet + * containing Common Header + * containing NH field + * set to '0' (UNSPECIFIED) + * containing LS_REPLY Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the received LS_REQUEST + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-08 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.3 and 9.3.5 + */ + testcase TC_GEONW_PON_LOS_BV_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_08(); + + } // end TC_GEONW_PON_LOS_BV_08 + + /** + * @desc Check absence of LS Reply generation for already answered LS Request packets + *
+ * Pics Selection: PICS_GN_LS_REQ_DST + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received a LS_REQUEST packet generated by ItsNodeB from ItsNodeB + * the IUT having sent a LS_REPLY packet to ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same LS_REQUEST packet from ItsNodeD + * } + * then { + * the IUT does not reply with a LS_REPLY packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BO-09 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.3 and 9.3.5 + */ + testcase TC_GEONW_PON_LOS_BO_09() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BO_09(); + + } // end TC_GEONW_PON_LOS_BO_09 + + + /** + * @desc Check LS Request forwarding + *
+ * Pics Selection: PICS_GN_LS_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a LS_REQUEST packet from ItsNodeC + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * containing LS_REQUEST Extended Header + * containing Request field + * containing GN_ADDR + * containing M_ID + * indicating value differing from the M_ID part of the GN_ADDR of the IUT + * } + * then { + * the IUT re-broadcasts the received LS_REQUEST packet + * containing Basic Header + * containing RHL field + * indicating value decreased by 1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-10 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.2 + */ + testcase TC_GEONW_PON_LOS_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_10(); + + } // end TC_GEONW_PON_LOS_BV_10 + + /** + * @desc Check LS Reply forwarding + *
+ * Pics Selection: PICS_GN_LS_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a LS_REPLY packet from ItsNodeC addressed to ItsNodeB + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * } + * then { + * the IUT forwards the received LS_REPLY packet to ItsNodeB + * containing Basic Header + * containing RHL field + * indicating value decreased by 1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-11 + * @reference EN 302 636-4-1 [1], clauses 9.3.7.2 + */ + testcase TC_GEONW_PON_LOS_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_11(); + + } // end TC_GEONW_PON_LOS_BV_11 + + /** + * @desc Check flushing of the LS buffer, initiated by the processing of a common header from the target destination + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet ItsNodeA + * containing LT field + * indicating LT1 and + * the IUT having sent a LS_REQUEST packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to it from ItsNodeA before expiry of LT1 + * } + * then { + * the IUT sends the waiting GUC packet to ItsNodeA + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-12 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.7.1.2 and 7.4.2 + */ + testcase TC_GEONW_PON_LOS_BV_12() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_12(); + + } // end TC_GEONW_PON_LOS_BV_12 + + /** + * @desc Check LS buffer characteristics: FIFO type and Lifetime + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 + * containing payload field + * indicating value PL1 and + * the IUT having sent a LS_REQUEST packet and + * the IUT having been requested to send a second GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating LT2 lower than LT1 + * containing payload field + * indicating value PL2 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the LS_REPLY packet from ItsNodeA + * after expiry of LT2 + * before expiry of LT1 + * } + * then { + * the IUT sends GUC packet addressed to ItsNodeA + * containing payload field + * indicating value PL1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-13 + * @reference EN 302 636-4-1 [1], clauses 7.4.3, 9.3.7.1.2 + */ + testcase TC_GEONW_PON_LOS_BV_13() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_13(); + + } // end TC_GEONW_PON_LOS_BV_13 + + /** + * @desc Check that GeoNetworking packets in LS buffer are discarded when LS does not complete. + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and + * the IUT having sent a LS_REQUEST packet itsGnLocationServiceMaxRetrans times + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet from ItsNodeA + * before expiration of LT1 + * } + * then { + * the IUT does not send any packet to ItsNodeA (see note) + * } + * } + * NOTE: Stored GUC packets have been discarded upon LS failure + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-14 + * @reference EN 302 636-4-1 [1], clauses 7.4.3 + */ + testcase TC_GEONW_PON_LOS_BV_14() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_14(); + + } // end TC_GEONW_PON_LOS_BV_14 + + /** + * @desc Check flushing of the LS buffer, initiated by the processing of a common header from the target destination + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet ItsNodeA + * containing LT field + * indicating LT1 and + * the IUT having sent a LS_REQUEST packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeB from ItsNodeA before expiry of LT1 + * } + * then { + * the IUT sends the waiting GUC packet to ItsNodeA + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-15 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 9.3.7.1.2 and 7.4.2 + */ + testcase TC_GEONW_PON_LOS_BV_15() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_15(); + + } // end TC_GEONW_PON_LOS_BV_15 + + /** + * @desc Check LS Request retransmission termination when indirect response is received + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and + * the IUT having sent a LS_REQUEST packet + * the IUT having retransmitted the LS_REQUEST packet less than itsGnLocationServiceMaxRetrans + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to it from ItsNodeA before expiry of LT1 + * } + * then { + * the IUT does not retransmits the LS_REQUEST packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-16 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4, 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOS_BV_16() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_16(); + + } // end TC_GEONW_PON_LOS_BV_16 + + /** + * @desc Check LS Request retransmission termination when indirect response is received + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 + * containing LT field + * indicating value LT1 higher than (itsGnLocationServiceTimer * itsGnLocationServiceMaxRetrans) and + * the IUT having sent a LS_REQUEST packet + * the IUT having retransmitted the LS_REQUEST packet less than itsGnLocationServiceMaxRetrans + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeB from ItsNodeA before expiry of LT1 + * } + * then { + * the IUT does not retransmits the LS_REQUEST packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/LOS/BV-17 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 9.3.7.1.2, 9.3.7.1.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_LOS_BV_17() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_LOS_BV_17(); + + } // end TC_GEONW_PON_LOS_BV_17 + + } // end geoLocationService + + // 6.2.2.5 + group geoForwardingPacketBuffer { + + /** + * @desc Check Source packet buffering into UC forwarding buffer for unreachable Unicast destinations + * (absence of a suitable next hop candidate) + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA (see note) and + * the IUT having been requested to send a GUC packet addressed to ItsNodeA + * containing TrafficClass.SCF set to 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from ItsNodeB + * } + * then { + * the IUT selects the ItsNodeB as the next hop and + * the IUT sends the buffered GUC packet + * } + * } + * NOTE: Location Table Entry is created by sending any GeoNetworking packet, originated by ItsNodeA, from ItsNodeC to IUT + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-01 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3, 9.3.4.2 and 9.3.8.3 + */ + testcase TC_GEONW_PON_FPB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_01(); + + } // end TC_GEONW_PON_FPB_BV_01 + + /** + * @desc Check Forwarder packet buffering into UC forwarding buffer for unreachable Unicast destinations + * (absence of a suitable next hop candidate) + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having received GUC packets addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT1 + * containing RHL field + * indicating value greater than 1 + * containing GUC Extended Header + * containing SN field + * indicating value SN1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from ItsNodeB + * } + * then { + * the IUT selects the ItsNodeB as the next hop and + * the IUT forwards the buffered GUC packet + * containing Basic Header + * containing RHL field + * indicating value decreased by 1 + * containing GUC Extended Header + * containing SN field + * indicating value SN1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, 7.5.3, 9.3.6.3 + */ + testcase TC_GEONW_PON_FPB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_02(); + + } // end TC_GEONW_PON_FPB_BV_02 + + /** + * @desc Check UC forwarding buffer characteristics: FIFO type + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having received a GUC (GEOUNI1) packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating value LT1 and + * containing RHL field + * indicating value greater than 1 + * containing GUC Extended Header + * containing SN field + * indicating value SN1 + * the IUT having received a second GUC (GEOUNI2) packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT2 + * containing RHL field + * indicating value greater than 1 + * containing GUC Extended Header + * containing SN field + * indicating value SN2 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from ItsNodeB + * before expiry of LT1 and LT2 + * } + * then { + * the IUT selects ItsNodeB as the next hop and + * the IUT forwards the GEOUNI1 buffered packet + * containing GUC Extended Header + * containing SN field + * indicating value SN1 + * the IUT forwards the GEOUNI2 buffered packet + * containing GUC Extended Header + * containing SN field + * indicating value SN2 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-03 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.3 + */ + testcase TC_GEONW_PON_FPB_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_03(); + + } // end TC_GEONW_PON_FPB_BV_03 + + /** + * @desc Check UC forwarding buffer characteristics: discarding upon LT expiration + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having received a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT1 + * containing RHL field + * indicating value greater than 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from ItsNodeB + * after expiry of LT1 + * } + * then { + * the IUT does not forward the buffered GUC packet addressed to ItsNodeA + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-03 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.3 + */ + testcase TC_GEONW_PON_FPB_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_04(); + + } // end TC_GEONW_PON_FPB_BV_04 + + /** + * @desc Check Source packet buffering into BC forwarding buffer for no GBC recipients + *
+ * Pics Selection: none + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received Beacon information from ItsNodeD and + * the IUT not having received Beacon information from ItsNodeB and + * the IUT having been requested to send a GBC packet to AREA1 + * containing TrafficClass.SCF set to 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD + * } + * then { + * the IUT broadcasts the buffered GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-06 + * @reference EN 302 636-4-1 [1], clauses 9.3.5, 7.5.3, 9.3.6.3 and 9.3.11.2 + */ + testcase TC_GEONW_PON_FPB_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_06(); + + } // end TC_GEONW_PON_FPB_BV_06 + + /** + * @desc Check BC forwarding buffer characteristics: FIFO type + *
+ * Pics Selection: none + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received Beacon information from ItsNodeD and + * the IUT not having received Beacon information from ItsNodeB and + * the IUT having been requested to send a GBC (GEOBROAD1) packet to AREA1 + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT1 + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * the IUT having been requested to send a GBC (GEOBROAD2) packet to AREA1 + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT2 + * containing GBC Extended Header + * containing SN field + * indicating value SN2 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from either ItsNodeD or ItsNodeB + * before expiry of LT1 and LT2 + * } + * then { + * the IUT broadcasts GEOBROAD1 packet + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * the IUT broadcasts GEOBROAD2 packet + * containing GBC Extended Header + * containing SN field + * indicating value SN2 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-07 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 + */ + testcase TC_GEONW_PON_FPB_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_07(); + + } // end TC_GEONW_PON_FPB_BV_07 + + /** + * @desc Check BC forwarding buffer characteristics: discarding upon LT expiration + *
+ * Pics Selection: none + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received Beacon information from ItsNodeD and + * the IUT not having received Beacon information from ItsNodeB and + * the IUT having been requested to send a GBC (GEOBROAD1) packet to AREA1 + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT1 + * the IUT having been requested to send a GBC (GEOBROAD2) packet to AREA1 + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing LT field + * indicating LT2 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD + * after expiry of LT1 and LT2 + * } + * then { + * the IUT does not broadcast any of the buffered GEOBROAD1 and GEOBROAD2 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-08 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 + */ + testcase TC_GEONW_PON_FPB_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_08(); + + } // end TC_GEONW_PON_FPB_BV_08 + + /** + * @desc Check Source packet buffering into UC forwarding buffer for handling of LT fields in absence of a suitable next hop candidate + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA and + * the IUT having been requested to send a GUC packet addressed to ItsNodeA + * containing TrafficClass.SCF set to 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from ItsNodeB + * } + * then { + * the IUT selects the ItsNodeB as the next hop and + * the IUT sends the buffered GUC packet + * containing GUC Extended Header + * containing LT field + * indicating (default LT value – WaitingTime(see note)) + * } + * } + * NOTE: WaitingTime == time difference between Upper layer packet generation and the neighbour Beacon reception + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-09 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.8.2 + */ + testcase TC_GEONW_PON_FPB_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_09(); + + } // end TC_GEONW_PON_FPB_BV_09 + + /** + * @desc Check Source packet buffering into BC forwarding buffer for handling of LT fields for no GBC recipients + *
+ * Pics Selection: none + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received Beacon information from ItsNodeD and + * the IUT not having received Beacon information from ItsNodeB and + * the IUT having been requested to send a GBC packet to AREA1 + * containing TrafficClass.SCF set to 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a Beacon packet from either ItsNodeB or ItsNodeD + * } + * then { + * the IUT broadcasts the buffered GBC packet + * containing GBC Extended Header + * containing LT field + * indicating (default LT value - WaitingTime (see note)) + * } + * } + * NOTE: WaitingTime == time difference between Upper layer packet generation and the neighbour Beacon reception + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-10 + * @reference EN 302 636-4-1 [1], clauses 7.5.3, 9.3.6.3 and 9.3.11.2 + */ + testcase TC_GEONW_PON_FPB_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_10(); + + } // end TC_GEONW_PON_FPB_BV_10 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA (see note) + * } + * + * MESSAGE : GUC packet addressed to ItsNodeA + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-11-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_11_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_11_01(); + + } // end TC_GEONW_PON_FPB_BV_11_01 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_GAC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA (see note) + * } + * + * MESSAGE : GAC packet + * containing DestinationArea + * indicating AREA2 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-11-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_11_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_11_02(); + + } // end TC_GEONW_PON_FPB_BV_11_02 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_GBC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA (see note) + * } + * + * MESSAGE : GBC packet + * containing DestinationArea + * indicating AREA2 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-11-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_11_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_11_03(); + + } // end TC_GEONW_PON_FPB_BV_11_03 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_TSB_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA (see note) + * } + * + * MESSAGE : TSB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-11-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_11_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_11_04(); + + } // end TC_GEONW_PON_FPB_BV_11_04 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_SHB_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB and + * the IUT having a Location Table Entry for ItsNodeA (see note) + * } + * + * MESSAGE : SHB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-11-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_11_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_11_05(); + + } // end TC_GEONW_PON_FPB_BV_11_05 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_GUC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB + * } + * + * MESSAGE : GUC packet addressed to ItsNodeA + * + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-12-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_12_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_12_01(); + + } // end TC_GEONW_PON_FPB_BV_12_01 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_GAC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB + * } + * + * MESSAGE : GAC packet + * containing DestinationArea + * indicating AREA2 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-12-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_12_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_12_02(); + + } // end TC_GEONW_PON_FPB_BV_12_02 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_GBC_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB + * } + * + * MESSAGE : GBC packet + * containing DestinationArea + * indicating AREA2 + * + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-12-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_12_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_12_03(); + + } // end TC_GEONW_PON_FPB_BV_12_03 + + /** + * @desc Check immediate broadcasting in absence of a suitable next hop candidate when SCF is disabled + *
+ * Pics Selection: PICS_GN_TSB_SRC + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT not having received any Beacon information from ItsNodeB + * } + * + * MESSAGE : TSB packet + * + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a MESSAGE + * containing TrafficClass.SCF set to 0 + * } + * then { + * the IUT broadcast the MESSAGE immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/FPB/BV-12-X + * @reference EN 302 636-4-1 [1], Annex D2 + */ + testcase TC_GEONW_PON_FPB_BV_12_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_FPB_BV_12_04(); + + } // end TC_GEONW_PON_FPB_BV_11_04 + + } // end geoForwardingPacketBuffer + + // 6.2.2.6 + group geoGeoNetworkingAddress { + + /** + * @desc Check the initial GeoNetworking address assignment by IUT with auto-address configuration + *
+ * Pics Selection: PICS_GN_ADDR_AUTO + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT's itsGnLocalAddrConfMethod MIB parameter is set to AUTO (0) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates a Beacon packet + * } + * then { + * the IUT sends a GeoNetworking message + * containing a correctly formatted Common Header + * containing HT field + * set to '1' (BEACON) + * containing HST field + * set to '0' (UNSPECIFIED) + * containing a Beacon Extender Header + * containing SOPV field + * containing GN_ADDR field + * indicating itsGnLocalGnAddr MIB parameter + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GNA/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.2.1.2 and 9.3.6.2 + */ + testcase TC_GEONW_PON_GNA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GNA_BV_01(); + + } // end TC_GEONW_PON_GNA_BV_01 + + /** + * @desc Check the proper functioning of duplicate address detection mechanism + *
+ * Pics Selection: PICS_GN_DAD + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having sent an SHB packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a SHB packet + * containing SHB Extended Header + * containing SOPV field + * containing GN_ADDR field + * indicating same GN_ADDR as the GN_ADDR field in the last SHB packet originated by the IUT + * } + * then { + * the IUT sends subsequent SHB packet + * containing SHB Extended Header + * containing SOPV field + * containing GN_ADDR field + * indicating different GN_ADDR as the previous used GN_ADDR + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GNA/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.2.1.4 + */ + testcase TC_GEONW_PON_GNA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GNA_BV_02(); + + } // end TC_GEONW_PON_GNA_BV_02 + + } // end geoGeoNetworkingAddress + + // 6.2.2.7 + group geoBeaconing { + + /** + * @desc Check that the IUT transmits Beacons at prescribed periodicity in the absence of other originated + * packets + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT generates Beacon packets + * } + * then { + * the IUT sends each Beacon packet + * after expiry of itsGnBeaconServiceRetransmitTimer + * and before expiry of itsGnBeaconServiceRetransmitTimer + itsGnBeaconServiceMaxJitter + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BEA/TI-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.6.2 + */ + testcase TC_GEONW_PON_BEA_TI_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_BEA_TI_01(); + + } // end TC_GEONW_PON_BEA_TI_01 + + /** + * @desc Check that the IUT resets its timer for next Beacon transmission when originating other packets + *
+ * Pics Selection: PICS_GN_BEACON_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a SHB packet + * } + * then { + * the IUT broadcasts a SHB packet and + * the IUT sends the next Beacon packet + * after expiry of itsGnBeaconServiceRetransmitTimer + * and before expiry of itsGnBeaconServiceRetransmitTimer + itsGnBeaconServiceMaxJitter + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BEA/TI-02 + * @reference EN 302 636-4-1 [1], clauses 9.2.3 and 9.3.10.2 + */ + testcase TC_GEONW_PON_BEA_TI_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_BEA_TI_02(); + + } // end TC_GEONW_PON_BEA_TI_02 + + } // end geoBeaconing + + // 6.2.2.8 + group geoGeoUnicast { + + /** + * @desc Check that a GUC request over upper Gn SAP triggers the origination of a + * GUC packet + *
+ * Pics Selection: PICS_GN_GUC_SRC AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT sends a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the Beacon information received + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.2, 9.3.6.3 + */ + testcase TC_GEONW_PON_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_01(); + + } // end TC_GEONW_PON_GUC_BV_01 + + /** + * @desc Check that a received GUC packet is routed to the correct next hop neighbour according + * to the greedy forwarding rules + *
+ * Pics Selection: PICS_GN_GUC_FWD AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * } + * then { + * the IUT selects ItsNodeB as the next hop ITS station and + * the IUT forwards the GUC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.2 + */ + testcase TC_GEONW_PON_GUC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_02(); + + } // end TC_GEONW_PON_GUC_BV_02 + + /** + * @desc Check that the protocol header fields (RHL, PV) are correctly updated at each forwarding step + *
+ * Pics Selection: PICS_GN_GUC_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the IUT having received a GUC packet (GEOUNI1) originated by ItsNodeA + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet (GEOUNI2) addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * containing Common Header + * containing MHL field + * indicating value MHL1 + * containing GUC Extended Header + * containing DEPV field + * indicating position different from the SOPV value of GEOUNI1 + * containing TST field + * indicating older value than the TimeStamp value of GEOUNI1 + * } + * then { + * the IUT selects ItsNodeB as the next hop ITS station and + * the IUT forwards GEOUNI2 + * containing Basic Header + * containing RHL field + * indicating value decreased by 1 from the incoming value + * containing Common Header + * containing MHL field + * indicating value MHL1 + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of GEOUNI1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 + */ + testcase TC_GEONW_PON_GUC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_03(); + + } // end TC_GEONW_PON_GUC_BV_03 + + /** + * @desc Check that the RHL restriction is correctly handled at the forwarding step + *
+ * Pics Selection: PICS_GN_GUC_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating 1 + * } + * then { + * the IUT does not forward the GUC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BO-04 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3 + */ + testcase TC_GEONW_PON_GUC_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BO_04(); + + } // end TC_GEONW_PON_GUC_BO_04 + + /** + * @desc Check that a received GUC packet is passed over the Gn SAP to the correct upper + * protocol if the Destination address matches the IUT address + *
+ * Pics Selection: PICS_GN_GUC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to it + * } + * then { + * the IUT passes the received GUC packet to the correct Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.4 + */ + testcase TC_GEONW_PON_GUC_BV_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_05(); + + } // end TC_GEONW_PON_GUC_BV_05 + + /** + * @desc Check that a received GUC packet is forwarded at the correct time according to the + * contention based forwarding rules + *
+ * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the distance between IUT and ItsNodeA being + * less than itsGnDefaultMaxCommunicationRange MIB attribute + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * } + * then { + * the IUT re-broadcasts the received GUC packet + * upon expiry of calculated CBF delay (see note) + * } + * } + * NOTE: The CBF delay timer value is calculated from the itsGnDefaultMaxCommunicationRange, + * itsGnGeoUnicastCbfMinTime, and itsGnGeoUnicastCbfMaxTime MIB attributes, and the distance value + * between IUT and ItsNodeC + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-06 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 + */ + testcase TC_GEONW_PON_GUC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_06(); + + } // end TC_GEONW_PON_GUC_BV_06 + + /** + * @desc Check that a received GUC packet forwarding is correctly handling the minimum delay + * value according to the contention based forwarding rules + *
+ * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the distance between IUT and ItsNodeA being + * larger than the itsGnDefaultMaxCommunicationRange MIB attribute + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * } + * then { + * the IUT re-broadcasts the received GUC packet + * upon expiry of itsGnGeoUnicastCbfMinTime delay + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-07 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 + */ + testcase TC_GEONW_PON_GUC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_07(); + + } // end TC_GEONW_PON_GUC_BV_07 + + /** + * @desc Check that GUC packet forwarding correctly avoids packet duplication according to the + * contention based forwarding rules + *
+ * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the distance between IUT and ItsNodeA being + * less than the itsGnDefaultMaxCommunicationRange MIB attribute and + * the IUT having received a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 and + * the IUT having started a CBF timer for this packet (see note) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet from ItsNodeD + * before expiration of the CBF timer + * } + * then { + * the IUT does not re-broadcast the received GUC packet + * } + * } + * NOTE: the CBF delay timer value is calculated from the itsGnDefaultMaxCommunicationRange, + * itsGnGeoUnicastCbfMinTime, and itsGnGeoUnicastCbfMaxTime MIB attributes, and the + * distance value between IUT and ItsNodeC + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-08 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 + */ + testcase TC_GEONW_PON_GUC_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_08(); + + } // end TC_GEONW_PON_GUC_BV_08 + + /** + * @desc Check that a received GUC packet is forwarded at the correct time according to the + * contention based forwarding rules when the sender is unknown + *
+ * Pics Selection: PICS_GN_GUC_FWD AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT not having received any message from ItsNodeC and + * the distance between IUT and ItsNodeA being + * less than the itsGnDefaultMaxCommunicationRange MIB attribute and + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 + * } + * then { + * the IUT re-broadcasts the received GUC packet + * upon expiry of CBF_MAX + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-10 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 + */ + testcase TC_GEONW_PON_GUC_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_10(); + + } // end TC_GEONW_PON_GUC_BV_10 + + /** + * @desc Check that a GUC request over upper Gn SAP triggers the origination of a GUC packet + *
+ * Pics Selection: PICS_GN_GUC_SRC AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeB + * } + * then { + * the IUT broadcasts a GeoNetworking packet + * containing a correctly formatted Common Header + * containing HT field + * set to '2' (GEOUNICAST) + * containing GUC Extended Header + * containing DEPV field + * indicating same position as the SOPV value of the received Beacon information + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BV-11 + * @reference EN 302 636-4-1 [1], clauses 9.3.8.3, Annex D.3 + */ + testcase TC_GEONW_PON_GUC_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BV_11(); + + } // end TC_GEONW_PON_GUC_BV_11 + + /** + * @desc Check that a received GUC packet is not triggering forwarding if received twice or more + *
+ * Pics Selection: PICS_GN_GUC_FWD AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeC and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 and + * the IUT having forwarded the GUC packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GUC packet from ItsNodeB + * containing Basic Header + * containing RHL field + * indicating HL1 - 1 + * } + * then { + * the IUT does forward the packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BO-12 + * @reference EN 302 636-4-1 [1], clause 9.3.9.3 + */ + testcase TC_GEONW_PON_GUC_BO_12() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BO_12(); + + } // end TC_GEONW_PON_GUC_BO_12 + + /** + * @desc Check that a received GUC packet is not passed over the Gn SAP to the correct upper protocol + * when the Destination address matches the IUT address if received twice or more + *
+ * Pics Selection: PICS_GN_GUC_DST AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeC and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a GUC packet addressed to IUT from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value greater than 1 and + * the IUT having forwarded the GUC packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GUC packet from ItsNodeB + * containing Basic Header + * containing RHL field + * indicating HL1 - 1 + * } + * then { + * the IUT does not pass the received GUC packet to any Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GUC/BO-13 + * @reference EN 302 636-4-1 [1], clause 9.3.9.3 + */ + testcase TC_GEONW_PON_GUC_BO_13() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GUC_BO_13(); + + } // end TC_GEONW_PON_GUC_BV_13 + + } // end geoGeoUnicast + + // 6.2.2.9 + group geoGeoBroadcast { + + /** + * @desc Check that a GBC request over upper Gn SAP triggers broadcasting of a GBC packet if the IUT is within the Destination Area + *
+ * Pics Selection: PICS_GN_GBC_SRC + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT broadcasts immediately the GBC packet + * containing DestinationArea + * indicating AREA1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.2 + */ + testcase TC_GEONW_PON_GBC_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_01(); + + } // end TC_GEONW_PON_GBC_BV_01 + + /** + * @desc Check that a GBC request over upper Gn SAP triggers line forwarding if the IUT is outside the Destination Area + *
+ * Pics Selection: PICS_GN_GBC_SRC AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' + * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED' + * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED') + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects ItsNodeB as the next hop ITS station and + * the IUT sends the GBC packet (see note) + * } + * } + * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.2, Annex E.2 + */ + testcase TC_GEONW_PON_GBC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_02(); + + } // end TC_GEONW_PON_GBC_BV_02 + + /** + * @desc Check that a received GBC packet is triggering re-broadcasting if received for the first + * time within its destination area + *
+ * Pics Selection: PICS_GN_GBC_SRC AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' + * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED' + * OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED') + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT re-broadcasts immediately the GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 + */ + testcase TC_GEONW_PON_GBC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_03(); + + } // end TC_GEONW_PON_GBC_BV_03 + + /** + * @desc Check that a received GBC packet is not triggering re-broadcasting if received for + * the second or more time (duplicate packet detection) + *
+ * Pics Selection: PICS_GN_GBC_FWD AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a GBC packet from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value HL1 higher than 1 + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * containing DestinationArea + * indicating AREA1 and + * the IUT having re-broadcast the GBC packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet from ItsNodeD + * containing Basic Header + * containing RHL field + * indicating value lower than HL1 + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not re-broadcast the GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BO-04 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex A.2 + */ + testcase TC_GEONW_PON_GBC_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BO_04(); + + } // end TC_GEONW_PON_GBC_BO_04 + + /** + * @desc Check that a received GBC packet is triggering line forwarding if received out of its + * destination area for the first time from a known ITS-Station + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet generated by ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects ItsNodeB as the next hop ITS station and + * the IUT forwards the GBC packet (see note) + * } + * } + * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2 + */ + testcase TC_GEONW_PON_GBC_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_05(); + + } // end TC_GEONW_PON_GBC_BV_05 + + /** + * @desc Check that a received GBC packet is not triggering line forwarding if received out of its + * destination area for the second or more time + *
+ * Pics Selection: PICS_GN_GBC_FWD AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * the IUT having received a GBC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value HL1 higher than 1 + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * containing DestinationArea + * indicating AREA2 + * the IUT having forwarded the received GBC packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet from ItsNodeD + * containing Basic Header + * containing RHL field + * indicating value lower than HL1 + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not forward the received GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BO-06 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 + */ + testcase TC_GEONW_PON_GBC_BO_06() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BO_06(); + + } // end TC_GEONW_PON_GBC_BO_06 + + /** + * @desc Check that the protocol header fields (RHL) are correctly updated during a GBC re- + * broadcasting step + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value HL1 higher than 1 + * containing Common Header + * containing MHL field + * indicating value MHL1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT re-broadcasts the GBC packet + * containing Basic Header + * containing RHL field + * indicating value (HL1 -1) + * containing Common Header + * containing MHL field + * indicating value MHL1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-07 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 + */ + testcase TC_GEONW_PON_GBC_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_07(); + + } // end TC_GEONW_PON_GBC_BV_07 + + /** + * @desc Check that the RHL restriction is correctly handled at a GBC re-broadcasting step + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT does not re-broadcast the GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-08 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 + */ + testcase TC_GEONW_PON_GBC_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_08(); + + } // end TC_GEONW_PON_GBC_BV_08 + + /** + * @desc Check that a received GBC packet is passed over the Gn SAP to the correct upper + * protocol if it is received for the first time within the GBC destination area + *
+ * Pics Selection: PICS_GN_GBC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT passes the received GBC packet to the correct Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-09 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 + */ + testcase TC_GEONW_PON_GBC_BV_09() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_09(); + + } // end TC_GEONW_PON_GBC_BV_09 + + /** + * @desc Check that a received GBC packet is not passed over the Gn SAP if it is received for the + * second or more time + *
+ * Pics Selection: PICS_GN_GBC_DST AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'SIMPLE' OR PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a GBC packet from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating HL1 + * containing GBC Extended Header + * containing SN field + * indicating value SN1 + * containing DestinationArea + * indicating AREA1 and + * the IUT having passed the received GBC packet to the correct Upper Layer protocol + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet from ItsNodeD + * containing Basic Header + * containing RHL field + * indicating value lower than HL1 + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not pass the received GBC packet to any Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BO-10 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 + */ + testcase TC_GEONW_PON_GBC_BO_10() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BO_10(); + + } // end TC_GEONW_PON_GBC_BO_10 + + /** + * @desc Check that a received GBC packet is not passed over the Gn SAP if it is received for the + * first time outside the GBC destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT does not pass the received GBC packet to any Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-11 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3 + */ + testcase TC_GEONW_PON_GBC_BV_11() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_11(); + + } // end TC_GEONW_PON_GBC_BV_11 + + /** + * @desc Check that a GBC request over upper Gn SAP triggers the broadcasting of a GBC packet if this CBF is selected in the MIB + *
+ * Pics Selection: PICS_GN_GBC_SRC AND (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GBC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT broadcasts immediately the GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-12 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.2, Annex D.2 + */ + testcase TC_GEONW_PON_GBC_BV_12() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_12(); + + } // end TC_GEONW_PON_GBC_BV_12 + + /** + * @desc Check that a received GBC packet is discarded when indicating a too big GeoArea + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating a geoArea bigger than itsGnMaxGeoAreaSize + * } + * then { + * the IUT does not forward the received GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BO-19 + * @reference EN 302 636-4-1 [1], Annex B.3 + */ + testcase TC_GEONW_PON_GBC_BO_19() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BO_19(); + + } // end TC_GEONW_PON_GBC_BO_19 + + /** + * @desc Check that a received GBC packet is triggering rebroadcast if received out of its + * destination area for the first time from an unknown sender + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT not having received any message from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT re-broadcasts the GBC packet immediately + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-20 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2, E3 and E.4 + */ + testcase TC_GEONW_PON_GBC_BV_20() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_20(); + + } // end TC_GEONW_PON_GBC_BV_20 + + /** + * @desc Check that a received GBC packet is triggering rebroadcast if received out of its + * destination area for the first time from a known sender with PAI=0 + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * containing SOPV.PAI indicating 0 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT re-broadcasts the GBC packet immediately + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GBC/BV-21 + * @reference EN 302 636-4-1 [1], clauses 9.3.11.3, Annex E.2, E.3 and E.4 + */ + testcase TC_GEONW_PON_GBC_BV_21() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GBC_BV_21(); + + } // end TC_GEONW_PON_GBC_BV_21 + + } // end geoGeoBroadcast + + // 6.2.2.10 + group geoTopologicallyScopedBroadcast { + + /** + * @desc Check that a TSB request over upper Gn SAP triggers the origination of a TSB + * packet + *
+ * Pics Selection: PICS_GN_TSB_SRC + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a TSB packet + * } + * then { + * the IUT broadcasts a TSB packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.2 + */ + testcase TC_GEONW_PON_TSB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BV_01(); + + } // end TC_GEONW_PON_TSB_BV_01 + + /** + * @desc Check that a received TSB packet is triggering re-broadcasting if received for the first time + *
+ * Pics Selection: PICS_GN_TSB_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a TSB packet + * containing Basic Header + * containing RHL field + * indicating HL1 higher than 1 + * } + * then { + * the IUT re-broadcasts the TSB packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 + */ + testcase TC_GEONW_PON_TSB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BV_02(); + + } // end TC_GEONW_PON_TSB_BV_02 + + /** + * @desc Check that a received TSB packet is not triggering re-broadcasting if received for the second or + * more time + *
+ * Pics Selection: PICS_GN_TSB_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received a TSB packet from ItsNodeB + * containing Basic Header + * containing RHL field + * indicating HL1 higher than 1 + * containing TSB Extended Header + * containing SN field + * indicating value SN1 and + * the IUT having re-broadcast the TSB packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same TSB packet from ItsNodeD + * containing Basic Header + * containing RHL field + * indicating HL1 - 1 + * containing TSB Extended Header + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not re-broadcast the TSB packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BO-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 + */ + testcase TC_GEONW_PON_TSB_BO_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BO_03(); + + } // end TC_GEONW_PON_TSB_BO_03 + + /** + * @desc Check that the protocol header fields (RHL) are correctly updated during a TSB re- + * broadcasting step + *
+ * Pics Selection: PICS_GN_TSB_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a TSB packet + * containing Basic Header + * containing RHL field + * indicating HL1 + * containing Common Header + * containing MHL field + * indicating value MHL1 + * } + * then { + * the IUT re-broadcasts the TSB packet + * containing Basic Header + * containing RHL field + * indicating value (HL1 -1) + * containing Common Header + * containing MHL field + * indicating value MHL1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BV-04 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 + */ + testcase TC_GEONW_PON_TSB_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BV_04(); + + } // end TC_GEONW_PON_TSB_BV_04 + + /** + * @desc Check that the RHL restriction is correctly handled at a TSB re-broadcasting step + *
+ * Pics Selection: PICS_GN_TSB_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a TSB packet + * containing Basic Header + * containing RHL field + * indicating 1 + * } + * then { + * the IUT does not re-broadcast the TSB packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BO-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 + */ + testcase TC_GEONW_PON_TSB_BO_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BO_05(); + + } // end TC_GEONW_PON_TSB_BO_05 + + /** + * @desc Check that a received TSB packet is passed over the Gn SAP to the correct upper protocol if it is + * received for the first time + *
+ * Pics Selection: PICS_GN_TSB_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a TSB packet + * } + * then { + * the IUT passes the received TSB packet to the correct Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BV-06 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 + */ + testcase TC_GEONW_PON_TSB_BV_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BV_06(); + + } // end TC_GEONW_PON_TSB_BV_06 + + /** + * @desc Check that a received TSB packet is not passed over the Gn SAP if it is received for the second + * or more time + *
+ * Pics Selection: PICS_GN_TSB_DST + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received a TSB packet from ItsNodeB + * containing Basic Header + * containing RHL field + * indicating HL1 higher than 1 + * containing TSB Extended Header + * containing SN field + * indicating value SN1 and + * the IUT having passed the received TSB packet to the correct Upper Layer protocol + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same TSB packet from ItsNodeD + * containing Basic Header + * containing RHL field + * indicating HL1 - 1 + * containing TSB Extended Header + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not pass the received TSB packet to any Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/TSB/BO-07 + * @reference EN 302 636-4-1 [1], clauses 9.3.9.3 + */ + testcase TC_GEONW_PON_TSB_BO_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_TSB_BO_07(); + + } // end TC_GEONW_PON_TSB_BO_07 + + } // end geoTopologicallyScopedBroadcast + + // 6.2.2.11 + group geoSingleHopBroadcast { + + /** + * @desc Check that a SHB request over upper Gn SAP triggers the origination of a SHB + * packet + *
+ * Pics Selection: PICS_GN_SHB_SRC + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a SHB packet + * } + * then { + * the IUT broadcasts the SHB packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/SHB/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.10.2 + */ + testcase TC_GEONW_PON_SHB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_SHB_BV_01(); + + } // end TC_GEONW_PON_SHB_BV_01 + + /** + * @desc Check that a received SHB packet is passed over the Gn SAP to the correct upper protocol if it is + * received for the first time + *
+ * Pics Selection: PICS_GN_SHB_DST + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a SHB packet + * } + * then { + * the IUT passes the received SHB packet to the Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/SHB/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.10.3 + */ + testcase TC_GEONW_PON_SHB_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_SHB_BV_02(); + + } // end TC_GEONW_PON_SHB_BV_02 + + } // end geoSingleHopBroadcast + + // 6.2.2.12 + group geoGeoAnycast { + + /** + * @desc Check that GAC request over upper Gn SAP triggers broadcasting of a GAC packet if the IUT is within the Destination Area + *
+ * Pics Selection: PICS_GN_GAC_SRC + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GAC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT broadcasts the GAC packet + * containing DestinationArea + * indicating AREA1 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-01 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.2 + */ + testcase TC_GEONW_PON_GAC_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_01(); + + } // end TC_GEONW_PON_GAC_BV_01 + + /** + * @desc Check that a GAC request over upper Gn SAP triggers line forwarding if the IUT is outside the Destination Area + *
+ * Pics Selection: PICS_GN_GAC_SRC AND (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'GREEDY' OR PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'UNSPECIFIED') + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GAC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects ItsNodeB as the next hop and + * the IUT sends the GAC packet (see note) + * containing DestinationArea + * indicating AREA2 + * } + * } + * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-02 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.2, Annex D.2 + */ + testcase TC_GEONW_PON_GAC_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_02(); + + } // end TC_GEONW_PON_GAC_BV_02 + + /** + * @desc Check that a received GAC packet is not triggering forwarding or re-broadcasting if the IUT + * is within the Destination Area + *
+ * Pics Selection: PICS_GN_GAC_FWD + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * IUT does not re-broadcast the received GAC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-03 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_03(); + + } // end TC_GEONW_PON_GAC_BV_03 + + /** + * @desc Check that a received GAC packet is triggering line forwarding if received out of its + * destination area for the first time + *
+ * Pics Selection: PICS_GN_GAC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects ItsNodeB as the next hop and + * the IUT forwards the GAC packet (see note) + * } + * } + * NOTE: Next hop ITS Station being identified by the MAC layer address of ItsNodeB + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-04 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3, Annex E.2 + */ + testcase TC_GEONW_PON_GAC_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_04(); + + } // end TC_GEONW_PON_GAC_BV_04 + + /** + * @desc Check that a received GAC packet is not triggering line forwarding if received out of its + * destination area for the second or more time + *
+ * Pics Selection: PICS_GN_GAC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * the IUT having received Beacon information from ItsNodeD + * the IUT having received a GAC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value HL1 higher than 1 + * containing GAC Extended Header + * containing SN field + * indicating value SN1 and + * containing DestinationArea + * indicating AREA2 + * the IUT having forwarded the GAC packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GAC packet from other neighbour + * containing Basic Header + * containing RHL field + * indicating value lower than HL1 + * containing GAC Extended Header + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not forward the received GAC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BO-05 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BO_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BO_05(); + + } // end TC_GEONW_PON_GAC_BO_05 + + /** + * @desc Check that the protocol header fields (RHL) are correctly updated during a GAC + * forwarding step + *
+ * Pics Selection: PICS_GN_GAC_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating value HL1 higher than 1 + * containing Common Header + * containing MHL field + * indicating value MHL1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects the ItsNodeB as the next hop + * the IUT forwards the GAC packet + * containing Basic Header + * containing RHL field + * indicating value (HL1 - 1) + * containing Common Header + * containing MHL field + * indicating value MHL1 + * containing DestinationArea + * indicating AREA2 + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-06 + * @reference EN 302 636-4-1 [1], clauses 9.3.6.3 and 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_06(); + + } // end TC_GEONW_PON_GAC_BV_06 + + /** + * @desc Check that the RHL restriction is correctly handled at a GAC forwarding step + *
+ * Pics Selection: PICS_GN_GAC_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating 1 + * containing GAC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT does not forward the GAC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BO-07 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BO_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BO_07(); + + } // end TC_GEONW_PON_GAC_BO_07 + + /** + * @desc Check that a received GAC packet is passed over the Gn SAP to the correct upper + * protocol if it is received for the first time within the GAC destination area + *
+ * Pics Selection: PICS_GN_GAC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT passes the received GAC packet to the correct Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-08 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BV_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_08(); + + } // end TC_GEONW_PON_GAC_BV_08 + + /** + * @desc Check that a received GAC packet is not passed over the Gn SAP if it is received for + * the second or more time + *
+ * Pics Selection: PICS_GN_GAC_DST + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received a GAC packet from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating HL1 + * containing GAC Extended Header + * containing SN field + * indicating value SN1 and + * containing DestinationArea + * indicating AREA1 and + * the IUT having passed the received GAC packet to the correct Upper Layer protocol + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GAC packet from ItsNodeB + * containing Basic Header + * containing RHL field + * indicating value lower than HL1 + * containing GAC Extended Header + * containing SN field + * indicating value SN1 + * } + * then { + * the IUT does not pass the received GAC packet to any Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BO-09 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BO_09() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BO_09(); + + } // end TC_GEONW_PON_GAC_BO_09 + + /** + * @desc Check that a received GAC packet is not passed over the Gn SAP if it is received for the + * first time outside the GAC destination area + *
+ * Pics Selection: PICS_GN_GAC_DST + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT does not pass the received GAC packet to any Upper Layer protocol + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-10 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.3 + */ + testcase TC_GEONW_PON_GAC_BV_10() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_10(); + + } // end TC_GEONW_PON_GAC_BV_10 + + /** + * @desc Check that a received GAC packet is discarded when indicating a too big GeoArea + *
+ * Pics Selection: PICS_GN_GAC_FWD + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GAC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating a geoArea bigger than itsGnMaxGeoAreaSize + * } + * then { + * the IUT does not forward the received GAC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BO-11 + * @reference EN 302 636-4-1 [1], Annex B.3 + */ + testcase TC_GEONW_PON_GAC_BO_11() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BO_11(); + + } // end TC_GEONW_PON_GAC_BO_11 + + /** + * @desc Check that a GAC request over upper Gn SAP triggers immediate broadcasting of a + * GAC packet if the IUT is outside the Destination Area + *
+ * Pics Selection: PICS_GN_GAC_SRC AND PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF02 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeB + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GAC packet + * containing TrafficClass.SCF set to 1 + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT broadcasts the packet immediately + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/GAC/BV-13 + * @reference EN 302 636-4-1 [1], clauses 9.3.12.2 + */ + testcase TC_GEONW_PON_GAC_BV_13() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_GAC_BV_13(); + + } // end TC_GEONW_PON_GAC_BV_13 + + } // end geoGeoAnycast + + // 6.2.2.13 + group geoGeoBroadcastCbfAlgorithm { + + /** + * @desc Check that a received GBC packet is discarded if received twice or more + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * the IUT having received a GBC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * the IUT having saved the packet into CBF buffer + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet from ItsNodeD + * } + * then { + * the IUT removes the GBC packet from the CBF buffer + * the IUT discards the new received GBC packet + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-01 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_01(); + + } // end TC_GEONW_PON_BCA_BV_01 + + /** + * @desc Check that a received GBC packet is triggering contention if received for the first time from a known sender + * when inside of the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT saves the GBC packet into the CBF buffer and + * the IUT starts the contention timer and + * the IUT re-broadcasts the received GBC packet + * upon expiry of the contention timer + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-02 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_02(); + + } // end TC_GEONW_PON_BCA_BV_02 + + /** + * @desc Check that a received GBC packet from outside of the destination area is triggering line + * forwarding if received for the first time when IUT is outside of the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received Beacon information from ItsNodeC + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects ItsNodeB as next hop ITS station and + * the IUT forwards the GBC packet (see note) + * } + * } + * + * NOTE: Next hop ITS Statoin being identified by the MAC layer address of ItsNodeB + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-03 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_03(); + + } // end TC_GEONW_PON_BCA_BV_03 + + /** + * @desc Check that a received GBC packet from inside of the destination area is discarded if + * received for the first time when IUT is outside of the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT discards the received GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BO-04 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BO_04(); + + } // end TC_GEONW_PON_BCA_BO_04 + + /** + * @desc Check that a received GBC packet is triggering contention if received for the first time + * when IUT is inside of the destination area from an unknown sender + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT not having received any message from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT saves the GBC packet into the CBF buffer and + * the IUT starts the contention timer set to CBF_MAX and + * the IUT broadcasts the received GeoBroedcast packet + * upon expiry of the contention timer + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-05 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_05(); + + } // end TC_GEONW_PON_BCA_BV_05 + + /** + * @desc Check that a received GBC packet from outside of the destination area is triggering re-broadcast + * if received for the first time when IUT is outside of the destination area from an + * unknown sender + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT not having received any message from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT re-broadcasts the GBC packet immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-06 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_06(); + + } // end TC_GEONW_PON_BCA_BV_06 + + /** + * @desc Check that a received GBC packet is rebroadcasted if received for the first time + * when IUT is outside of the destination area from a known sender having an uncertain position (PAI == 0). + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * containing Beacon ExtendedHeader + * containing SOPV field + * containing PAI + * set to '0' + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT re-broadcasts the GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-07 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_07(); + + } // end TC_GEONW_PON_BCA_BV_07 + + /** + * @desc Check that a received GBC packet is triggering contention if received for the first time + * when IUT is inside of the destination area from an unknown sender + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'CBF' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD + * containing Beacon ExtendedHeader + * containing SOPV field + * containing PAI + * set to '0' + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT saves the GBC packet into the CBF buffer and + * the IUT starts the contention timer set to CBF_MAX and + * the IUT re-broadcasts the received GeoBroedcast packet + * upon expiry of the contention timer + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BCA/BV-08 + * @reference EN 302 636-4-1 [1], Annex E.3 + */ + testcase TC_GEONW_PON_BCA_BV_08() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BCA_BV_08(); + + } // end TC_GEONW_PON_BCA_BV_08 + + /** + * @desc Check that a received GBC packet is discarded if received more than MAX_COUNTER + * times when IUT is inside of the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF06 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeF and + * the IUT having received a GBC packet GBC1 from ItsNodeF + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * the IUT having saved the packet into CBF buffer + * the IUT having received MAX_COUNTER - 1 times the GBC1 packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet GBC1 + * } + * then { + * the IUT removes GBC1 from the CBF buffer + * the IUT discards the new received GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-01 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_01(); + + } // end TC_GEONW_PON_BAA_BV_01 + + /** + * @desc Check that a received GBC packet is discarded if received more than 1 times when IUT + * is inside of the destination area and inside the sectorial area of the GBC packet Sender + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF05 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeE and + * the IUT having received a GBC packet GBC1 from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * the IUT having saved the packet into CBF buffer + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet GBC1 from ItsNodeE + * the IUT is inside the sectorial area of ItsNodeB + * } + * then { + * the IUT removes GBC1 from the CBF buffer + * the IUT discards the new received GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-02 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_02(); + + } // end TC_GEONW_PON_BAA_BV_02 + + /** + * @desc Check that a received GBC packet is triggering contention if received more than 1 times when the IUT + * is inside of the destination area and outside the sectorial area of the GBC packet Sender (Angle_FSR > Angle_TH) + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF06 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeF and + * the IUT having received a GBC packet GBC1 from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * the IUT having saved the packet into CBF buffer + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet GBC1 from ItsNodeF + * the IUT is outside the sectorial area of ItsNodeB + * } + * then { + * the IUT saves the GBC packet GBC1 from ItsNodeF and + * the IUT starts the contention timer and + * the IUT re-broadcasts the received GBC packet + * upon expiry of the contention timer + * } + * } + * + * Note: In this configuration IUT is outside sectorial area of ItsNodeB to the angle FSR + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-03 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_03() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_03(); + + } // end TC_GEONW_PON_BAA_BV_03 + + /** + * @desc Check that a received GBC packet with Unicast MAC destination is triggering line + * forwarding if received for the first time when IUT is inside the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF05 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeE and + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeE + * addressed to IUT's link-layer address + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT selects ItsNodeB as the next hop ITS station and + * the IUT forwards the GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-04 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_04() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_04(); + + } // end TC_GEONW_PON_BAA_BV_04 + + /** + * @desc Check that a received GBC packet with Unicast MAC destination is triggering + * rebroadcast if received for the first time when IUT is inside the destination area. + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF05 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeE + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeE addressed to IUT's link-layer address + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT saves the GBC packet into the CBF buffer and + * the IUT starts the contention timer set to CBF_MAX and + * the IUT re-broadcasts the received GBC packet + * upon expiry of the contention timer + * } + * } + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-05 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_05() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_05(); + + } // end TC_GEONW_PON_BAA_BV_05 + + /** + * @desc Check that a received GBC packet with Broadcast destination is triggering contention if + * received for the first time from known sender when IUT is inside the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF05 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeE + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeE + * addressed to broadcast link-layer address + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT calculates and starts the contention timer and + * the IUT re-broadcasts the received GBC packet + * upon expiry of the contention timer + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-06 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_06() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_06(); + + } // end TC_GEONW_PON_BAA_BV_06 + + /** + * @desc Check that a received GBC packet from outside the destination area is triggering line + * forwarding if received for the first time from known sender when IUT is outside the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT selects ItsNodeB as the next hop ITS station and + * the IUT forwards the GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-07 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_07() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_07(); + + } // end TC_GEONW_PON_BAA_BV_07 + + /** + * @desc Check that a received GBC packet with from inside the destination area is discarded if + * received for the first time from known sender when IUT is outside the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the IUT having received Beacon information from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT discards the received GBC packet + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v2.1.1 TP/GEONW/PON/BAA/BO-08 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BO_08() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BO_08(); + + } // end TC_GEONW_PON_BAA_BO_08 + + /** + * @desc Check that a received GBC packet with Broadcast MAC destination is triggering + * contention if received for the first time from an unknown sender when IUT is inside the + * destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF05 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT not having received any message from ItsNodeE + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet from ItsNodeE + * addressed to link-layer broadcast address + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * } + * then { + * the IUT saves the GBC packet into the CBF buffer and + * the IUT starts the contention timer set to CBF_MAX and + * the IUT re-broadcasts the received GBC packet + * upon expiry of the contention timer + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-09 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_09() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_09(); + + } // end TC_GEONW_PON_BAA_BV_09 + + /** + * @desc Check that a received GBC packet is triggering re-broadcast if received from unknown + * sender for the first time when IUT is outside the destination area + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF04 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeC and + * the IUT not having received any message from ItsNodeD + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet generated by ItsNodeC from ItsNodeD + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA2 + * } + * then { + * the IUT re-broadcasts the GBC packet immediately + * } + * } + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-10 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_10() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_10(); + + } // end TC_GEONW_PON_BAA_BV_10 + + /** + * @desc Check that a received GBC packet is triggering contention if received more than 1 times when IUT + * is inside the destination area and outside the sectorial area of the GBC packet Sender (Dist_R > Dist_F) + *
+ * Pics Selection: PICS_GN_GBC_FWD AND PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == 'ADVANCED' + * Config Id: CF07 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having received Beacon information from ItsNodeD and + * the IUT having received a GBC packet GBC1 from ItsNodeB + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing DestinationArea + * indicating AREA1 + * the IUT having saved packet into the CBF buffer + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives the same GBC packet GBC1 from ItsNodeD + * the IUT is outside the sectorial area of ItsNodeB + * } + * then { + * the IUT saves the GBC packet into the CBF buffer and + * the IUT starts the contention timer and + * the IUT re-broadcasts the received GBC packet + * upon expiry of the contention timer + * } + * } + * + * Note: In this configuration IUT is outside sectorial area of ItsNodeB because of dist_R > dist_F + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/PON/BAA/BV-11 + * @reference EN 302 636-4-1 [1], Annex E.4 + */ + testcase TC_GEONW_PON_BAA_BV_11() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_PON_BAA_BV_11(); + + } // end TC_GEONW_PON_BAA_BV_11 + + } // end geoGeoBroadcastCbfAlgorithm + + } // end geoProtocolOperation + + // 6.2.3 Capacities + group geoCapacities { + + // 6.2.3.1 + group geoCapLocationService { + + /** + * @desc Test of LS buffer capacity according to its GnLocationServicePacketBufferSize parameter and + * the overflow handling procedure + *
+ * Pics Selection: PICS_GN_LS_REQ_SRC + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeA and + * the IUT having received Beacon information from ItsNodeB and + * the IUT having been requested to send multiple GUC packets to ItsNodeA + * containing TrafficClass.SCF set to 1 and + * the IUT having sent a LS_REQUEST packet and + * the IUT not having received a LS_REPLY packet + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a GUC packet to ItsNodeA + * containing TrafficClass.SCF set to 1 and + * the location service buffer capacity exceeded (see note 1) + * } + * then { + * the IUT removes the older packet(s) in the location service buffer and, + * the IUT inserts the new received packet at the end of the location service buffer (see note 2) + * } + * } + * NOTE 1: The amount of stored data exceeds Location Service buffer capacity defined by the + * itsGnLocationServicePacketBufferSize MIB parameter + * NOTE 2: Buffered packets will be delivered upon reception of LS_REPLY message + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/CAP/LOS/BV-01 + * @reference EN 302 636-4-1 [1], clauses 7.4.3 + */ + testcase TC_GEONW_CAP_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { + + f_GEONW_CAP_LOS_BV_01(); + + } // end TC_GEONW_CAP_LOS_BV_01 + + } // end geoCapLocationService + + // 6.2.3.2 + group geoCapForwardingPacketBuffer { + + /** + * @desc Test of UC forwarding buffer capacity according to itsGnUcForwardingPacketBufferSize + * parameter and the overflow handling procedure + *
+ * Pics Selection: PICS_GN_GUC_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeB and + * the IUT having received multiple GUC packets addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GUC packet addressed to ItsNodeA from ItsNodeC + * containing TrafficClass.SCF set to 1 + * containing Basic Header + * containing RHL field + * indicating HL1 higher than 1 + * the UC forwarding packet buffer capacity exceeded (see note 1) + * } + * then { + * the IUT removes the older packet(s) in the UC forwarding packet buffer and, + * the IUT inserts the new received GUC packet at the end of the UC forwarding packet buffer (see note 2) + * } + * } + * NOTE 1: The amount of stored data exceeds UC forwarding packet capacity defined by the + * itsGnUcForwardingPacketBufferSize MIB parameter + * NOTE 2: Buffered packets will be delivered upon reception of Beacon message from ItsNodeB + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/CAP/FPB/BV-01 + * @reference EN 302 636-4-1 [1], clauses 7.5.3 + */ + testcase TC_GEONW_CAP_FPB_BV_01() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_CAP_FPB_BV_01(); + + } // end TC_GEONW_CAP_FPB_BV_01 + + /** + * @desc Test of BC forwarding buffer capacity according to itsGnBcForwardingPacketBufferSize + * parameter and the overflow handling procedure + *
+ * Pics Selection: PICS_GN_GBC_FWD + * Config Id: CF03 + * Initial conditions: + * with { + * the IUT being in the "initial state" and + * the IUT having no Location Table Entry for ItsNodeB + * the IUT having received multiple GBC packets + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing GBC Destination Area + * indicating AREA2 + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT receives a GBC packet + * containing TrafficClass.SCF set to 1 + * containing GBC Extended Header + * containing GBC Destination Area + * indicating AREA2 and + * the BC forwarding packet buffer capacity exceeded (see note 1) + * } + * then { + * the IUT removes the older packet(s) in the BC forwarding packet buffer and, + * the IUT inserts the new received GBC packet at the end of the BC forwarding packet buffer (see note 2) + * } + * } + * NOTE 1: The amount of stored data exceeds BC forwarding buffer capacity defined by the + * itsGnBcForwardingPacketBufferSize MIB parameter + * NOTE 2: Buffered packets will be delivered upon reception of Beacon message from ItsNodeB + * + *+ * + * @see ETSI TS 102 871-2 v1.4.1 TP/GEONW/CAP/FPB/BV-02 + * @reference EN 302 636-4-1 [1], clauses 7.5.3 + */ + testcase TC_GEONW_CAP_FPB_BV_02() runs on ItsMtc system ItsGeoNetworkingSystem { + + f_GEONW_CAP_FPB_BV_02(); + + } // end TC_GEONW_CAP_FPB_BV_02 + + } // end geoCapForwardingPacketBuffer + + } // end geoCapacities + +} // end ItsGeoNetworking_TestCases + diff --git a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn index 2000faa9b165b3ab9261ff238f4ff2c1b21f82a4..98e9d2d5d80bcff0c805425601ae470a32088fa2 100644 --- a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn +++ b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TestControl.ttcn @@ -1,446 +1,446 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 - * @version $URL$ - * $Id$ - * @desc Test Control file for GeoNetworking - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsGeoNetworking_TestControl { - - // ATS GeoNetworking - import from ItsGeoNetworking_TestCases all; - - // LibItsGeoNetworking - import from LibItsGeoNetworking_Pics all; - import from LibItsGeoNetworking_TypesAndValues all; - - // Test Execution - control { - - /* FDV */ - - if(PICS_GN_BASIC_HEADER) { - execute(TC_GEONW_FDV_BAH_BV_01()); - execute(TC_GEONW_FDV_BAH_BI_02()); - } - - if(PICS_GN_COMMON_HEADER) { - execute(TC_GEONW_FDV_COH_BV_01()); - execute(TC_GEONW_FDV_COH_BV_02()); - execute(TC_GEONW_FDV_COH_BV_03()); - execute(TC_GEONW_FDV_COH_BO_04()); - } - - if(PICS_GN_BEACON_SRC) { - execute(TC_GEONW_FDV_BEA_BV_01()); - execute(TC_GEONW_FDV_BEA_BV_02()); - execute(TC_GEONW_FDV_BEA_BV_03()); - execute(TC_GEONW_FDV_BEA_BV_04()); - } - - if(PICS_GN_GUC_SRC) { - execute(TC_GEONW_FDV_GUC_BV_01()); - } - - if(PICS_GN_GBC_SRC) { - execute(TC_GEONW_FDV_GBC_BV_01()); - } - - if(PICS_GN_GAC_SRC) { - execute(TC_GEONW_FDV_GAC_BV_01()); - } - - if(PICS_GN_SHB_SRC) { - execute(TC_GEONW_FDV_SHB_BV_01()); - } - - if(PICS_GN_TSB_SRC) { - execute(TC_GEONW_FDV_TSB_BV_01()); - } - - /* PON/LOT */ - - if(PICS_GN_GUC_SRC and PICS_GN_BEACON_DST) { - execute(TC_GEONW_PON_LOT_BV_01()); - } - - if(PICS_GN_LS_REQ_SRC and PICS_GN_LS_REP_DST) { - execute(TC_GEONW_PON_LOT_BV_02()); - } - - if(PICS_GN_BEACON_DST) { - execute(TC_GEONW_PON_LOT_BV_03_01()); - } - - if(PICS_GN_GUC_DST) { - execute(TC_GEONW_PON_LOT_BV_03_02()); - } - - if(PICS_GN_GAC_DST) { - execute(TC_GEONW_PON_LOT_BV_03_03()); - } - - if(PICS_GN_GBC_DST) { - execute(TC_GEONW_PON_LOT_BV_03_04()); - } - - if(PICS_GN_TSB_DST) { - execute(TC_GEONW_PON_LOT_BV_03_05()); - } - - if(PICS_GN_SHB_DST) { - execute(TC_GEONW_PON_LOT_BV_03_06()); - } - - if(PICS_GN_LS_REQ_DST) { - execute(TC_GEONW_PON_LOT_BV_03_07()); - } - - if(PICS_GN_LS_REP_DST) { - execute(TC_GEONW_PON_LOT_BV_03_08()); - } - - if(PICS_GN_LS_REQ_SRC) { - execute(TC_GEONW_PON_LOT_BV_04()); - } - - if(PICS_GN_GUC_DST) { - execute(TC_GEONW_PON_LOT_BV_05_01()); - } - - if(PICS_GN_GAC_DST) { - execute(TC_GEONW_PON_LOT_BV_05_02()); - } - - if(PICS_GN_GBC_DST) { - execute(TC_GEONW_PON_LOT_BV_05_03()); - } - - if(PICS_GN_TSB_DST) { - execute(TC_GEONW_PON_LOT_BV_05_04()); - } - - if(PICS_GN_SHB_DST) { - execute(TC_GEONW_PON_LOT_BV_05_05()); - } - - if(PICS_GN_LS_REQ_DST) { - execute(TC_GEONW_PON_LOT_BV_05_06()); - } - - if(PICS_GN_LS_REP_DST) { - execute(TC_GEONW_PON_LOT_BV_05_07()); - } - - /* PON/LPV */ - - if(PICS_GN_BEACON_SRC) { - execute(TC_GEONW_PON_LPV_BV_01()); - } - - /* PON/SQN */ - - if(PICS_GN_GBC_SRC) { - execute(TC_GEONW_PON_SQN_BV_01()); - execute(TC_GEONW_PON_SQN_BV_02()); - } - - /* PON/LOS */ - - if(PICS_GN_LS_REQ_SRC) { - execute(TC_GEONW_PON_LOS_BV_01()); - execute(TC_GEONW_PON_LOS_BV_02()); - if(PICS_GN_LS_REP_DST) { - execute(TC_GEONW_PON_LOS_BV_03()); - execute(TC_GEONW_PON_LOS_BV_04()); - } - execute(TC_GEONW_PON_LOS_BV_05()); - } - - if(PICS_GN_LS_REQ_RETRANSMISSION) { - execute(TC_GEONW_PON_LOS_TI_06()); - execute(TC_GEONW_PON_LOS_BV_07()); - } - - if(PICS_GN_LS_REQ_DST) { - execute(TC_GEONW_PON_LOS_BV_08()); - execute(TC_GEONW_PON_LOS_BO_09()); - } - - if(PICS_GN_LS_FWD) { - execute(TC_GEONW_PON_LOS_BV_10()); - execute(TC_GEONW_PON_LOS_BV_11()); - } - - if(PICS_GN_LS_REQ_SRC) { - execute(TC_GEONW_PON_LOS_BV_12()); - execute(TC_GEONW_PON_LOS_BV_13()); - execute(TC_GEONW_PON_LOS_BV_14()); - execute(TC_GEONW_PON_LOS_BV_15()); - execute(TC_GEONW_PON_LOS_BV_16()); - execute(TC_GEONW_PON_LOS_BV_17()); - } - - /* PON/FPB */ - - if(PICS_GN_GUC_SRC) { - execute(TC_GEONW_PON_FPB_BV_01()); - execute(TC_GEONW_PON_FPB_BV_02()); - execute(TC_GEONW_PON_FPB_BV_03()); - execute(TC_GEONW_PON_FPB_BV_04()); - } - - if(PICS_GN_TSB_SRC) { - execute(TC_GEONW_PON_FPB_BV_06()); - execute(TC_GEONW_PON_FPB_BV_07()); - execute(TC_GEONW_PON_FPB_BV_08()); - } - - if(PICS_GN_GUC_SRC) { - execute(TC_GEONW_PON_FPB_BV_09()); - } - - if(PICS_GN_TSB_SRC) { - execute(TC_GEONW_PON_FPB_BV_10()); - } - - if(PICS_GN_GUC_SRC) { - execute(TC_GEONW_PON_FPB_BV_11_01()); - } - - if(PICS_GN_GAC_SRC) { - execute(TC_GEONW_PON_FPB_BV_11_02()); - } - - if(PICS_GN_GBC_SRC) { - execute(TC_GEONW_PON_FPB_BV_11_03()); - } - - if(PICS_GN_TSB_SRC) { - execute(TC_GEONW_PON_FPB_BV_11_04()); - } - - if(PICS_GN_SHB_SRC) { - execute(TC_GEONW_PON_FPB_BV_11_05()); - } - - if(PICS_GN_GUC_SRC) { - execute(TC_GEONW_PON_FPB_BV_12_01()); - } - - if(PICS_GN_GAC_SRC) { - execute(TC_GEONW_PON_FPB_BV_12_02()); - } - - if(PICS_GN_GBC_SRC) { - execute(TC_GEONW_PON_FPB_BV_12_03()); - } - - if(PICS_GN_TSB_SRC) { - execute(TC_GEONW_PON_FPB_BV_12_04()); - } - - /* PON/GNA */ - - if(PICS_GN_ADDR_AUTO) { - if (PICS_GN_LOCAL_ADDR_CONF_METHOD == e_auto) { - execute(TC_GEONW_PON_GNA_BV_01()); - } - } - - if(PICS_GN_DAD) { - execute(TC_GEONW_PON_GNA_BV_02()); - } - - /* PON/BEA */ - - if(PICS_GN_BEACON_SRC) { - execute(TC_GEONW_PON_BEA_TI_01()); - execute(TC_GEONW_PON_BEA_TI_02()); - } - - /* PON/GUC */ - - if(PICS_GN_GUC_SRC) { - if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GUC_BV_01()); - } - - if (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_cbf) { - execute(TC_GEONW_PON_GUC_BV_11()); - } - } - - if(PICS_GN_GUC_FWD) { - if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GUC_BV_02()); - } - - execute(TC_GEONW_PON_GUC_BV_03()); - execute(TC_GEONW_PON_GUC_BO_04()); - - if (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_cbf) { - execute(TC_GEONW_PON_GUC_BV_06()); - execute(TC_GEONW_PON_GUC_BV_07()); - execute(TC_GEONW_PON_GUC_BV_08()); - execute(TC_GEONW_PON_GUC_BV_10()); - } - - if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GUC_BO_12()); - } - } - - if(PICS_GN_GUC_DST) { - execute(TC_GEONW_PON_GUC_BV_05()); - - if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GUC_BO_13()); - } - } - - /* PON/GBC */ - - if(PICS_GN_GBC_SRC) { - execute(TC_GEONW_PON_GBC_BV_01()); - if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced)) { - execute(TC_GEONW_PON_GBC_BV_02()); - } - if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GBC_BV_03()); - } - if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { - execute(TC_GEONW_PON_GBC_BV_12()); - } - } - - if(PICS_GN_GBC_FWD) { - if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GBC_BO_04()); - } - execute(TC_GEONW_PON_GBC_BV_05()); - if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GBC_BO_06()); - } - execute(TC_GEONW_PON_GBC_BV_07()); - execute(TC_GEONW_PON_GBC_BV_08()); - execute(TC_GEONW_PON_GBC_BV_11()); - execute(TC_GEONW_PON_GBC_BO_19()); - execute(TC_GEONW_PON_GBC_BV_20()); - execute(TC_GEONW_PON_GBC_BV_21()); - } - - if(PICS_GN_GBC_DST) { - execute(TC_GEONW_PON_GBC_BV_09()); - if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GBC_BO_10()); - } - } - - /* PON/TSB */ - - if(PICS_GN_TSB_SRC) { - execute(TC_GEONW_PON_TSB_BV_01()); - } - - if(PICS_GN_TSB_FWD) { - execute(TC_GEONW_PON_TSB_BV_02()); - execute(TC_GEONW_PON_TSB_BO_03()); - execute(TC_GEONW_PON_TSB_BV_04()); - execute(TC_GEONW_PON_TSB_BO_05()); - } - if(PICS_GN_TSB_DST) { - execute(TC_GEONW_PON_TSB_BV_06()); - execute(TC_GEONW_PON_TSB_BO_07()); - } - - /* PON/SHB */ - - if(PICS_GN_SHB_SRC) { - execute(TC_GEONW_PON_SHB_BV_01()); - } - if(PICS_GN_SHB_DST) { - execute(TC_GEONW_PON_SHB_BV_02()); - } - - /* PON/GAC */ - - if(PICS_GN_GAC_SRC) { - execute(TC_GEONW_PON_GAC_BV_01()); - if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { - execute(TC_GEONW_PON_GAC_BV_02()); - } - if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { - execute(TC_GEONW_PON_GAC_BV_13()); - } - } - - if(PICS_GN_GAC_FWD) { - execute(TC_GEONW_PON_GAC_BV_03()); - execute(TC_GEONW_PON_GAC_BV_04()); - execute(TC_GEONW_PON_GAC_BO_05()); - execute(TC_GEONW_PON_GAC_BV_06()); - execute(TC_GEONW_PON_GAC_BO_07()); - execute(TC_GEONW_PON_GAC_BO_11()); - } - - if(PICS_GN_GAC_DST) { - execute(TC_GEONW_PON_GAC_BV_08()); - execute(TC_GEONW_PON_GAC_BO_09()); - execute(TC_GEONW_PON_GAC_BV_10()); - } - - /* PON/BCA */ - - if(PICS_GN_GBC_FWD) { - if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { - execute(TC_GEONW_PON_BCA_BV_01()); - execute(TC_GEONW_PON_BCA_BV_02()); - execute(TC_GEONW_PON_BCA_BV_03()); - execute(TC_GEONW_PON_BCA_BO_04()); - execute(TC_GEONW_PON_BCA_BV_05()); - execute(TC_GEONW_PON_BCA_BV_06()); - execute(TC_GEONW_PON_BCA_BV_07()); - execute(TC_GEONW_PON_BCA_BV_08()); - } - } - - /* PON/BAA */ - - if(PICS_GN_GBC_FWD) { - if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced) { - execute(TC_GEONW_PON_BAA_BV_01()); - execute(TC_GEONW_PON_BAA_BV_02()); - execute(TC_GEONW_PON_BAA_BV_03()); - execute(TC_GEONW_PON_BAA_BV_04()); - execute(TC_GEONW_PON_BAA_BV_05()); - execute(TC_GEONW_PON_BAA_BV_06()); - execute(TC_GEONW_PON_BAA_BV_07()); - execute(TC_GEONW_PON_BAA_BO_08()); - execute(TC_GEONW_PON_BAA_BV_09()); - execute(TC_GEONW_PON_BAA_BV_10()); - execute(TC_GEONW_PON_BAA_BV_11()); - } - } - - /* CAP */ - - if(PICS_GN_LS_REQ_SRC) { - execute(TC_GEONW_CAP_LOS_BV_01()); - } - - if(PICS_GN_GUC_FWD) { - execute(TC_GEONW_CAP_FPB_BV_01()); - } - - if(PICS_GN_GBC_FWD) { - execute(TC_GEONW_CAP_FPB_BV_02()); - } - - } - -} // end ItsGeoNetworking_TestControl +/** + * @author ETSI / STF405 / STF449 / STF484 + * @version $Url$ + * $Id$ + * @desc Test Control file for GeoNetworking + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsGeoNetworking_TestControl { + + // ATS GeoNetworking + import from ItsGeoNetworking_TestCases all; + + // LibItsGeoNetworking + import from LibItsGeoNetworking_Pics all; + import from LibItsGeoNetworking_TypesAndValues all; + + // Test Execution + control { + + /* FDV */ + + if(PICS_GN_BASIC_HEADER) { + execute(TC_GEONW_FDV_BAH_BV_01()); + execute(TC_GEONW_FDV_BAH_BI_02()); + } + + if(PICS_GN_COMMON_HEADER) { + execute(TC_GEONW_FDV_COH_BV_01()); + execute(TC_GEONW_FDV_COH_BV_02()); + execute(TC_GEONW_FDV_COH_BV_03()); + execute(TC_GEONW_FDV_COH_BO_04()); + } + + if(PICS_GN_BEACON_SRC) { + execute(TC_GEONW_FDV_BEA_BV_01()); + execute(TC_GEONW_FDV_BEA_BV_02()); + execute(TC_GEONW_FDV_BEA_BV_03()); + execute(TC_GEONW_FDV_BEA_BV_04()); + } + + if(PICS_GN_GUC_SRC) { + execute(TC_GEONW_FDV_GUC_BV_01()); + } + + if(PICS_GN_GBC_SRC) { + execute(TC_GEONW_FDV_GBC_BV_01()); + } + + if(PICS_GN_GAC_SRC) { + execute(TC_GEONW_FDV_GAC_BV_01()); + } + + if(PICS_GN_SHB_SRC) { + execute(TC_GEONW_FDV_SHB_BV_01()); + } + + if(PICS_GN_TSB_SRC) { + execute(TC_GEONW_FDV_TSB_BV_01()); + } + + /* PON/LOT */ + + if(PICS_GN_GUC_SRC and PICS_GN_BEACON_DST) { + execute(TC_GEONW_PON_LOT_BV_01()); + } + + if(PICS_GN_LS_REQ_SRC and PICS_GN_LS_REP_DST) { + execute(TC_GEONW_PON_LOT_BV_02()); + } + + if(PICS_GN_BEACON_DST) { + execute(TC_GEONW_PON_LOT_BV_03_01()); + } + + if(PICS_GN_GUC_DST) { + execute(TC_GEONW_PON_LOT_BV_03_02()); + } + + if(PICS_GN_GAC_DST) { + execute(TC_GEONW_PON_LOT_BV_03_03()); + } + + if(PICS_GN_GBC_DST) { + execute(TC_GEONW_PON_LOT_BV_03_04()); + } + + if(PICS_GN_TSB_DST) { + execute(TC_GEONW_PON_LOT_BV_03_05()); + } + + if(PICS_GN_SHB_DST) { + execute(TC_GEONW_PON_LOT_BV_03_06()); + } + + if(PICS_GN_LS_REQ_DST) { + execute(TC_GEONW_PON_LOT_BV_03_07()); + } + + if(PICS_GN_LS_REP_DST) { + execute(TC_GEONW_PON_LOT_BV_03_08()); + } + + if(PICS_GN_LS_REQ_SRC) { + execute(TC_GEONW_PON_LOT_BV_04()); + } + + if(PICS_GN_GUC_DST) { + execute(TC_GEONW_PON_LOT_BV_05_01()); + } + + if(PICS_GN_GAC_DST) { + execute(TC_GEONW_PON_LOT_BV_05_02()); + } + + if(PICS_GN_GBC_DST) { + execute(TC_GEONW_PON_LOT_BV_05_03()); + } + + if(PICS_GN_TSB_DST) { + execute(TC_GEONW_PON_LOT_BV_05_04()); + } + + if(PICS_GN_SHB_DST) { + execute(TC_GEONW_PON_LOT_BV_05_05()); + } + + if(PICS_GN_LS_REQ_DST) { + execute(TC_GEONW_PON_LOT_BV_05_06()); + } + + if(PICS_GN_LS_REP_DST) { + execute(TC_GEONW_PON_LOT_BV_05_07()); + } + + /* PON/LPV */ + + if(PICS_GN_BEACON_SRC) { + execute(TC_GEONW_PON_LPV_BV_01()); + } + + /* PON/SQN */ + + if(PICS_GN_GBC_SRC) { + execute(TC_GEONW_PON_SQN_BV_01()); + execute(TC_GEONW_PON_SQN_BV_02()); + } + + /* PON/LOS */ + + if(PICS_GN_LS_REQ_SRC) { + execute(TC_GEONW_PON_LOS_BV_01()); + execute(TC_GEONW_PON_LOS_BV_02()); + if(PICS_GN_LS_REP_DST) { + execute(TC_GEONW_PON_LOS_BV_03()); + execute(TC_GEONW_PON_LOS_BV_04()); + } + execute(TC_GEONW_PON_LOS_BV_05()); + } + + if(PICS_GN_LS_REQ_RETRANSMISSION) { + execute(TC_GEONW_PON_LOS_TI_06()); + execute(TC_GEONW_PON_LOS_BV_07()); + } + + if(PICS_GN_LS_REQ_DST) { + execute(TC_GEONW_PON_LOS_BV_08()); + execute(TC_GEONW_PON_LOS_BO_09()); + } + + if(PICS_GN_LS_FWD) { + execute(TC_GEONW_PON_LOS_BV_10()); + execute(TC_GEONW_PON_LOS_BV_11()); + } + + if(PICS_GN_LS_REQ_SRC) { + execute(TC_GEONW_PON_LOS_BV_12()); + execute(TC_GEONW_PON_LOS_BV_13()); + execute(TC_GEONW_PON_LOS_BV_14()); + execute(TC_GEONW_PON_LOS_BV_15()); + execute(TC_GEONW_PON_LOS_BV_16()); + execute(TC_GEONW_PON_LOS_BV_17()); + } + + /* PON/FPB */ + + if(PICS_GN_GUC_SRC) { + execute(TC_GEONW_PON_FPB_BV_01()); + execute(TC_GEONW_PON_FPB_BV_02()); + execute(TC_GEONW_PON_FPB_BV_03()); + execute(TC_GEONW_PON_FPB_BV_04()); + } + + if(PICS_GN_TSB_SRC) { + execute(TC_GEONW_PON_FPB_BV_06()); + execute(TC_GEONW_PON_FPB_BV_07()); + execute(TC_GEONW_PON_FPB_BV_08()); + } + + if(PICS_GN_GUC_SRC) { + execute(TC_GEONW_PON_FPB_BV_09()); + } + + if(PICS_GN_TSB_SRC) { + execute(TC_GEONW_PON_FPB_BV_10()); + } + + if(PICS_GN_GUC_SRC) { + execute(TC_GEONW_PON_FPB_BV_11_01()); + } + + if(PICS_GN_GAC_SRC) { + execute(TC_GEONW_PON_FPB_BV_11_02()); + } + + if(PICS_GN_GBC_SRC) { + execute(TC_GEONW_PON_FPB_BV_11_03()); + } + + if(PICS_GN_TSB_SRC) { + execute(TC_GEONW_PON_FPB_BV_11_04()); + } + + if(PICS_GN_SHB_SRC) { + execute(TC_GEONW_PON_FPB_BV_11_05()); + } + + if(PICS_GN_GUC_SRC) { + execute(TC_GEONW_PON_FPB_BV_12_01()); + } + + if(PICS_GN_GAC_SRC) { + execute(TC_GEONW_PON_FPB_BV_12_02()); + } + + if(PICS_GN_GBC_SRC) { + execute(TC_GEONW_PON_FPB_BV_12_03()); + } + + if(PICS_GN_TSB_SRC) { + execute(TC_GEONW_PON_FPB_BV_12_04()); + } + + /* PON/GNA */ + + if(PICS_GN_ADDR_AUTO) { + if (PICS_GN_LOCAL_ADDR_CONF_METHOD == e_auto) { + execute(TC_GEONW_PON_GNA_BV_01()); + } + } + + if(PICS_GN_DAD) { + execute(TC_GEONW_PON_GNA_BV_02()); + } + + /* PON/BEA */ + + if(PICS_GN_BEACON_SRC) { + execute(TC_GEONW_PON_BEA_TI_01()); + execute(TC_GEONW_PON_BEA_TI_02()); + } + + /* PON/GUC */ + + if(PICS_GN_GUC_SRC) { + if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GUC_BV_01()); + } + + if (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_cbf) { + execute(TC_GEONW_PON_GUC_BV_11()); + } + } + + if(PICS_GN_GUC_FWD) { + if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GUC_BV_02()); + } + + execute(TC_GEONW_PON_GUC_BV_03()); + execute(TC_GEONW_PON_GUC_BO_04()); + + if (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_cbf) { + execute(TC_GEONW_PON_GUC_BV_06()); + execute(TC_GEONW_PON_GUC_BV_07()); + execute(TC_GEONW_PON_GUC_BV_08()); + execute(TC_GEONW_PON_GUC_BV_10()); + } + + if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GUC_BO_12()); + } + } + + if(PICS_GN_GUC_DST) { + execute(TC_GEONW_PON_GUC_BV_05()); + + if ((PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_greedy) or (PICS_GN_GEOUNICAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GUC_BO_13()); + } + } + + /* PON/GBC */ + + if(PICS_GN_GBC_SRC) { + execute(TC_GEONW_PON_GBC_BV_01()); + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced)) { + execute(TC_GEONW_PON_GBC_BV_02()); + } + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GBC_BV_03()); + } + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { + execute(TC_GEONW_PON_GBC_BV_12()); + } + } + + if(PICS_GN_GBC_FWD) { + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GBC_BO_04()); + } + execute(TC_GEONW_PON_GBC_BV_05()); + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GBC_BO_06()); + } + execute(TC_GEONW_PON_GBC_BV_07()); + execute(TC_GEONW_PON_GBC_BV_08()); + execute(TC_GEONW_PON_GBC_BV_11()); + execute(TC_GEONW_PON_GBC_BO_19()); + execute(TC_GEONW_PON_GBC_BV_20()); + execute(TC_GEONW_PON_GBC_BV_21()); + } + + if(PICS_GN_GBC_DST) { + execute(TC_GEONW_PON_GBC_BV_09()); + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GBC_BO_10()); + } + } + + /* PON/TSB */ + + if(PICS_GN_TSB_SRC) { + execute(TC_GEONW_PON_TSB_BV_01()); + } + + if(PICS_GN_TSB_FWD) { + execute(TC_GEONW_PON_TSB_BV_02()); + execute(TC_GEONW_PON_TSB_BO_03()); + execute(TC_GEONW_PON_TSB_BV_04()); + execute(TC_GEONW_PON_TSB_BO_05()); + } + if(PICS_GN_TSB_DST) { + execute(TC_GEONW_PON_TSB_BV_06()); + execute(TC_GEONW_PON_TSB_BO_07()); + } + + /* PON/SHB */ + + if(PICS_GN_SHB_SRC) { + execute(TC_GEONW_PON_SHB_BV_01()); + } + if(PICS_GN_SHB_DST) { + execute(TC_GEONW_PON_SHB_BV_02()); + } + + /* PON/GAC */ + + if(PICS_GN_GAC_SRC) { + execute(TC_GEONW_PON_GAC_BV_01()); + if ((PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_simple) or (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_unspecified)) { + execute(TC_GEONW_PON_GAC_BV_02()); + } + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { + execute(TC_GEONW_PON_GAC_BV_13()); + } + } + + if(PICS_GN_GAC_FWD) { + execute(TC_GEONW_PON_GAC_BV_03()); + execute(TC_GEONW_PON_GAC_BV_04()); + execute(TC_GEONW_PON_GAC_BO_05()); + execute(TC_GEONW_PON_GAC_BV_06()); + execute(TC_GEONW_PON_GAC_BO_07()); + execute(TC_GEONW_PON_GAC_BO_11()); + } + + if(PICS_GN_GAC_DST) { + execute(TC_GEONW_PON_GAC_BV_08()); + execute(TC_GEONW_PON_GAC_BO_09()); + execute(TC_GEONW_PON_GAC_BV_10()); + } + + /* PON/BCA */ + + if(PICS_GN_GBC_FWD) { + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_cbf) { + execute(TC_GEONW_PON_BCA_BV_01()); + execute(TC_GEONW_PON_BCA_BV_02()); + execute(TC_GEONW_PON_BCA_BV_03()); + execute(TC_GEONW_PON_BCA_BO_04()); + execute(TC_GEONW_PON_BCA_BV_05()); + execute(TC_GEONW_PON_BCA_BV_06()); + execute(TC_GEONW_PON_BCA_BV_07()); + execute(TC_GEONW_PON_BCA_BV_08()); + } + } + + /* PON/BAA */ + + if(PICS_GN_GBC_FWD) { + if (PICS_GN_GEOBROADCAST_FORWARDING_ALGORITHM == e_advanced) { + execute(TC_GEONW_PON_BAA_BV_01()); + execute(TC_GEONW_PON_BAA_BV_02()); + execute(TC_GEONW_PON_BAA_BV_03()); + execute(TC_GEONW_PON_BAA_BV_04()); + execute(TC_GEONW_PON_BAA_BV_05()); + execute(TC_GEONW_PON_BAA_BV_06()); + execute(TC_GEONW_PON_BAA_BV_07()); + execute(TC_GEONW_PON_BAA_BO_08()); + execute(TC_GEONW_PON_BAA_BV_09()); + execute(TC_GEONW_PON_BAA_BV_10()); + execute(TC_GEONW_PON_BAA_BV_11()); + } + } + + /* CAP */ + + if(PICS_GN_LS_REQ_SRC) { + execute(TC_GEONW_CAP_LOS_BV_01()); + } + + if(PICS_GN_GUC_FWD) { + execute(TC_GEONW_CAP_FPB_BV_01()); + } + + if(PICS_GN_GBC_FWD) { + execute(TC_GEONW_CAP_FPB_BV_02()); + } + + } + +} // end ItsGeoNetworking_TestControl diff --git a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TpFunctions.ttcn b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TpFunctions.ttcn index ffbbfe24dd569321d3049dc40120c2dee4e24252..537ff2eaf94686047d722d660b88bf05b8cf2103 100644 --- a/ttcn/AtsGeoNetworking/ItsGeoNetworking_TpFunctions.ttcn +++ b/ttcn/AtsGeoNetworking/ItsGeoNetworking_TpFunctions.ttcn @@ -1,15828 +1,15799 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 / STF525 - * @version $URL$ - * $Id$ - * @desc GeoNetworking TP Functions - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsGeoNetworking_TpFunctions { - - // Libcommon - import from LibCommon_BasicTypesAndValues all; - import from LibCommon_DataStrings all; - import from LibCommon_Time all; - import from LibCommon_VerdictControl all; - import from LibCommon_Sync all; - - // LibItsCommon - import from LibItsCommon_Functions all; - - // LibItsGeoNetworking - import from LibItsGeoNetworking_TestSystem all; - import from LibItsGeoNetworking_Functions all; - import from LibItsGeoNetworking_Templates all; - import from LibItsGeoNetworking_TypesAndValues all; - import from LibItsGeoNetworking_Pics all; - import from LibItsGeoNetworking_Pixits all; -// import from LibItsGeoNetworking_EncdecDeclarations all; - - // 6.2.1 - group geoFormatingAndDataValidity { - - // 6.2.1.1 - group geoFdvBasicHeader { - - /** - * @desc TP Function for TC_GEONW_FDV_BAH_BV_01 - */ - function f_GEONW_FDV_BAH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - - // Test control - if (not PICS_GN_BASIC_HEADER) { - log("*** " & testcasename() & ": PICS_GN_BASIC_HEADER required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorNodeB := f_getPosition(vc_componentName); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if(not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1)))) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket(?, ?), -, f_getDefaultHopLimit()))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Basic Header correctly formatted ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_BAH_BV_01 - - /** - * @desc TP Function for TC_GEONW_FDV_BAH_BI_02 - */ - function f_GEONW_FDV_BAH_BI_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - // Local variables - var LongPosVector v_longPosVectorNodeB; - var template (value) GeoNetworkingPdu v_gnPacket; -//FIXME:remove var integer i; -//FIXME:remove var GnRawPayload v_sentRawPayload; - - // Test control - if (not PICS_GN_BASIC_HEADER) { - log("*** " & testcasename() & ": PICS_GN_BASIC_HEADER required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorNodeB := f_getPosition(c_compNodeB); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB)); - - f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket))); - - f_sleep(PX_TAC); - - if(0 < lengthof(vc_utInds)) { - log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer ***"); - //flush received upper indications - vc_utInds := {}; - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - } - else { - log("*** " & testcasename() & ": INCONC: GN was not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_error); - } - - // Test Body - v_gnPacket.basicHeader.version := valueof(v_gnPacket.basicHeader.version) + 1; - - f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket))); - - f_sleep(PX_TAC); - - if(0 != lengthof(vc_utInds)) { - log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - else { - log("*** " & testcasename() & ": PASS: GN was discarded and not transmitted to upper layer ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_BAH_BI_02 - - } // end geoFdvBasicHeader - - // 6.2.1.2 - group geoFdvCommonHeader { - - /** - * @desc TP Function for TC_GEONW_FDV_COH_BV_01 - */ - function f_GEONW_FDV_COH_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_COMMON_HEADER) { - log("*** " & testcasename() & ": PICS_GN_COMMON_HEADER required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(?)))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Common Header correclty formatted ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - f_acTriggerEvent(m_stopPassBeaconing); - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_COH_BV_01 - - /** - * @desc TP Function for TC_GEONW_FDV_COH_BV_02 - */ - function f_GEONW_FDV_COH_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var octetstring v_payload := char2oct("PAYLOAD"); - - // Test control - if (not PICS_GN_COMMON_HEADER) { - log("*** " & testcasename() & ": PICS_GN_COMMON_HEADER required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - if ( not f_utTriggerEvent(m_generateShbMessageWithPayload(v_payload)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwShbPacket))) -> value v_geoNwInd { - tc_ac.stop; - if(ispresent(v_geoNwInd.msgIn.gnPacket.packet.payload)) { - if(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength == lengthof(v_geoNwInd.msgIn.gnPacket.packet.payload)) { - log("*** " & testcasename() & ": PASS: PL field correctly indicates payload size ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - else { - log("*** " & testcasename() & ": FAIL: PL does correctly not indicate payload size (" - & int2str(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength) - & " != " - & int2str(lengthof(v_geoNwInd.msgIn.gnPacket.packet.payload)) - & ")***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - } - else { - if(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength == 0) { - log("*** " & testcasename() & ": PASS: PL field correctly indicates empty payload ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - else { - log("*** " & testcasename() & ": FAIL: PL does not indicate empty payload ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - } - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_COH_BV_02 - - /** - * @desc TP Function for TC_GEONW_FDV_COH_BV_03 - */ - function f_GEONW_FDV_COH_BV_03( - in template (present) UInt8 p_hopLimit := f_getDefaultHopLimit(), - in template (present) Bit8 p_flags := f_isMobile() - ) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_COMMON_HEADER) { - log("*** " & testcasename() & ": PICS_GN_COMMON_HEADER required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if(not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1)))) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithHlAndFlags(mw_longPosVectorPosition(v_longPosVectorIut), ?, p_hopLimit, p_flags)))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct GeoNetworking Common Header received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] a_receiveGeoBroadcast(mw_longPosVectorPosition(v_longPosVectorIut), ?) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Incorrect GeoNetworking Common Header received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_COH_BV_03 - - group GEONW_FDV_COH_BO_04 { - - /** - * @desc TP Function for TC_GEONW_FDV_COH_BO_04 - */ - function f_GEONW_FDV_COH_BO_04() runs on ItsMtc system ItsGeoNetworkingSystem { - - // Local variables - var ItsGeoNetworking v_nodeB; - var ItsGeoNetworking v_nodeD; - - // Test control - if (not PICS_GN_COMMON_HEADER) { - log("*** " & testcasename() & ": PICS_GN_COMMON_HEADER 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_GEONW_FDV_COH_BO_04_nodeB()); - v_nodeD.start(f_GEONW_FDV_COH_BO_04_nodeD()); - - // Synchronization - f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); - - // Cleanup - f_cf02Down(); - - } // end f_GEONW_FDV_COH_BV_04 - - /** - * @desc Behavior function for NodeB (TC_GEONW_FDV_COH_BV_04) - */ - function f_GEONW_FDV_COH_BO_04_nodeB() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); - var UInt8 v_hopLimit := f_getDefaultHopLimit(); - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - f_sendGeoNetMessage( - valueof(m_geoNwReq_linkLayerBroadcast( - m_geoNwPdu( - m_geoNwTsbPacket( - vc_localSeqNumber, - v_longPosVectorNodeB, - v_hopLimit-1 - ), - -, - v_hopLimit - ) - ) - )); - - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwTsbPacket( - ?, - mw_longPosVectorPosition(v_longPosVectorNodeB) - ) - ) - ) - ) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: TSB packet was not discarded ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: TSB was correctly discarded ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - } - - // Postamble - f_poNeighbour(); - - } // end f_GEONW_FDV_COH_BO_04_nodeB - - /** - * @desc Behavior function for NodeD (TC_GEONW_FDV_COH_BV_04) - */ - function f_GEONW_FDV_COH_BO_04_nodeD() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwTsbPacket( - ?, - mw_longPosVectorPosition(v_longPosVectorNodeB) - ) - ) - ) - ) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: TSB packet was not discarded ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: TSB was correctly discarded ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - } - - // Postamble - f_poNeighbour(); - - } // end f_GEONW_FDV_COH_BO_04_nodeD - - } // end GEONW_FDV_COH_BO_04 - - } // end geoFdvCommonHeader - - // 6.2.1.3 - group geoFdvBeacon { - - /** - * @desc TP Function for TC_GEONW_FDV_BEA_BV_01 - */ - function f_GEONW_FDV_BEA_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_BEACON_SRC) { - log("*** " & testcasename() & ": PICS_GN_BEACON_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(mw_longPosVectorPosition(v_longPosVectorIut), e_any)))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Common Header correclty formatted ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_BEA_BV_01 - - /** - * @desc TP Function for TC_GEONW_FDV_BEA_BV_02 - */ - function f_GEONW_FDV_BEA_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_BEACON_SRC) { - log("*** " & testcasename() & ": PICS_GN_BEACON_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket( - mw_longPosVectorAny(f_getIutGnLocalAddress()))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GN address correctly received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_BEA_BV_02 - - /** - * @desc TP Function for TC_GEONW_FDV_BEA_BV_03 - */ - function f_GEONW_FDV_BEA_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_BEACON_SRC) { - log("*** " & testcasename() & ": PICS_GN_BEACON_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(mw_longPosVectorPosition(v_longPosVectorIut))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Position equaling GN-MNGT primitive value received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_BEA_BV_03 - - /** - * @desc TP Function for TC_GEONW_FDV_BEA_BV_04 - */ - function f_GEONW_FDV_BEA_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_BEACON_SRC) { - log("*** " & testcasename() & ": PICS_GN_BEACON_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBeaconPacket(mw_longPosVectorPosition(v_longPosVectorIut))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Timestamp equaling GN-MNGT primitive value received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_BEA_BV_04 - - } // end geoFdvBeacon - - // 6.2.1.4 - group geoFdvGeoUnicast { - - /** - * @desc TP Function for TC_GEONW_FDV_GUC_BV_01 - */ - function f_GEONW_FDV_GUC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_GUC_SRC) { - log("*** " & testcasename() & ": PICS_GN_GUC_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - - // Test adapter configuration - - // Preamble - v_longPosVectorNodeB := f_getPosition(c_compNodeB); - v_longPosVectorIut := f_getPosition(c_compIut); - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwUnicastPacketWithSourcePv( - mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeB)), // DEPV - ?, // sequence number - mw_longPosVectorPosition(v_longPosVectorIut) //SOPV - ) - ) - ) - ) { - tc_ac.stop; - - log("*** " & testcasename() & ": PASS: Fields of the received GUC message correctly set ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: GUC message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_GUC_BV_01 - - } // end geoFdvGeoUnicast - - // 6.2.1.5 - group geoFdvGeoBroadcast { - - /** - * @desc TP Function for TC_GEONW_FDV_GBC_BV_01 - */ - function f_GEONW_FDV_GBC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_longPosVectorIut; - var octetstring v_payload := char2oct("PAYLOAD"); - - // Test control - if (not PICS_GN_GBC_SRC) { - log("*** " & testcasename() & ": PICS_GN_GBC_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - - // Test adapter configuration - - // Preamble - v_longPosVectorNodeB := f_getPosition(c_compNodeB); - v_longPosVectorIut := f_getPosition(c_compIut); - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessageWithPayload(f_getArea(c_area1), v_payload)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - f_receiveGeoNetMessageWithPayload( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwBroadcastPacket( - mw_longPosVectorPosition(v_longPosVectorIut), // SOPV - ? // sequence number - ) - ) - ), - ? - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Fields of the received GBC message correctly set ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": FAIL: GBC message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_GBC_BV_01 - - } // end geoFdvGeoBroadcast - - // 6.2.1.6 - group geoFdvGeoAnycast { - - /** - * @desc TP Function for TC_GEONW_FDV_GAC_BV_01 - */ - function f_GEONW_FDV_GAC_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - var octetstring v_payload := char2oct("PAYLOAD"); - - // Test control - if (not PICS_GN_GAC_SRC) { - log("*** " & testcasename() & ": PICS_GN_GAC_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - - // Test adapter configuration - - // Preamble - v_longPosVectorIut := f_getPosition(c_compIut); - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoAnycastMessageWithPayload(f_getArea(c_area1), v_payload)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - f_receiveGeoNetMessageWithPayload( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwAnycastPacket( - mw_longPosVectorPosition(v_longPosVectorIut), // SOPV - ? // sequence number - ) - ) - ), - ? - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Fields of the received GAC message correctly set ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: GAC message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_GAC_BV_01 - - } // end geoFdvGeoAnycast - - // 6.2.1.7 - group geoFdvSingleHopBroadcast { - - /** - * @desc TP Function for TC_GEONW_FDV_SHB_BV_01 - */ - function f_GEONW_FDV_SHB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_SHB_SRC) { - log("*** " & testcasename() & ": PICS_GN_SHB_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - - // Test adapter configuration - - // Preamble - v_longPosVectorIut := f_getPosition(c_compIut); - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateShbMessage) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwShbPacket( - mw_longPosVectorPosition(v_longPosVectorIut), // SOPV - 1 //MHL - ) - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Fields of the received SHB message correctly set ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: SHB message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_SHB_BV_01 - - } // end geoFdvSingleHopBroadcast - - // 6.2.1.8 - group geoFdvTopologicallyScopedBroadcast { - - /** - * @desc TP Function for TC_GEONW_FDV_TSB_BV_01 - */ - function f_GEONW_FDV_TSB_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_TSB_SRC) { - log("*** " & testcasename() & ": PICS_GN_TSB_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - - // Test adapter configuration - - // Preamble - v_longPosVectorIut := f_getPosition(c_compIut); - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateTsbMessage) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwTsbPacket( - ?, // sequence number - mw_longPosVectorPosition(v_longPosVectorIut) // SOPV - ) - ) - ) - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: message received with correct common and extended headers ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: TSB message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_FDV_TSB_BV_01 - - } // end geoFdvTopologicallyScopedBroadcast - - } // end geoFormatingAndDataValidity - - // 6.2.2 - group geoProtocolOperation { - - // 6.2.2.1 - group geoLocationTable { - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_01 - */ - function f_GEONW_PON_LOT_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - - // Test control - if (not PICS_GN_GUC_SRC or not PICS_GN_BEACON_DST) { - log("*** " & testcasename() & ": PICS_GN_GUC_SRC and PICS_GN_BEACON_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorNodeB := f_getPosition(c_compNodeB); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeB))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GUC packet received correctly ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] a_receiveGeoUnicastWithDestination(?) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: GUC packet has some inconsistence ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] a_receiveAnyLsRequest() { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": TIMEOUT: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_LOT_BV_01 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_02 - */ - function f_GEONW_PON_LOT_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeA; - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_longPosVectorIut; - var GN_Address v_gnAddressNodeA; - var boolean v_lsRequestReceived := false; - - // Test control - if (not PICS_GN_LS_REQ_SRC or not PICS_GN_LS_REP_DST) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorNodeA := f_getPosition(c_compNodeA); - v_longPosVectorNodeB := f_getPosition(c_compNodeB); - v_gnAddressNodeA := v_longPosVectorNodeA.gnAddr; - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - tc_ac.start; - alt { - [] a_receiveLsRequestAndReply( - ?, v_gnAddressNodeA.mid, - v_longPosVectorNodeA, v_longPosVectorNodeB - ) { - v_lsRequestReceived := true; - log("*** " & testcasename() & ": Pre-conditions: Received and answered Location Service Request ***"); - repeat; - } - [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { - tc_ac.stop; - if(v_lsRequestReceived == true) { - log("*** " & testcasename() & ": Pre-conditions: First GUC message received correctly ***"); - } - else { - log("*** " & testcasename() & ": Pre-conditions: GUC packet received without LS Request ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_error); - } - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": Pre-conditions: Initial conditions not satisfied. ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - } - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] a_receiveLsRequest(?, v_gnAddressNodeA.mid, v_longPosVectorIut) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Received second GUC packet without LS Request ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_LOT_BV_02 - - group GEONW_PON_LOT_BV_03 { - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_01 - */ - function f_GEONW_PON_LOT_BV_03_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeB); - - // Test control - if (not PICS_GN_BEACON_DST) { - log("*** " & testcasename() & ": PICS_GN_BEACON_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwBeaconPacket( - v_longPosVectorNode - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_01 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_02 - */ - function f_GEONW_PON_LOT_BV_03_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeA); - - // Test control - if (not PICS_GN_GUC_DST) { - log("*** " & testcasename() & ": PICS_GN_GUC_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwUnicastPacket( - v_longPosVectorNode, - f_getIutShortPosVector(), - vc_localSeqNumber - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_02 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_03 - */ - function f_GEONW_PON_LOT_BV_03_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeA); - - // Test control - if (not PICS_GN_GAC_DST) { - log("*** " & testcasename() & ": PICS_GN_GAC_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwAnycastPacket( - v_longPosVectorNode, - vc_localSeqNumber, - f_getGeoAnycastArea(c_area1) - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_03 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_04 - */ - function f_GEONW_PON_LOT_BV_03_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeA); - - // Test control - if (not PICS_GN_GBC_DST) { - log("*** " & testcasename() & ": PICS_GN_GBC_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwBroadcastPacket( - v_longPosVectorNode, - vc_localSeqNumber, - f_getGeoBroadcastArea(c_area1) - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_04 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_05 - */ - function f_GEONW_PON_LOT_BV_03_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeA); - - // Test control - if (not PICS_GN_TSB_DST) { - log("*** " & testcasename() & ": PICS_GN_TSB_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwTsbPacket( - vc_localSeqNumber, - v_longPosVectorNode - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_05 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_06 - */ - function f_GEONW_PON_LOT_BV_03_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeB); - - // Test control - if (not PICS_GN_SHB_DST) { - log("*** " & testcasename() & ": PICS_GN_SHB_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwShbPacket( - v_longPosVectorNode - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_06 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_07 - */ - function f_GEONW_PON_LOT_BV_03_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeA); - - // Test control - if (not PICS_GN_LS_REQ_DST) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - activate(a_receiveAnyLsReply()); - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwLsRequestPacket( - v_longPosVectorNode, - vc_localSeqNumber, - f_getIutGnLocalAddress() - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_07 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_03_08 - */ - function f_GEONW_PON_LOT_BV_03_08() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNode := f_TP_GEONW_PON_LOT_BV_03_pre_1(c_compNodeA); - - // Test control - if (not PICS_GN_LS_REP_DST) { - log("*** " & testcasename() & ": PICS_GN_LS_REP_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_03_pre_2( - m_geoNwLsReplyPacket( - v_longPosVectorNode, - f_getIutShortPosVector(), - vc_localSeqNumber - ) - ); - - f_TP_GEONW_PON_LOT_BV_03_main(v_longPosVectorNode); - - } // end f_GEONW_PON_LOT_BV_03_08 - - /** - * @desc Function including first preamble part (TC_GEONW_PON_LOT_BV_03) - */ - function f_TP_GEONW_PON_LOT_BV_03_pre_1(in charstring p_nodeName) runs on ItsGeoNetworking return LongPosVector { - - // Local variables - var LongPosVector v_longPosVectorNode; - - // Test control - - // Test component configuration - f_cf01Up(); - v_longPosVectorNode := f_getPosition(p_nodeName); - - // Test adapter configuration - - // Preamble part I - if(p_nodeName == c_compNodeA) { - f_prNeighbour(); - } - else { - f_prNonNeighbour(); - } - - return v_longPosVectorNode; - } // end f_TP_GEONW_PON_LOT_BV_03_pre_1 - - /** - * @desc Function including second preamble part (TC_GEONW_PON_LOT_BV_03) - */ - function f_TP_GEONW_PON_LOT_BV_03_pre_2(in template (value) GnNonSecuredPacket p_packet) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - //preamble part II - f_sendGeoNetMessage( - valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(p_packet, -, c_hopLimit1))) - ); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - } // end f_TP_GEONW_PON_LOT_BV_03_pre_2 - - /** - * @desc Function including test body and postamble part (TC_GEONW_PON_LOT_BV_03) - */ - function f_TP_GEONW_PON_LOT_BV_03_main(in template (value) LongPosVector p_longPosVectorNode) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(valueof(p_longPosVectorNode.gnAddr))) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] a_receiveAnyLsRequest() { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_longPosVectorNode)))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GUC packet received correctly ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_TP_GEONW_PON_LOT_BV_03_main - - } //end GEONW_PON_LOT_BV_03 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_04 - */ - function f_GEONW_PON_LOT_BV_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_LS_REQ_SRC) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorNodeB := f_getPosition(c_compNodeB); - - // Preamble - f_prDefault(); // NodeB will send Beacon only once - f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(m_geoNwBeaconPacket(f_getPosition(c_compNodeB)), -, c_hopLimit1)))); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - f_sleep(f_getLifetimeLocTableEntry() + PX_T_DELTA); - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeB.gnAddr)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] a_receiveLsRequest(?, v_longPosVectorNodeB.gnAddr.mid, v_longPosVectorIut ) { - log("*** " & testcasename() & ": PASS: LS Request received correctly ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: LS Request not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cf01Down(); - - } // end f_GEONW_PON_LOT_BV_04 - - group GEONW_PON_LOT_BV_05 { - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_01 - */ - function f_GEONW_PON_LOT_BV_05_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_GUC_DST) { - log("*** " & testcasename() & ": PICS_GN_GUC_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwUnicastPacket( - v_obsoleteLongPosVectorNodeB, - f_getIutShortPosVector(), - vc_localSeqNumber - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_01 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_02 - */ - function f_GEONW_PON_LOT_BV_05_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_GAC_DST) { - log("*** " & testcasename() & ": PICS_GN_GAC_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwAnycastPacket( - v_obsoleteLongPosVectorNodeB, - vc_localSeqNumber, - f_getGeoAnycastArea(c_area1) - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_02 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_03 - */ - function f_GEONW_PON_LOT_BV_05_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_GBC_DST) { - log("*** " & testcasename() & ": PICS_GN_GBC_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwBroadcastPacket( - v_obsoleteLongPosVectorNodeB, - vc_localSeqNumber, - f_getGeoBroadcastArea(c_area1) - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_03 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_04 - */ - function f_GEONW_PON_LOT_BV_05_04() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_TSB_DST) { - log("*** " & testcasename() & ": PICS_GN_TSB_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwTsbPacket( - vc_localSeqNumber, - v_obsoleteLongPosVectorNodeB - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_04 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_05 - */ - function f_GEONW_PON_LOT_BV_05_05() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_SHB_DST) { - log("*** " & testcasename() & ": PICS_GN_SHB_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwShbPacket( - v_obsoleteLongPosVectorNodeB - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_05 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_06 - */ - function f_GEONW_PON_LOT_BV_05_06() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_LS_REQ_DST) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - activate(a_receiveAnyLsReply()); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwLsRequestPacket( - v_obsoleteLongPosVectorNodeB, - vc_localSeqNumber, - f_getIutGnLocalAddress() - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_06 - - /** - * @desc TP Function for TC_GEONW_PON_LOT_BV_05_07 - */ - function f_GEONW_PON_LOT_BV_05_07() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeB; - var LongPosVector v_obsoleteLongPosVectorNodeB; - - // Test control - if (not PICS_GN_LS_REQ_DST) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - f_TP_GEONW_PON_LOT_BV_05_pre_1(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - f_TP_GEONW_PON_LOT_BV_05_pre_2( - m_geoNwLsReplyPacket( - v_obsoleteLongPosVectorNodeB, - f_getIutShortPosVector(), - vc_localSeqNumber - ) - ); - - f_TP_GEONW_PON_LOT_BV_05_main(v_longPosVectorNodeB, v_obsoleteLongPosVectorNodeB); - - } // end f_GEONW_PON_LOT_BV_05_07 - - /** - * @desc Function including first preamble part (TC_GEONW_PON_LOT_BV_05) - */ - function f_TP_GEONW_PON_LOT_BV_05_pre_1(out LongPosVector p_longPosVectorNodeB, out LongPosVector p_obsoleteLongPosVectorNodeB) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - - // Test control - - // Test component configuration - f_cf01Up(); - p_longPosVectorNodeB := f_getPosition(c_compNodeB); - p_obsoleteLongPosVectorNodeB := p_longPosVectorNodeB; - p_obsoleteLongPosVectorNodeB.timestamp_ := p_obsoleteLongPosVectorNodeB.timestamp_ - 1000; - p_obsoleteLongPosVectorNodeB.latitude := p_obsoleteLongPosVectorNodeB.latitude - 1; - - // Test adapter configuration - - // Preamble - f_prDefault(); - - // Act as a neighbor and send one beacon - f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(m_geoNwBeaconPacket(f_getPosition(c_compNodeB)), -, c_hopLimit1)))); - } // end f_TP_GEONW_PON_LOT_BV_05_pre_1 - - /** - * @desc Function including second preamble part (TC_GEONW_PON_LOT_BV_05) - */ - function f_TP_GEONW_PON_LOT_BV_05_pre_2(in template (value) GnNonSecuredPacket p_packet) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - //preamble part II - f_sendGeoNetMessage( - valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(p_packet))) - ); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - } // end f_TP_GEONW_PON_LOT_BV_05_pre_2 - - /** - * @desc Function including test body and postamble part (TC_GEONW_PON_LOT_BV_05) - */ - function f_TP_GEONW_PON_LOT_BV_05_main(in template (value) LongPosVector p_longPosVectorNodeB, in template (value) LongPosVector p_obsoleteLongPosVectorNodeB) runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(valueof(p_longPosVectorNodeB.gnAddr)))) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] a_receiveAnyLsRequest() { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Received Location Service Request ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_obsoleteLongPosVectorNodeB)))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: GN packet received with obsolete Destination Position Vector ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] a_receiveGeoUnicastWithDestination(mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(valueof(p_longPosVectorNodeB)))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GN packet packet received correctly ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poDefault(); - f_cf01Down(); - - } // end f_TP_GEONW_PON_LOT_BV_05_main - - } // end group GEONW_PON_LOT_BV_05 - - } // end geoLocationTable - - // 6.2.2.2 - group geoLocalPositionVector { - - /** - * @desc TP Function for TC_GEONW_PON_LPV_BV_01 - */ - function f_GEONW_PON_LPV_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - var template LongPosVector v_previouslongPosVectorIut; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not PICS_GN_BEACON_SRC) { - log("*** " & testcasename() & ": PICS_GN_BEACON_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up();//FIXME ac change position, not used by C2C - v_longPosVectorIut := f_getPosition(c_compIut); - v_previouslongPosVectorIut := v_longPosVectorIut; - v_previouslongPosVectorIut.timestamp_ := ?; - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu( - mw_geoNwBeaconPacket( - mw_longPosVectorAny(v_longPosVectorIut.gnAddr) - ) - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": Pre-conditions: Beacon received ***"); - v_longPosVectorIut := v_geoNwInd.msgIn.gnPacket.packet.extendedHeader.beaconHeader.srcPosVector; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - } - f_utChangePosition(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - geoNetworkingPort.clear; - tc_ac.start; - alt { - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu( - mw_geoNwBeaconPacket( - mw_longPosVectorAny(v_longPosVectorIut.gnAddr) - ) - ))) -> value v_geoNwInd { - tc_ac.stop; - //check if the position vector has changed - if (match(v_geoNwInd.msgIn.gnPacket.packet.extendedHeader.beaconHeader.srcPosVector, v_previouslongPosVectorIut)) { - log("*** " & testcasename() & ": FAIL: Sender Postion Vector not correctly updated ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - else { - log("*** " & testcasename() & ": PASS: Sender Postion Vector correctly updated ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - f_acTriggerEvent(m_stopPassBeaconing); - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_LPV_BV_01 - - } // end geoLocalPositionVector - - // 6.2.2.3 - group geoSequenceNumber { - - /** - * @desc TP Function for TC_GEONW_PON_SQN_BV_01 - */ - function f_GEONW_PON_SQN_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var UInt16 v_expectedSequenceNumber := 0; - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_GBC_SRC) { - log("*** " & testcasename() & ": PICS_GN_GBC_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] a_receiveGeoBroadcast( - mw_longPosVectorPosition(v_longPosVectorIut), - v_expectedSequenceNumber) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GBC packet received correctly ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] a_receiveGeoBroadcast( - mw_longPosVectorPosition(v_longPosVectorIut), - v_expectedSequenceNumber) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: GBC packet received with incorrect sequence number ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_SQN_BV_01 - - /** - * @desc TP Function for TC_GEONW_PON_SQN_BV_02 - */ - function f_GEONW_PON_SQN_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var UInt16 v_expectedSequenceNumber := 0; - var integer v_nbReceivedPackets := 0; - var GeoNetworkingInd v_geoNwInd; - var LongPosVector v_longPosVectorIut; - - // Test control - if (not PICS_GN_GBC_SRC) { - log("*** " & testcasename() & ": PICS_GN_GBC_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_sleep(10.0); - // receive first packet - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - tc_ac.start; - alt { - - [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacket( - mw_longPosVectorPosition(v_longPosVectorIut), - ? - )))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": Pre-conditions: First GUC packet received ***"); - v_expectedSequenceNumber := v_geoNwInd.msgIn.gnPacket.packet.extendedHeader.geoBroadcastHeader.seqNumber + 1; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": Pre-conditions: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - } - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - alt { - [] a_receiveGeoBroadcast( - mw_longPosVectorPosition(v_longPosVectorIut), - v_expectedSequenceNumber) { - tc_ac.stop; - v_nbReceivedPackets := v_nbReceivedPackets + 1; - if(v_nbReceivedPackets >= vc_multipleMessagesCount) { - log("*** " & testcasename() & ": PASS: GBC packets received with correct sequence numbers ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - else { - v_expectedSequenceNumber := v_expectedSequenceNumber + 1; - if ( not f_utTriggerEvent(m_generateGeoBroadcastMessage(f_getArea(c_area1))) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - tc_ac.start; - repeat; - } - } - [] a_receiveGeoBroadcast( - mw_longPosVectorPosition(v_longPosVectorIut), - ?) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: GBC packet received with incorrect sequence number ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_SQN_BV_02 - - } // end geoSequenceNumber - - // 6.2.2.4 - group geoLocationService { - - /** - * @desc TP Function for TC_GEONW_PON_LOS_BV_01 - */ - function f_GEONW_PON_LOS_BV_01() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - var GN_Address v_gnAddressNodeA; - - // Test control - if (not PICS_GN_LS_REQ_SRC) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_gnAddressNodeA := f_getPosition(c_compNodeA).gnAddr; - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_gnAddressNodeA)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - tc_ac.start; - alt { - [] a_receiveLsRequest( - ?, - v_gnAddressNodeA.mid, - v_longPosVectorIut - ) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: LS Request received correctly ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - [] a_receiveAnyLsRequest() { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: LS Request does not contain GN Address of nodeA ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_LOS_BV_01 - - /** - * @desc TP Function for TC_GEONW_PON_LOS_BV_02 - */ - function f_GEONW_PON_LOS_BV_02() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - var GN_Address v_gnAddressNodeA; - - // Test control - if (not PICS_GN_LS_REQ_SRC) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_SRC required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_gnAddressNodeA := f_getPosition(c_compNodeA).gnAddr; - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_gnAddressNodeA)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - tc_ac.start; - alt { - [] a_receiveLsRequest(?, v_gnAddressNodeA.mid, v_longPosVectorIut) { - tc_ac.stop; - //start retransmission timer - tc_ac.start(f_getLsRetransmitTimer() - f_getDeltaTimer()); - } - } - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_gnAddressNodeA)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); - } - - alt { - [] a_receiveLsRequest(?, v_gnAddressNodeA.mid, v_longPosVectorIut) { - tc_ac.stop; - log("*** " & testcasename() & ": Second LS_REQUEST received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": No second LS_REQUEST received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // end f_GEONW_PON_LOS_BV_02 - - /** - * @desc TP Function for TC_GEONW_PON_LOS_BV_03 - */ - function f_GEONW_PON_LOS_BV_03() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { - - // Local variables - var LongPosVector v_longPosVectorNodeA; - var LongPosVector v_longPosVectorIut; - var GeoNetworkingInd v_geoNetInd; - - // Test control - if (not PICS_GN_LS_REQ_SRC or not PICS_GN_LS_REP_DST) { - log("*** " & testcasename() & ": PICS_GN_LS_REQ_SRC AND PICS_GN_LS_REP_DST required for executing the TC ***"); - setverdict(inconc); - stop; - } - - // Test component configuration - f_cf01Up(); - v_longPosVectorNodeA := f_getPosition(c_compNodeA); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - if ( not f_utTriggerEvent(m_generateGeoUnicastMessage(v_longPosVectorNodeA.gnAddr)) ) { - log("*** " & testcasename() & ": INCONC: Trigger failed ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - tc_ac.start; - alt { - [] a_receiveLsRequest(?, v_longPosVectorNodeA.gnAddr.mid, v_longPosVectorIut) { - tc_ac.stop; - } - } - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - f_sendGeoNetMessage( - valueof(m_geoNwReq_linkLayerBroadcast( - m_geoNwPdu( - m_geoNwLsReplyPacket( - v_longPosVectorNodeA, - f_longPosVector2ShortPosVector(v_longPosVectorIut), - vc_localSeqNumber - ) - ) - ) - )); - - tc_ac.start; - alt { - - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwPdu( - mw_geoNwUnicastPacket( - mw_shortPosVectorPosition(f_longPosVector2ShortPosVector(v_longPosVectorNodeA)), - ? - ) - ) - ) - ) -> value v_geoNetInd { - tc_ac.stop; - //we only check that the lifetime is less than the default lifetime due to - //we do not know exactly the time passed at IUT - if (f_getLifetimeValue(v_geoNetInd.msgIn.basicHeader.lifeTime)
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the 'authorized' state - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a Ieee1609Dot2Data - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing protocol_version - * indicating value '3' - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_TC_SEC_ITSS_SND_MSG_01_BV - * @reference ETSI TS 103 097 [1] Clause 5.1 - * @reference IEEE1609.2[2] Clause 6.3.2 - */ - testcase TC_SEC_ITSS_SND_MSG_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Security protocol version set to 3 ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_MSG_01_BV - - /** - * @desc Sending behaviour test cases for CAM profile. - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.4 CAM profile - */ - group camProfile { - - /** - * @desc Check that IUT sends the secured CAM using SignedData container. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing content - * containing signedData - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_01_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: The CA message is secured"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_01_BV - - /** - * @desc Check that IUT sends the secured CAM containing the HeaderInfo field psid set to 'AID_CAM'. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing psid - * indicating 'AID_CAM' - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_02_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_02_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_02_BV - - /** - * @desc Check that IUT sends the secured CAM with the HeaderInfo containing generationTime - * and doesn't containing expiryTime, generationLocation, encryptionKey, p2pcdLearningRequest, missingCrlIdentifier. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing generationTime - * and not containing expiryTime - * and not containing generationLocation, - * and not containing encryptionKey - * and not containing p2pcdLearningRequest - * and not containing missingCrlIdentifier - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_03_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_03_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_03_BV - - /** - * @desc Check that IUT sends the secured CAM containing signer containing either certificate or digest; - * Check that signing certificate has permissions to sign CAM messages. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing signer - * containing digest - * or containing certificate - * containing toBeSigned - * containing appPermissions - * containing the item of type PsidSsp - * containing psid - * indicating AID_CAM - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_04_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 - * @reference IEEE 1609.2 [2] Clause 6.3.4 - */ - testcase TC_SEC_ITSS_SND_CAM_04_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // or containing certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - { *, mw_appPermissions(c_its_aid_CAM), * } - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received, containing certificate"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_04_BV - - /** - * @desc Check that IUT calculate the digest of certificate using proper hash algorithm; - * Check that IUT canonicalize certificates before hash calculation. - *
- * Pics Selection: PICS_GN_SECURITY and ((PICS_SEC_SHA256 and (PICS_SEC_NIST_P256 or PICS_SEC_BRAINPOOL_P256R1)) or (PICS_SEC_SHA384 and PICS_SEC_BRAINPOOL_P384R1)) - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * and the IUT is configured to send more than one CAM per second - * and the IUT having sent a secured CAM - * containing signer - * containing certificate - * indicating X_CERTIFICATE - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * } - * ensure that { - * when { - * the IUT is requested to send a subsequent secured CAM - * containing signer - * containing digest - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing signer - * containing digest - * indicating last 8 bytes of the Hash value calculated using X_HASH algorithm - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_05_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 - * @reference IEEE 1609.2 [2] Clause 6.3.4 - */ - testcase TC_SEC_ITSS_SND_CAM_05_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var EtsiTs103097Certificate v_certificate; - var HashedId8 v_certificate_digest; - var ItsCam v_component; - - // Test control - if (not(PICS_GN_SECURITY and ((PICS_SEC_SHA256 and (PICS_SEC_NIST_P256 or PICS_SEC_BRAINPOOL_P256R1)) or (PICS_SEC_SHA384 and PICS_SEC_BRAINPOOL_P384R1)))) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and ((PICS_SEC_SHA256 and (PICS_SEC_NIST_P256 or PICS_SEC_BRAINPOOL_P256R1)) or (PICS_SEC_SHA384 and PICS_SEC_BRAINPOOL_P384R1))' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); - f_getCertificateDigest(vc_hashedId8ToBeUsed, v_certificate_digest); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [PICS_SEC_SHA256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - sha256, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - mw_issuerIdentifier_sha256AndDigest( - v_certificate.issuer.sha256AndDigest - ), - mw_toBeSignedCertificate_at( - -, - v_certificate.toBeSigned.verifyKeyIndicator - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [PICS_SEC_SHA384 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - sha384, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - mw_issuerIdentifier_sha384AndDigest( - v_certificate.issuer.sha384AndDigest - ), - mw_toBeSignedCertificate_at( - -, - v_certificate.toBeSigned.verifyKeyIndicator - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with AT certificate received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with AT certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [PICS_SEC_SHA256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - sha256, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest( - v_certificate_digest - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured CA message received"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_SHA384 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - sha384, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest( - v_certificate_digest - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured CA message received"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_05_BV - - /** - * @desc Check that IUT sends the secured CAM containing the signing certificate when over the time of one - * second no other secured CAM contained the certificate was sent. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT is configured to send more then one CAM per second - * and the IUT having sent a CAM - * containing generationTime - * indicating TIME_LAST - * } - * ensure that { - * when { - * the IUT is sending secured CAM as a message of type EtsiTs103097Data - * containing signer - * containing signer - * containing certificate - * } then { - * this message - * contains headerInfo - * containing generation_time - * indicating TIME (TIME >= TIME_LAST + 1sec) - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_06_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_06_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var Time64 v_time_last; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - v_time_last := f_getSecuredMessage(v_geoNwInd.msgIn).content.signedData.tbsData.headerInfo.generationTime; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received, TIME_LAST = ", v_time_last, " ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - if (ff_abs(int2float(v_geoNwInd.msgIn.gnPacket.securedMsg.content.signedData.tbsData.headerInfo.generationTime - v_time_last)) <= 0.95) { - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was within a second ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: Generation of CAM messages including certificate was not within a second ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission with digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_06_BV - - /** - * @desc Check that IUT sends the secured CAM containing the signing certificate when the timeout of one second - * has been expired after the previous CAM containing the certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the 'authorized' state - * and the IUT is configured to send more than one CAM per second - * and the IUT having sent a CAM - * containing signer - * containing certificate - * and containing generationTime - * indicating TIME_LAST - * } - * ensure that { - * when { - * the IUT is sending a CAM - * containing header_fields['generation_time'] - * indicating TIME >= TIME_LAST + 1sec - * } then { - * when { - * the IUT is sending secured CAM as a message of type EtsiTs103097Data - * containing generationTime - * indicating TIME (TIME >= TIME_LAST + 1sec) - * } then { - * this message is - * containing certificate - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_07_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_07_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const integer c_cntTimeLimit := 10; - const float c_certificateGenerationTime := 1.0; - timer t_maxTransInterval := c_certificateGenerationTime * 1.3;//1.15; - var integer v_cntTime := 0; - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_component := f_setCamFrequencyGreatherThan1Hz(); - geoNetworkingPort.clear; - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - t_maxTransInterval.start; - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - t_maxTransInterval.stop; - v_cntTime := v_cntTime + 1; - if (v_cntTime == c_cntTimeLimit) { // Exit message loop - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - // end of alt - } - else { - t_maxTransInterval.start; - log("*** " & testcasename() & ": INFO: CA message retransmission with certificate ***"); - repeat; - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission with digest ***"); - repeat; - } - [] t_maxTransInterval.timeout { - log("*** " & testcasename() & ": FAIL: CA message with certificate was not received in 1 sec after previous one ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_07_BV - - /** - * @desc Check that IUT sends the secured CAM containing the signing certificate when the IUT received - * a CAM from an unknown ITS-S. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT is configured to send more than one CAM per second - * and the IUT having already sent CAM - * containing certificate - * at TIME_1 - * and the IUT having received a Ieee1609Dot2Data - * containing signedData - * containing signer - * containing digest - * indicating HashedId8 value - * referenced to unknown certificate (CERT_TS_B_AT) - * at TIME_2 (TIME_1 < TIME_2 < TIME_1+1sec) - * } - * ensure that { - * when { - * the IUT is requested to send CAM - * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing signedData - * containing type - * containing signer - * containing certificate - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_08_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_08_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - timer t_maxTransInterval := 0.5; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_component := f_setCamFrequencyGreatherThan1Hz(); - geoNetworkingPort.clear; - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message from unknown ITS-S - geoNetworkingPort.clear; - f_sendSecuredCam(cc_taCert_B, valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), valueof(m_signerIdentifier_digest), f_getTsStationId() + 10/*Unknown ITS-S*/); - - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } - - // Test Body - t_maxTransInterval.start; - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) { - repeat; - } - [] t_maxTransInterval.timeout { - log("*** " & testcasename() & ": FAIL: CA message was transmited w/o unrecognized request header ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_08_BV - - /** - * @desc Check that IUT restarts the certificate sending timer when the certificate has been sent. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the 'authorized' state (CERT_IUT_A_AT) - * and the IUT is configured to send more then one CAM per second - * and the IUT having already sent CAM at TIME_1 - * containing signer - * containing certificate - * and the IUT having received a CAM at TIME_2 (TIME_1 + 0.3sec) - * containing signer - * containing digest - * containing HashedId8 value - * indicating ann unknown certificate - * and the IUT having sent CAM at TIME_3 (TIME_3 > TIME_2) - * containing signer - * containing certificate - * } - * ensure that { - * when { - * the IUT is sending the next CAM at TIME_4 - * containing signer - * containing certificate - * } then { - * the difference between TIME_4 and TIME_3 is about of 1sec - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_09_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_09_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const float c_certificateGenerationTime := 1.0; - - timer t_maxTransInterval := c_certificateGenerationTime * 0.9; - var GeoNetworkingInd v_geoNwInd; - var SignerIdentifier v_signerIdentifier; - var ItsCam v_component; - var boolean v_firstCertReceived := false; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_component := f_setCamFrequencyGreatherThan1Hz(); - geoNetworkingPort.clear; - tc_ac.start; - alt { - [v_firstCertReceived == false] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - log("*** " & testcasename() & ": INFO: Initial conditions: The first CAM with certificate is received ***"); - v_firstCertReceived := true; - f_sleep(0.3); - // Send secured message with request for unrecognized certificate - f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); - f_sendSecuredCam( - cc_taCert_F, - valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), - valueof( - m_signerIdentifier_digest( - f_calculateDigestFromCertificate( - v_signerIdentifier.certificate[0] - ) - ) - ) - ); - repeat; - } - [v_firstCertReceived == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - // start a timeout of one second to check - // that the next cert will be received after this timeout - t_maxTransInterval.start; - log("*** " & testcasename() & ": INFO: Initial conditions: The requested CAM with certificate is received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.stop; - log("*** " & testcasename() & ": FAIL: CA message certificate inclusion time wasn't restarted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); - repeat; - } - [] t_maxTransInterval.timeout { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: The CAM certificate inclusion timer has been restarted ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_09_BV - - /** - * @desc Check that the IUT sends certificate request when it receives secured CAM containing - * digest of unknown certificate as a message signer. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AT_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT has receiving a EtsiTs103097Data - * containing signer - * containing digest - * indicating HashedId8 value DIGEST_A - * referencing an unknown certificate (CERT_TS_B_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing headerInfo - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of DIGEST_A - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_10_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.1.2 - */ - testcase TC_SEC_ITSS_SND_CAM_10_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HashedId8 v_hashedId8; - var HashedId3 v_expectedHashedId3; - var ItsCam v_component; - timer t_maxTransInterval := 0.5; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AT_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_getCertificateDigest( - cc_taCert_B, - v_hashedId8 - ); - v_expectedHashedId3 := f_HashedId3FromHashedId8(v_hashedId8); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message from unknown ITS-S - geoNetworkingPort.clear; - f_sendSecuredCam( - cc_taCert_B, // SHA-256/NIST P-256 - valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - t_maxTransInterval.start; - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam( - -, -, - { v_expectedHashedId3 } - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate request was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) { - repeat; - } - [] t_maxTransInterval.timeout { - log("*** " & testcasename() & ": FAIL: CAM was transmited w/o unrecognized request header ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_10_BV - - /** - * @desc Check that the IUT sends certificate request when it receives secured CAM - * containing certificate signed by unknown AA certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA256 - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT has receiving a CAM - * containing signer - * containing digest - * indicating HashedId8 value DIGEST_A - * referencing an unknown certificate (CERT_TS_B_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing headerInfo - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of DIGEST_A - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_11_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.1.2 - */ - testcase TC_SEC_ITSS_SND_CAM_11_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HashedId8 v_hashedId8; - var HashedId3 v_expectedHashedId3; - var ItsCam v_component; - - // Test control - if (not(PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA256)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA256' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - if (PICS_SEC_SHA256 == true) { - f_getCertificateDigest( - cc_taCert_B, - v_hashedId8 - ); - } - v_expectedHashedId3 := f_HashedId3FromHashedId8(v_hashedId8); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message from unknown ITS-S - geoNetworkingPort.clear; - f_sendSecuredCam( - cc_taCert_B, - valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement; - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam( - -, - -, - { v_expectedHashedId3 } - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate request was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate request ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_11_01_BV - - /** - * @desc Check that the IUT sends certificate request when it receives secured CAM - * containing certificate signed by unknown AA certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA384 - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT has receiving a CAM - * containing signer - * containing digest - * indicating HashedId8 value DIGEST_A - * referencing an unknown certificate (CERT_TS_B_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing headerInfo - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of DIGEST_A - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_11_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.1.2 - */ - testcase TC_SEC_ITSS_SND_CAM_11_02_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HashedId8 v_hashedId8; - var HashedId3 v_expectedHashedId3; - var ItsCam v_component; - - // Test control - if (not(PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA384)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA384' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - if (PICS_SEC_SHA384 == true) { - f_getCertificateDigest( - cc_taCert_B1, - v_hashedId8 - ); - } - v_expectedHashedId3 := f_HashedId3FromHashedId8(v_hashedId8); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message from unknown ITS-S - geoNetworkingPort.clear; - f_sendSecuredCam( - cc_taCert_B, - valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement; - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam( - -, - -, - { v_expectedHashedId3 } - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate request was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate request ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_11_02_BV - - /** - * @desc Check that IUT sends the secured CAM containing the signing certificate when it received - * a CAM containing a request for unrecognized certificate that matches with the currently - * used AT certificate ID of the IUT. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AT_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT is configured to send more than one CAM per second - * and the IUT having already sent a CAM - * containing signer - * containing certificate - * at TIME_1 - * and the IUT having received a CAM - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of currently used AT certificate - * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) - * } - * ensure that { - * when { - * the IUT is requested to send a CAM - * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) - * } then { - * the IUT sends a CAM - * containing signer - * and containing certificate - * referenced by the requested digest - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_12_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_12_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const float c_certificateGenerationTime := 1.0; - - timer t_maxTransInterval := c_certificateGenerationTime * 0.9; - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var HashedId8 v_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AT_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_getCertificateDigest( - cc_taCert_B, // Unknown certificate - v_hashedId8 - ); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.start; - - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message with request for the currently used AT certificate - f_sendSecuredCam( - cc_taCert_A, - valueof( - m_headerInfo_cam( - -, - (f_getCurrentTime() * 1000)/*us*/, - -, - { f_HashedId3FromHashedId8(v_hashedId8) } - )), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - var SignerIdentifier v_signerIdentifier; - var SequenceOfCertificate v_certificates; - var integer v_certificatesLength; - - tc_ac.stop; - t_maxTransInterval.stop; - // Extract certificate chain - f_getMsgSignerIdentifier(v_geoNwInd.msgIn.gnPacket.securedMsg, v_signerIdentifier); - v_certificates := v_signerIdentifier.certificate; - v_certificatesLength := lengthof(v_certificates); - if (v_certificatesLength == 1) { - // Check reference - if (f_calculateDigestFromCertificate(v_certificates[0]) == v_hashedId8) { - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: Wrong certificate reference ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: Unexpected certificate content ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); - repeat; - } - [] t_maxTransInterval.timeout { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_12_BV - - /** - * @desc Check that IUT sends the secured CAM containing the AA certificate in the requestedCertificate - * headerInfo field when it received a CAM containing a request for unrecognized certificate that - * matches with the currently used AA certificate ID of the IUT. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AT_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * issued by the AA certificate (CERT_IUT_A_AA) - * and the IUT is configured to send more than one CAM per second - * and the IUT having already sent a CAM - * containing signer - * containing certificate - * at TIME_1 - * and the IUT having received a CAM - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of the digest of CERT_IUT_A_AA - * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) - * } - * ensure that { - * when { - * the IUT is requested to send a CAM - * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) - * } then { - * the IUT sends a CAM - * containing headerInfo - * and containing the requestedCertificate - * indicating requested AA certificate CERT_IUT_A_AA - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_13_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_13_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const float c_certificateGenerationTime := 1.0; - - timer t_maxTransInterval := c_certificateGenerationTime * 0.9; - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var Certificate v_aa_certificate; - var HashedId8 v_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AT_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_iutCert_A_AA, v_aa_certificate); - f_getCertificateDigest( - cc_iutCert_A_AA, - v_hashedId8 - ); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.start; - - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message with request for the currently used AT certificate - f_sendSecuredCam( - cc_taCert_A, - valueof( - m_headerInfo_cam( - -, - (f_getCurrentTime() * 1000)/*us*/, - -, - { f_HashedId3FromHashedId8(v_hashedId8) } - )), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam( - -, -, -, - v_aa_certificate - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - t_maxTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); - repeat; - } - [] t_maxTransInterval.timeout { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_13_BV - - /** - * @desc Check that IUT sends the secured CAM containing the AA certificate in the requestedCertificate headerInfo - * field when it received a CAM containing a request for unrecognized certificate that matches with the known - * AA certificate ID which is not currently used by the IUT. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * and the IUT is configured to send more than one CAM per second - * and the IUT is configured to know the AA certificate (CERT_TS_B_AA) - * and the IUT having already sent a CAM - * containing signer - * containing certificate - * at TIME_1 - * and the IUT having received a CAM - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of the digest of CERT_TS_B_AA - * which is not an issuer of currently used AT certificate - * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) - * } - * ensure that { - * when { - * the IUT is requested to send a CAM - * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing the requestedCertificate - * indicating requested AA certificate CERT_TS_B_AA - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_14_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_14_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const float c_certificateGenerationTime := 1.0; - - timer t_maxTransInterval := c_certificateGenerationTime * 0.9; - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var Certificate v_aa_certificate; - var HashedId8 v_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_taCert_B_AA, v_aa_certificate); - f_getCertificateDigest( - cc_taCert_B_AA, - v_hashedId8 - ); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.start; - - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message with request for the currently used AT certificate - f_sendSecuredCam( - cc_taCert_A, - valueof( - m_headerInfo_cam( - -, - (f_getCurrentTime() * 1000)/*us*/, - -, - { f_HashedId3FromHashedId8(v_hashedId8) } - )), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam( - -, -, -, - v_aa_certificate - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - t_maxTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] t_maxTransInterval.timeout { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_14_BV - - /** - * @desc Check that the IUT doesn't send a secured CAM containing the AA certificate in the requestedCertificate - * headerInfo field when it was previously requested and already received from another ITS-S. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * issued by the AA certificate (CERT_IUT_A_AA) - * and the IUT is configured to send more than one CAM per second - * and the IUT having already sent a CAM - * containing signer - * containing certificate - * at TIME_1 - * and the IUT having received a CAM - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of the digest of CERT_IUT_A_AA - * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 0.8sec) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 0.9sec) - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * does not containing requestedCertificate - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_15_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_15_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const float c_certificateGenerationTime := 0.8; - - timer t_maxTransInterval := c_certificateGenerationTime * 0.9; - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var Certificate v_aa_certificate; - var HashedId8 v_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_iutCert_A_AA, v_aa_certificate); - f_getCertificateDigest( - cc_iutCert_A_AA, - v_hashedId8 - ); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.start; - - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message with request for the currently used AT certificate - f_sendSecuredCam( - cc_taCert_A, - valueof( - m_headerInfo_cam( - -, - (f_getCurrentTime() * 1000)/*us*/, - -, - { f_HashedId3FromHashedId8(v_hashedId8) } - )), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam // does not containing requested certificate - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - t_maxTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] t_maxTransInterval.timeout { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_15_BV - - /** - * @desc Check that the IUT doesn't send a secured CAM containing the AA certificate in the requestedCertificate - * headerInfo field when it contains certificate in the signer field. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * issued by the AA certificate (CERT_IUT_A_AA) - * and the IUT is configured to send more than one CAM per second - * and the IUT having already sent a CAM - * containing signer - * containing certificate - * at TIME_1 - * and the IUT having received a CAM - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of the digest of CERT_IUT_A_AA - * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 0.9sec) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * does not containing requestedCertificate - * and containing signer - * containing certificate - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_16_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_16_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const float c_certificateGenerationTime := 0.8; - - timer t_maxTransInterval := c_certificateGenerationTime * 0.9; - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var Certificate v_aa_certificate; - var HashedId8 v_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_taCert_AA, v_aa_certificate); - f_getCertificateDigest( - cc_taCert_AA, - v_hashedId8 - ); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - t_maxTransInterval.start; - - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message with request for the currently used AT certificate - f_sendSecuredCam( - cc_taCert_A, - valueof( - m_headerInfo_cam( - -, - (f_getCurrentTime() * 1000)/*us*/, - -, - { f_HashedId3FromHashedId8(v_hashedId8) } - )), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam // Not containing requestedCertificate - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - t_maxTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam // Not containing requestedCertificate - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); - repeat; - } - [] t_maxTransInterval.timeout { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_16_BV - - /** - * @desc Check that the IUT send a secured CAM containing the AA certificate in the - * requestedCertificate headerInfo field with the next CAM containing digest - * as a signer info. - *
- * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * issued by the AA certificate (CERT_IUT_A_AA) - * and the IUT is configured to send more than one CAM per second - * and the IUT having already sent a CAM - * containing signer - * containing certificate - * at TIME_1 - * and the IUT having received a CAM - * containing inlineP2pcdRequest - * containing HashedId3 value - * indicating last 3 octets of the digest of CERT_IUT_A_AA - * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) - * } - * ensure that { - * when { - * the IUT is sending a first subsequent secured CAM - * containing signer - * containing digest - * } then { - * this message - * containing headerInfo - * containing requestedCertificate - * indicating requested AA certificate CERT_IUT_A_AA - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_17_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.1 - * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_17_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var ItsCam v_component; - var Certificate v_aa_certificate; - var HashedId8 v_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { - log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_iutCert_A_AA, v_aa_certificate); - f_getCertificateDigest( - cc_iutCert_A_AA, - v_hashedId8 - ); - geoNetworkingPort.clear; - v_component := f_setCamFrequencyGreatherThan1Hz(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - - // Send secured message with request for the currently used AT certificate - f_sendSecuredCam( - cc_taCert_A, - valueof( - m_headerInfo_cam( - -, - (f_getCurrentTime() * 1000)/*us*/, - -, - { f_HashedId3FromHashedId8(v_hashedId8) } - )), - valueof( - m_signerIdentifier_digest( - v_hashedId8 - ) - ) - ); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam( - -, -, -, - v_aa_certificate - ) - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_terminateCam(v_component); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_17_BV - - /** - * @desc Check that IUT sends the secured CAM containing generation time and this time is inside the validity period of the signing certificate; - * Check that message generation time value is realistic - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a CAM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationTime - * indicating TIME_1 (CUR_TIME - 5min <= TIME_1 <= CUR_TIME + 5min) - * and containing signer - * containing certificate - * containing toBeSigned - * containing validityPeriod - * containing start - * indicating value X_START_VALIDITY (X_START_VALIDITY <= GEN_TIME) - * and containing duration - * indicating value > GEN_TIME - X_START_VALIDITY - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_18_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.1 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2, 5.2.4.2.2, 5.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_CAM_18_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - const integer c_timeLimit := 2 * 60 * 1000000; // us - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var Time64 v_generationTime; - var Time64 v_curTime; - var SignerIdentifier v_signerIdentifier; - var ValidityPeriod v_validityPeriod; - var Certificate v_cert; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - geoNetworkingPort.clear; - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); - v_generationTime := v_headerInfo.generationTime; - v_curTime := f_getCurrentTime(); - v_curTime := v_curTime * 1000; // Time64 is in microseconds - log("v_generationTime (us)=", v_generationTime); - log("c_timeLimit (us)=", c_timeLimit); - log("v_curTime (us)=", v_curTime); - log("valid interval=", Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit)); - // Check generation time - if ((v_generationTime < (v_curTime - c_timeLimit)) or (v_generationTime > (v_curTime + c_timeLimit))) { - //if (not match(v_generationTime, Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { - log("*** " & testcasename() & ": FAIL: CA message generation time is not in 5 min range"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - // Check certificate validity period - f_getMsgSignerIdentifier (f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); - log("v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_ (s)=", v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_); - log("c_timeLimit (s)=", c_timeLimit / 1000000); - log("v_curTime (u)=", v_curTime / 1000000); - log("valid interval=", Time32:((v_curTime - c_timeLimit) / 1000000, (v_curTime + c_timeLimit) / 1000000)); - if ( - (v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_ < (v_curTime - c_timeLimit) / 1000000) or - (v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_ > (v_curTime + c_timeLimit) / 1000000) - ){ - //if (not match(v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_, Time32:((v_curTime - c_timeLimit) / 1000000, (v_curTime + c_timeLimit) / 1000000))) { - log("*** " & testcasename() & ": FAIL: CA message certificate validity period is not in 5 min range"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwShbPacket - ))) { - log("*** " & testcasename() & ": INFO: CA message retransmission with digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_18_BV - - /** - * @desc Check that IUT sends the secured CAM containing the 'data' field in signed data payload, - * containing the EtsiTs103097Data of type unsecured, contained the CAM payload - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * contains content - * contains signedData - * containing tbsData - * containing payload - * containing data - * containing content - * containing unsecuredData - * containing not-empty data - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_19_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 - */ - testcase TC_SEC_ITSS_SND_CAM_19_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - log("###############", mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload( - mw_ieee1609Dot2Data( - mw_ieee1609Dot2Data_unsecured - )), - mw_headerInfo_cam - ) - ) - ) - ))); - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload( - mw_ieee1609Dot2Data( - mw_ieee1609Dot2Data_unsecured - )), - mw_headerInfo_cam - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CAM received with a well formated payload ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_19_BV - - /** - * @desc Check that the IUT sends the secured CAM signed with the certificate containing appPermisions - * allowing to sign CA messages - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing signer - * containing certificate - * containing appPermissions - * containing an item of type PsidSsp - * containing psid = AID_CAM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_20_BV - * @reference ETSI TS 103 097 [1] Clauses 7.2.1 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_CAM_20_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // containing certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - { *, mw_appPermissions(c_its_aid_CAM), * } - ) - ) - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CAM received with a well formated certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: CA message with digest was received ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_20_BV - - /** - * @desc Check that IUT sends the secured CAM containing signature; - * Check that the signature is calculated over the right fields - * and using right hash algorythm by cryptographically verifying the signature - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing signedData - * containing signer - * containing digest - * referencing the certificate X_CERTIFICATE - * or containing certificate - * indicating X_CERTIFICATE - * and containing signature - * containing X_SIGNATURE - * verifiable using KEY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_21_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 - * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 - - */ - testcase TC_SEC_ITSS_SND_CAM_21_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var EtsiTs103097Certificate v_certificate; - var Signature v_signature; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest( // containing digest referencing the certificate X_CERTIFICATE - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].issuer - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: CA message with digest received ***"); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // or containing containing certificate indicating X_CERTIFICATE - v_certificate - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: CA message with certificate received ***"); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - // Check that the signature is calculated over the right fields and using right hash algorythm by cryptographically verifying the signature - if (f_verifyGnSecuredMessageSignatureWithCertificate(f_getSecuredMessage(v_geoNwInd.msgIn), vc_hashedId8ToBeUsed, v_certificate)) { - log("*** " & testcasename() & ": PASS: Signature verified successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: Signature not verified successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_21_BV - - /** - * @desc Check that IUT sends the secured CAM containing signature containing the ECC point of type set to - * either compressed_lsb_y_0, compressed_lsb_y_1 or x_coordinate_only. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing signedData - * containing signature - * containing one of the ecdsaNistP256Signature - * or containing ecdsaBrainpoolP256r1Signature - * or containing ecdsaBrainpoolP384r1Signature - * containing rSig - * containing x-only - * or containing compressed-y-0 - * or containing compressed-y-1 - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_22_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 - * @reference IEEE 1609.2 [2], Clauses 6.3.30, 6.3.31 - */ - testcase TC_SEC_ITSS_SND_CAM_22_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaNistP256( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_x_only - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaNistP256( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaNistP256( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP256r1( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_x_only - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP256r1( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP256r1( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP384r1( - mw_ecdsaP384Signature( - mw_eccP384CurvePoint_x_only - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP384r1( - mw_ecdsaP384Signature( - mw_eccP384CurvePoint_compressed_y_0 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP384r1( - mw_ecdsaP384Signature( - mw_eccP384CurvePoint_compressed_y_1 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: CA message with wrong signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_22_BV - - /** - * @desc Check that IUT doesn't send secured CAMs if IUT is authorized with AT certificate doesn't allowing - * sending messages in this location. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_C1_AT) - * containing region - * indicating rectangular region - * not containing current IUT position - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT doesn't send CAM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_23_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_CAM_23_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No CAM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_23_BV - - /** - * @desc Check that IUT doesn't send the secured CAM if IUT is configured to use an AT certificate without - * region validity restriction and generation location is outside of the region of the issuing AA certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_CA3_AT) - * not containing region - * and issued by the AA certificate (CERT_IUT_C3_AA) - * containing region - * indicating rectangular region - * not containing current IUT position - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT doesn't send CAM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_24_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_CAM_24_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No CAM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_24_BV - - /** - * @desc Check that IUT doesn't send secured CAMs if all AT certificates installed on the IUT was expired. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_CA3_AT) - * containing validityPeriod - * indicating start + duration < CURRENT_TIME - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT doesn't send CAM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_25_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_CAM_25_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No CAM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_25_BV - - /** - * @desc Check that IUT doesn't send secured CAMs if all AT certificates installed on the IUT have the starting time in the future. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A2_AT) - * containing validityPeriod - * indicating start > CURRENT_TIME - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT doesn't send CAM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_26_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_CAM_26_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No CAM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_26_BV - - /** - * @desc Check that IUT doesn't send secured CAMs if IUT doesn't possess an AT certificate allowing - * sending CAM by its appPermissions. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A3_AT) - * containing appPermissions - * not containing PsidSSP - * containing psid - * indicating AID_CAM - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * the IUT doesn't send CAM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_27_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_CAM_27_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No CAM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CAM_27_BV - - } // End of group camProfile - - /** - * @desc Sending behaviour test cases for DENM profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.5 DENM profile - */ - group denmProfile { - - /** - * @desc Check that secured DENM is signed - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing content - * containing signedData - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_01_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.2 - */ - testcase TC_SEC_ITSS_SND_DENM_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: The DEN message is secured"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_01_BV - - /** - * @desc Check that IUT sends the secured DENM containing the HeaderInfo field psid set to 'AID_DENM' - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing psid - * indicating 'AID_DENM' - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_02_BV - * @reference ETSI TS 103 097 [1] Clause 7.1.2 - */ - testcase TC_SEC_ITSS_SND_DENM_02_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_02_BV - - /** - * @desc Check that IUT sends the secured DENM with the HeaderInfo containing generationTime and generationLocation - * and doesn't containing expiryTime, encryptionKey, p2pcdLearningRequest, missingCrlIdentifier, - * inlineP2pcdRequest, requestedCertificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing generationTime - * and containing generationLocation, - * and not containing expiryTime - * and not containing encryptionKey - * and not containing p2pcdLearningRequest - * and not containing missingCrlIdentifier - * and not containing inlineP2pcdRequest - * and not containing requestedCertificate - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_03_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 - */ - testcase TC_SEC_ITSS_SND_DENM_03_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_03_BV - - /** - * @desc Check that IUT sends the secured DENM containing signer containing certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing signer - * containing certificate - * containing toBeSigned - * containing appPermissions - * containing the item of type PsidSsp - * containing psid - * indicating AID_DENM - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_04_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 - * @reference IEEE 1609.2 [2] Clause 6.3.4 - */ - testcase TC_SEC_ITSS_SND_DENM_04_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( // or containing certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - { *, mw_appPermissions(c_its_aid_DENM), * } - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received, containing certificate"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Incorrect secured packet received, containing digest"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_04_BV - - /** - * @desc Check that IUT sends the secured DENM containing generation time - * and this time is inside the validity period of the signing certificate; - * Check that message generation time value is realistic. - - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a DENM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationTime - * indicating TIME_1 (CUR_TIME - 10min <= TIME_1 <= CUR_TIME + 10min) - * and containing signer - * containing certificate - * containing toBeSigned - * containing validityPeriod - * containing start - * indicating value X_START_VALIDITY (X_START_VALIDITY <= GEN_TIME) - * and containing duration - * indicating value > GEN_TIME - X_START_VALIDITY - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_05_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2, 5.2.4.2.2, 5.2.4.2.3 - */ - testcase TC_SEC_ITSS_SND_DENM_05_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - const integer c_timeLimit := 10 * 60 * 1000000; // us - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var Time64 v_generationTime; - var Time64 v_curTime; - var SignerIdentifier v_signerIdentifier; - var ValidityPeriod v_validityPeriod; - var Certificate v_cert; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First DEN message with certificate received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: DEN message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate // containing certificate - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); - v_generationTime := v_headerInfo.generationTime; - v_curTime := f_getCurrentTime(); - v_curTime := v_curTime * 1000; // Time64 is in microseconds - log("v_curTime (us)=", v_curTime); - // Check generation time - if (not match(v_generationTime, Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { - log("*** " & testcasename() & ": FAIL: DEN message generation time is not in 5 min range"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - // Check certificate validity period - f_getMsgSignerIdentifier (f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); - if (not match(v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_, Time32:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { - log("*** " & testcasename() & ": FAIL: DEN message certificate validity period is not in 5 min range"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": PASS: Generation of DENM messages including certificate was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_05_BV - - /** - * @desc Check that IUT sends the secured DENM containing generation location when signing certificate - * chain doesn't have any region restriction. - - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * containing toBeSigned - * not containing region - * and issuied by the certificate AA (CERT_IUT_A_AA) - * containing toBeSigned - * not containing region - * and issuied by the certificate RCA (CERT_IUT_A_RCA) - * containing toBeSigned - * not containing region - * } - * ensure that { - * when { - * the IUT is requested to send a DENM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationLocation - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_06_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_06_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, - ? - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_06_BV - - /** - * @desc Check that IUT sends the secured DENM containing generation location which is inside the circular region - * defined by the validity restriction of the certificate pointed by the message signer. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_AT_CERTIFICATE) - * containing toBeSigned - * indicating REGION - * } - * ensure that { - * when { - * the IUT is requested to send a DENM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationLocation - * indicating value inside the REGION - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_07_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_07_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_cert; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_CERTIFICATE_SELECTION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, - ? - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_07_BV - - /** - * @desc Check that IUT sends the secured DENM containing generation location which is inside the region - * defined by the validity restriction of the certificate pointed by the message signer . - *
- * Pics Selection: PICS_GN_SECURITY and not PICS_SEC_CERTIFICATE_SELECTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_AT_CERTIFICATE) - * containing toBeSigned - * indicating REGION - * } - * ensure that { - * when { - * the IUT is requested to send a DENM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationLocation - * indicating value inside the REGION - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_08_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_08_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_cert; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or PICS_SEC_CERTIFICATE_SELECTION) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and not PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_08_BV - - /** - * @desc Check that IUT sends the secured DENM containing generation location which is inside the identified - * region defined by the validity restriction of the AA certificate used to sign the certificate - * pointed by the message signer doesn't containing any region restriction. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_CA1_AT) - * containing toBeSigned - * not containing region - * and issuied by the certificate AA (CERT_IUT_CC_AA) - * containing toBeSigned - * containing circularRegion - * indicating REGION - * and issuied by the certificate RCA (CERT_IUT_C_RCA) - * containing toBeSigned - * containing circularRegion - * indicating REGION - * } - * ensure that { - * when { - * the IUT is requested to send a DENM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationLocation - * indicating value inside the REGION - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_09_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 & 6.4.8 - */ - testcase TC_SEC_ITSS_SND_DENM_09_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_at_certificate; - var Certificate v_aa_certificate; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_CERTIFICATE_SELECTION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_taCert_CA1, v_at_certificate); - f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - v_at_certificate.toBeSigned.appPermissions, - v_at_certificate.toBeSigned.verifyKeyIndicator, - v_at_certificate.toBeSigned.validityPeriod, - omit - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - - if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { - log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_09_BV - - /** - * @desc Check that IUT sends the secured DENM containing generation location which is inside the identified - * region defined by the validity restriction of the root certificate when subordinate AA and AT - * certificates don't contain any region restriction. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_CA2_AT) - * containing toBeSigned - * not containing region - * and issuied by the certificate AA (CERT_IUT_CC_AA) - * containing toBeSigned - * containing circularRegion - * indicating REGION - * and issuied by the certificate RCA (CERT_IUT_C_RCA) - * containing toBeSigned - * containing circularRegion - * indicating REGION - * } - * ensure that { - * when { - * the IUT is requested to send a DENM - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationLocation - * indicating value inside the REGION - * } - * } - *- * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_10_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 & 6.4.8 - */ - testcase TC_SEC_ITSS_SND_DENM_10_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_at_certificate; - var Certificate v_aa_certificate; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_CERTIFICATE_SELECTION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(cc_taCert_CA2, v_at_certificate); - f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - v_at_certificate.toBeSigned.appPermissions, - v_at_certificate.toBeSigned.verifyKeyIndicator, - v_at_certificate.toBeSigned.validityPeriod, - omit - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - - if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { - log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_10_BV - - /** - * @desc Check that IUT sends the secured DENM containing the 'data' field in signed data payload, - * containing the EtsiTs103097Data of type unsecured, contained the DENM payload - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * contains content - * contains signedData - * containing tbsData - * containing payload - * containing data - * containing content - * containing unsecuredData - * containing not-empty data - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_11_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 - */ - testcase TC_SEC_ITSS_SND_DENM_11_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload( - mw_ieee1609Dot2Data( - mw_ieee1609Dot2Data_unsecured - )), - mw_headerInfo_denm - ) - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: DENM received with a well formated payload"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_11_BV - - /** - * @desc Check that the IUT sends the secured DENM signed with the certificate containing appPermisions - * allowing to sign DEN messages - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing signer - * containing certificate - * containing appPermissions - * containing an item of type PsidSsp - * containing psid = AID_DENM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_12_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_12_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( // containing certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - { *, mw_appPermissions(c_its_aid_DENM), * } - ) - ) - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: DEN message received with a well formated certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: DEN message with digest was received ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: DEN message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_12_BV - - /** - * @desc Check that IUT sends the secured DENM containing signature; - * Check that the signature is calculated over the right fields - * and using right hash algorythm by cryptographically verifying the signature - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * indicating KEY - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing signedData - * containing signer - * containing certificate - * indicating X_CERTIFICATE - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * indicating KEY - * and containing signature - * containing X_SIGNATURE - * verifiable using KEY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_13_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 - * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 - - */ - testcase TC_SEC_ITSS_SND_DENM_13_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var EtsiTs103097Certificate v_certificate; - var Signature v_signature; - var GeoNetworkingInd v_geoNwInd; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( // or containing containing certificate indicating X_CERTIFICATE - v_certificate - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: DEN message with certificate received ***"); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - //repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: DEN message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - // Check that the signature is calculated over the right fields and using right hash algorythm by cryptographically verifying the signature - if (f_verifyGnSecuredMessageSignatureWithCertificate(f_getSecuredMessage(v_geoNwInd.msgIn), vc_hashedId8ToBeUsed, v_certificate)) { - log("*** " & testcasename() & ": PASS: Signature verified successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: Signature not verified successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_13_BV - - /** - * @desc Check that IUT doesn't send secured DENMs if IUT doesn't possess an AT certificate allowing - * sending messages in this location. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_C1_AT) - * containing region - * indicating rectangular region - * not containing current IUT position - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT doesn't send DENM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_14_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_14_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No DENM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_14_BV - - /** - * @desc Check that IUT doesn't send the secured DENM if IUT is configured to use an AT certificate - * without region validity restriction and generation location is outside of the region of the - * issuing AA certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_C3_AT) - * not containing region - * and issued by the AA certificate (CERT_IUT_C3_AA) - * containing region - * indicating rectangular region - * not containing current IUT position - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT doesn't send DENM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_15_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_15_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); // Initialise IUT with CERT_IUT_C3_AT - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No DENM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_15_BV - - /** - * @desc Check that IUT doesn't send secured DENMs if all AT certificates installed on the IUT are expired. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A1_AT) - * containing validityPeriod - * indicating start + duration < CURRENT_TIME - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT doesn't send DENM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_16_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_16_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); // Initialise IUT with CERT_IUT_A1_AT - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No DENM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_16_BV - - /** - * @desc Check that IUT doesn't send secured DENMs if all AT certificates installed on the IUT have the starting time in the future. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A2_AT) - * containing validityPeriod - * indicating start > CURRENT_TIME - * and the IUT has no other installed AT certificates - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT doesn't send DENM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_17_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_17_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); // Initialise IUT with CERT_IUT_A2_AT - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No DENM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_17_BV - - /** - * @desc Check that IUT doesn't send secured DENMs if IUT doesn't possess an AT certificate allowing - * sending DENM by its appPermissions. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A4_AT) - * containing appPermissions - * not containing PsidSSP - * containing psid - * indicating AID_CAM - * } - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * the IUT doesn't send DENM - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_18_BV - * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_DENM_18_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); // Initialise IUT with CERT_IUT_A4_AT - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_noac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ) - ) - ) - ))) { - tc_noac.stop; - log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_noac.timeout { - log("*** " & testcasename() & ": PASS: No DENM received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_DENM_18_BV - - } // End of group denmProfile - - /** - * @desc Sending behaviour test cases for DENM profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.6 Generic signed message profile - */ - group genericSignedMessageProfile { - - /** - * @desc Check that IUT sends the secured message using signedData container. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing content - * containing signedData - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_01_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.3 - */ - testcase TC_SEC_ITSS_SND_GENMSG_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: The GN message is secured ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_01_BV - - /** - * @desc Check that the sent Secured Message contains HeaderField its_aid that is set to other value then AID_CAM and AID_DENM. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing psid - * indicating 'AID_GNMGMT' - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_02_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.3 - */ - testcase TC_SEC_ITSS_SND_GENMSG_02_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: The GN message is secured ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_02_BV - - /** - * @desc Check that IUT sends the secured GeoNetworking message with the headerInfo containing generationTime. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing generationTime - * and not containing expiryTime - * and not containing generationLocation, - * and not containing encryptionKey - * and not containing p2pcdLearningRequest - * and not containing missingCrlIdentifier - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_03_BV - * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.3 - */ - testcase TC_SEC_ITSS_SND_GENMSG_03_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: The GN message is secured ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_03_BV - - /** - * @desc Check that IUT sends the secured GeoNetworking message containing certificate or digest as a signer. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * } then { - * the IUT sends a Ieee1609Dot2Data - * containing content - * containing signedData - * containing signer - * containing digest - * or containing certificate - * containing toBeSigned - * containing appPermissions - * containing the item of type PsidSsp - * containing psid - * indicating AID_GNMGMT - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_04_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.3 - * @reference IEEE 1609.2 [2] Clause 6.3.4 - */ - testcase TC_SEC_ITSS_SND_GENMSG_04_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Correct secured packet received, containing digest ***"); - repeat; - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_certificate( // or containing certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - { *, mw_appPermissions(c_its_aid_GN), * } - ) - ) - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_04_BV - - /** - * @desc Check that IUT sends the secured GeoNetworking message containing generation time - * and this time is inside the validity period of the signing certificate; - * Check that message generation time value is realistic. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * containing certificate - * } then { - * the IUT sends a SecuredMessage of type EtsiTs103097Data - * containing headerInfo - * containing generationTime - * indicating TIME_1 (CUR_TIME - 10min <= TIME_1 <= CUR_TIME + 10min) - * and containing signer - * containing certificate - * containing toBeSigned - * containing validityPeriod - * containing start - * indicating value X_START_VALIDITY (X_START_VALIDITY <= GEN_TIME) - * and containing duration - * indicating value > GEN_TIME - X_START_VALIDITY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_05_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.3 - * @reference IEEE 1609.2 [2] Clause 6.3.4 - */ - testcase TC_SEC_ITSS_SND_GENMSG_05_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - const integer c_timeLimit := 10 * 60 * 1000000; // us - var LongPosVector v_longPosVectorIut; - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var Time64 v_generationTime; - var Time64 v_curTime; - var SignerIdentifier v_signerIdentifier; - var ValidityPeriod v_validityPeriod; - var Certificate v_cert; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_certificate // containing certificate - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First GN message with certificate received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: GN message with certificate not received ***"); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); - } - } // End of 'alt' statement - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_certificate // containing certificate - ) - ) - ))) -> value v_geoNwInd { - tc_ac.stop; - f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); - v_generationTime := v_headerInfo.generationTime; - v_curTime := f_getCurrentTime(); - v_curTime := v_curTime * 1000; // Time64 is in microseconds - log("v_curTime (us)=", v_curTime); - // Check generation time - if (not match(v_generationTime, Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { - log("*** " & testcasename() & ": FAIL: GN generation time is not in 5 min range"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - // Check certificate validity period - f_getMsgSignerIdentifier (f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); - if (not match(v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_, Time32:(v_curTime - c_timeLimit / 1000000, v_curTime + c_timeLimit / 1000000))) /*In seconds*/{ - log("*** " & testcasename() & ": FAIL: GN certificate validity period is not in 5 min range"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": PASS: Generation of GN messages including certificate was successful ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_05_BV - - /** - * @desc Check that IUT sends the secured message using the 'data' field in signed data payload, - * containing the EtsiTs103097Data of type unsecured, - * containing the data payload or using the extDataHash field containing the SHA256 hash of data payload. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * } then { - * the IUT sends a message of type EtsiTs103097Data - * contains content - * contains signedData - * containing tbsData - * containing payload - * containing data - * containing content - * containing unsecuredData - * containing not-empty data - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_06_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.3 - */ - testcase TC_SEC_ITSS_SND_GENMSG_06_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload( - mw_ieee1609Dot2Data( - mw_ieee1609Dot2Data_unsecured - )), - mw_headerInfo_gn - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: GN received with a well formated payload ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_06_BV - - /** - * @desc Check that the IUT sends the secured messages signed with the certificate - * containing appPermisions allowing to sign these messages. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured Beacon - * } then { - * the IUT sends a message of type EtsiTs103097Data - * contains content - * contains signedData - * containing tbsData - * containing payload - * containing data - * containing content - * containing unsecuredData - * containing not-empty data - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_07_BV - * @reference ETSI TS 103 097 [1] Clauses 7.1.3 - * @reference IEEE 1609.2 [2] Clause 5.2.3.2.2 - */ - testcase TC_SEC_ITSS_SND_GENMSG_07_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload( - mw_ieee1609Dot2Data( - mw_ieee1609Dot2Data_unsecured - )), - mw_headerInfo_gn - ) - ) - ) - ))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: received with a well formated payload ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_07_BV - - /** - * @desc Check that IUT sends the secured GeoNetworking message containing signature; - * Check that the signature is calculated over the right fields and using right - * hash algorythm by cryptographically verifying the signature. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * } - * ensure that { - * when { - * the IUT is requested to send a secured beacon - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing signedData - * containing signer - * containing digest - * referencing the certificate X_CERTIFICATE - * or containing certificate - * indicating X_CERTIFICATE - * and containing signature - * containing X_SIGNATURE - * verifiable using KEY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_08_BV - * @reference ETSI TS 103 097 [1], Clauses 5.2 & 7.1.3 - * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 - */ - testcase TC_SEC_ITSS_SND_GENMSG_08_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var LongPosVector v_longPosVectorIut; - var EtsiTs103097Certificate v_certificate; - var Signature v_signature; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - v_longPosVectorIut := f_getPosition(c_compIut); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); - f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_digest( // containing digest referencing the certificate X_CERTIFICATE - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].issuer - ) - ) - ) - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: GN message with digest received ***"); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_gn - ), - mw_signerIdentifier_certificate( // or containing containing certificate indicating X_CERTIFICATE - v_certificate - ) - ) - ) - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": INFO: GN message with certificate received ***"); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_acTriggerEvent(m_stopPassBeaconing); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_GENMSG_08_BV - - } // End of group genericSignedMessageProfile - - /** - * @desc Sending behaviour test cases for certificates profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7 Encrypted messages profile - */ - group encryptedMessagesProfile { - - /** - * @desc Check that the IUT can generate encrypted message. - *
- * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send an encrypted message - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing encryptedData - * containing recipients - * containing at least one item of type RecipientInfo - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_01_BV - * @reference ETSI TS 103 097 [1], Clauses 5.3 - */ - testcase TC_SEC_ITSS_SND_ENC_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_encrypted( - mw_encryptedData( - -, - mw_SymmetricCiphertext_aes128ccm - ))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_ENC_01_BV - - /** - * @desc Check that the IUT can generate encrypted message. - *
- * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send an encrypted message - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing encryptedData - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_02_BV - * @reference IEEE 1609.2 [2] Clause 6.3.31 - */ - testcase TC_SEC_ITSS_SND_ENC_02_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_encrypted( - mw_encryptedData( - -, - mw_SymmetricCiphertext_aes128ccm - ))))) -> value v_geoNwInd { - tc_ac.stop; - if (lengthof(f_getSecuredMessage(v_geoNwInd.msgIn).content.encryptedData.recipients) >= 1) { - log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: RecipientInfo list is empty ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_ENC_02_BV - - /** - * @desc Check that the IUT can generate encrypted message. - *
- * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send an encrypted message - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing encryptedData - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_03_BV - * @reference IEEE 1609.2 [2] Clause 6.3.31 - */ - testcase TC_SEC_ITSS_SND_ENC_03_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_encrypted( - mw_encryptedData( - { - mw_recipientInfo_certRecipInfo( - mw_pKRecipientInfo( - -, - mw_encryptedDataEncryptionKey_eciesNistP256( - mw_evciesP256EncryptedKey - ) - ) - ) - }, - mw_SymmetricCiphertext_aes128ccm - ))))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_encrypted( - mw_encryptedData( - { - mw_recipientInfo_certRecipInfo( - mw_pKRecipientInfo( - -, - mw_encryptedDataEncryptionKey_eciesBrainpoolP256r1( - mw_evciesP256EncryptedKey - ) - ) - ) - }, - mw_SymmetricCiphertext_aes128ccm - ))))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_ENC_03_BV - - /** - * @desc Check that the ciphertext of encrypted message contains encrypted EtsiTs103097Data structure. - *
- * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send an encrypted message - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing encryptedData - * containing ciphertext - * containing encrypted data - * containing COER encoded data - * containing structure of type EtsiTs103097Data - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_04_BV - * @reference IEEE 1609.2 [2], clauses 6.3.31 - * @reference ETSI TS 103 097 [1] Clause 7.1.4 - */ - testcase TC_SEC_ITSS_SND_ENC_04_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var Oct16 v_aes_sym_enc_key; - var EtsiTs103097Data v_decryptedMsg; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_encrypted( - mw_encryptedData( - -, - mw_SymmetricCiphertext_aes128ccm( - mw_aesCcmCiphertext - )))))) -> value v_geoNwInd { - tc_ac.stop; - - if (f_decrypt(vc_encryptPrivateKey, f_getSecuredMessage(v_geoNwInd.msgIn), ''O, v_decryptedMsg, v_aes_sym_enc_key) == false) { // No salt value - log("*** " & testcasename() & ": FAIL: Unable to process encryption data ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else if (match(v_decryptedMsg, mw_etsiTs103097Data) == false) { - log("*** " & testcasename() & ": FAIL: Unable to parse EtsiTs103097Data data ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": PASS: IUT sends signed and encrypted message ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_ENC_04_BV - - /** - * @desc Check that when the IUT sends SignedAndEncrypted message then it sends the - * EtsiTs103097Data-Encrypted message containing the EtsiTs103097Data-Signed - * structure as the ToBeSignedDataContent. - *
- * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT) - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send an encrypted and signed message - * } then { - * the IUT sends a message of type EtsiTs103097Data - * containing encryptedData - * containing ciphertext - * containing encrypted data - * containing COER encoded data - * containing structure of type EtsiTs103097Data - * containing signedData - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_05_BV - * @reference IEEE 1609.2 [2], clauses 6.3.31 - * @reference ETSI TS 103 097 [1] Clause 7.1.5 - */ - testcase TC_SEC_ITSS_SND_ENC_05_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var Oct16 v_aes_sym_enc_key; - var EtsiTs103097Data v_decryptedMsg; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_encrypted( - mw_encryptedData( - -, - mw_SymmetricCiphertext_aes128ccm( - mw_aesCcmCiphertext - )))))) -> value v_geoNwInd { - tc_ac.stop; - - if (f_decrypt(vc_encryptPrivateKey, f_getSecuredMessage(v_geoNwInd.msgIn), ''O, v_decryptedMsg, v_aes_sym_enc_key) == false) { // No salt value - log("*** " & testcasename() & ": FAIL: Unable to process encryption data ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else if (match(v_decryptedMsg, mw_etsiTs103097Data_signed) == false) { - log("*** " & testcasename() & ": FAIL: Unable to parse signed data ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - // TODO Check signature? - log("*** " & testcasename() & ": PASS: IUT sends signed and encrypted message ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_ENC_05_BV - - } // End of group encryptedMessagesProfile - - /** - * @desc Sending behaviour test cases for certificates profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.8 Profiles for certificates - */ - group profileForCertificates { - - /** - * @desc Check that IUT certificate is explicit and has version 3. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the 'authorized' state - * } - * Expected behaviour: - * ensure that { - * when { - * the AA is issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing version - * indicating 3 - * and containing type - * indicating 'explicit' - * and containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_01_BV - * @reference ETSI TS 103 097 [1], Clauses 6 - * @reference IEEE 1609.2 [2] Clause 6.4.3 - */ - testcase TC_SEC_ITSS_SND_CERT_01_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askForCertificateChain(f_generateDefaultCam()); // TODO Rename f_askForCertificateChain into f_askForCertificateAA - tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - -, - mw_ieee1609Dot2_headerInfo_request_certificate( - -, - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_aa - )))))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Security protocol version set to 3 ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_01_BV - - /** - * @desc Check that IUT certificate is conformed to ETSI TS 103 097 clause 6. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT being in the 'authorized' state - * } - * Expected behaviour: - * ensure that { - * when { - * the AA is issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing id - * indicating 'none' - * or indicating 'name' - * and containing cracaId - * indicating '000000'H - * and containing crlSeries - * indicating '0'D - * and not containing certRequestPermissions - * and not containing canRequestRollover - * and containing signature - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_02_BV - * @reference ETSI TS 103 097 [1], Clauses 6 - */ - testcase TC_SEC_ITSS_SND_CERT_02_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askForCertificateChain(f_generateDefaultCam()); - tc_ac.stop; - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - -, - mw_ieee1609Dot2_headerInfo_request_certificate( - -, - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_aa( - mw_certificateId_name - ))))))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: AA certificate is conformed to ETSI TS 103 097 clause 6, with named id ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - -, - mw_ieee1609Dot2_headerInfo_request_certificate( - -, - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_aa( - mw_certificateId_none - ))))))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: AA certificate is conformed to ETSI TS 103 097 clause 6, with none id ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_02_BV - - /** - * @desc Check that the certificate issuer of certificates is referenced using digest; - * Check that right digest field is used to reference to the certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * } - * ensure that { - * when { - * the CA is issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing signedData - * containing self - * or containing X_DIGEST - * indicating last 8 bytes of the hash of the certificate calculated using X_ALGORITHM - * referenced to certificate - * containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_03_BV - * @reference ETSI TS 103 097 [1], Clauses 5.2 & 7.1.3 - * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 - */ - testcase TC_SEC_ITSS_SND_CERT_03_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var EtsiTs103097Certificate v_ca_certificate; - var EtsiTs103097Certificate v_aa_certificate; - var EtsiTs103097Certificate v_at_certificate; - var HashedId8 v_ca_hashedId8; - var HashedId8 v_aa_hashedId8; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - - // Test adapter configuration - - // Preamble - f_readCertificate(cc_taCert_CA1, v_ca_certificate); // TODO Use PIXIT as array of strings to change - // certificates to be checked - f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); - f_readCertificate(cc_iutCert_A, v_at_certificate); - f_getCertificateDigest(cc_taCert_CC_AA, v_ca_hashedId8); - f_getCertificateDigest(cc_taCert_CC_AA, v_aa_hashedId8); - - // Test Body - // 1. Check certificate format - if (match( - v_ca_certificate, - mw_etsiTs103097Certificate( - mw_issuerIdentifier_self, - mw_toBeSignedCertificate_ca - )) == true) { - log("*** " & testcasename() & ": INFO: CA certificate are well formatted ***"); - } else { - log("*** " & testcasename() & ": FAIL: Invalid CA certificate ***"); - setverdict(fail); - } // End of 'alt' statement - if (match( - v_aa_certificate, - mw_etsiTs103097Certificate( - ?, - mw_toBeSignedCertificate_aa - )) == true) { - log("*** " & testcasename() & ": INFO: AA certificate are well formatted ***"); - } else { - log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); - setverdict(fail); - } // End of 'alt' statement - if (match( - v_at_certificate, - mw_etsiTs103097Certificate( - ?, - mw_toBeSignedCertificate_at - )) == true) { - log("*** " & testcasename() & ": INFO: AT sertificate are well formatted ***"); - } else { - log("*** " & testcasename() & ": Invalid AT certificate ***"); - setverdict(fail); - } // End of 'alt' statement - // 2. Check issuers - if (v_ca_certificate.issuer.self_ == sha256) { - if (match(v_ca_hashedId8, v_aa_certificate.issuer.sha256AndDigest) == true) { - log("*** " & testcasename() & ": INFO: AA certificate is issued from CA certificate ***"); - } else { - log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); - setverdict(fail); - } // End of 'alt' statement - if (match(v_aa_hashedId8, v_at_certificate.issuer.sha256AndDigest) == true) { - log("*** " & testcasename() & ": INFO: AT certificate is issued from CA certificate ***"); - setverdict(pass, "Certificates are well-formated and issuer chain is correct"); - } else { - log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); - setverdict(fail); - } // End of 'alt' statement - } else if (v_ca_certificate.issuer.self_ == sha384) { - if (match(v_ca_hashedId8, v_aa_certificate.issuer.sha384AndDigest) == true) { - log("*** " & testcasename() & ": INFO: AA certificate is issued from CA certificate ***"); - } else { - log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); - setverdict(fail); - } // End of 'alt' statement - if (match(v_aa_hashedId8, v_at_certificate.issuer.sha384AndDigest) == true) { - log("*** " & testcasename() & ": INFO: AT certificate is issued from CA certificate ***"); - setverdict(pass, "Certificates are well-formated and issuer chain is correct"); - } else { - log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); - setverdict(fail); - } // End of 'alt' statement - } else { - log("*** " & testcasename() & ": FAIL: Invalid CA certificate issuer ***"); - setverdict(fail); - } - - // Postamble - - } // End of testcase TC_SEC_ITSS_SND_CERT_03_BV - - /** - * @desc Check that the rectangular certificate validity region of the subordinate certificate is well formed - * and inside the validity region of the issuing certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION - * Config Id: CF01 - * Initial conditions: - * with { - * the CA is authorized with AA certificate - * containing toBeSigned - * containing region - * indicating REGION - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the AT certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing region - * containing rectangularRegion - * containing items of type RectangularRegion - * containing northwest - * indicating a point inside the REGION - * and containing southeast - * indicating a point on the south from northwest - * and inside the REGION - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_04_BV - * @reference ETSI TS 103 097 [1], Clauses 6 - */ - testcase TC_SEC_ITSS_SND_CERT_04_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_RECTANGULAR_REGION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, - mw_geographicRegion_rectangular - )))))))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_areRectanglesInside(v_signerIdentifier.certificate[v_counter].toBeSigned.region.rectangularRegion, v_aa_certificate[0].toBeSigned.region.rectangularRegion) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_04_BV - - /** - * @desc Check that the IUT supports at least 8 entries in the rectangular certificate validity - * region in the AT certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_C_AT_8) - * containing toBeSigned - * containing region - * containing rectangularRegion - * containing 8 entries - * containing one entry (ENTRY) - * containing current IUT position - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing headerInfo - * containing generationLocation - * indicating position inside the ENTRY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_05_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.17 - */ - testcase TC_SEC_ITSS_SND_CERT_05_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_cert; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_RECTANGULAR_REGION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := cc_iutCert_A; // FIXME Review certificate to be used - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, - mw_geographicRegion_rectangular - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_05_BV - - /** - * @desc Check that the rectangular certificate validity region of the subordinate certificate is well formed - * and inside the validity region of the issuing certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION - * Config Id: CF01 - * Initial conditions: - * with { - * the CA is authorized with AA certificate - * containing toBeSigned - * containing region - * indicating REGION - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the AT certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing region - * containing polygonalRegion - * containing more than 2 items of type TwoDLocation - * indicating points inside the REGION - * and indicating unintercepting segments - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_06_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.21, 6.4.17,5.1.2.4 - */ - testcase TC_SEC_ITSS_SND_CERT_06_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_POLYGONAL_REGION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - // Wait for the message with the certificate to retrieve the AA digest. - // Ask for the chain, containing AT and AA certificate - // Check AA Certificate - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, - mw_geographicRegion_polygonal - )))))))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_arePolygonsInside(v_signerIdentifier.certificate[v_counter].toBeSigned.region.polygonalRegion, v_aa_certificate[0].toBeSigned.region.polygonalRegion) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_06_BV - - /** - * @desc Check that the IUT supports at least 8 entries in the polygonal certificate validity - * region in the AT certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_D_AT_8) - * containing toBeSigned - * containing region - * containing polygonalRegion - * containing 8 entries - * indicating polygon P - * and the IUT’s position is inside the polygon P - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing headerInfo - * containing generationLocation - * indicating position inside the P - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_07_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.17 - */ - testcase TC_SEC_ITSS_SND_CERT_07_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_cert; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_POLYGONAL_REGION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := cc_iutCert_A; // FIXME Review certificate to be used - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - ?, - mw_toBeSignedCertificate_at( - -, -, -, - mw_geographicRegion_polygonal - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_07_BV - - /** - * @desc Check that the identified certificate validity region contains values that correspond - * to numeric country codes as defined by United Nations Statistics Division [6] in October 2013. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT issued the certificate - * containing toBeSigned - * containing region - * containing identifiedRegion - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the AT certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing region - * containing identifiedRegion - * containing 1 entry of type IdentifiedRegion - * containing countryOnly - * indicating integer representation of the identifier of country or area - * or containing countryAndRegions - * containing countryOnly - * indicating integer representation of the identifier of country or area - * or containing countryAndSubregions - * containing country - * indicating integer representation of the identifier of country or area - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_08_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.23 - */ - testcase TC_SEC_ITSS_SND_CERT_08_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_IDENTIFIED_REGION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, - mw_geographicRegion_identified - )))))))) -> value v_geoNwInd { - tc_ac.stop; - // FIXME To be continued - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_08_BV - - /** - * @desc Check that the IUT supports at least 8 points in the polygonal certificate validity region - * in the AT certificate. - *
- * Pics Selection: PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_E_AT_8) - * containing toBeSigned - * containing region - * containing polygonalRegion - * containing 8 entries - * containing one of the items (I) - * containing current IUT position - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured DENM - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing headerInfo - * containing generationLocation - * indicating position inside I - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_09_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.17 - */ - testcase TC_SEC_ITSS_SND_CERT_09_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var GeoNetworkingInd v_geoNwInd; - var HeaderInfo v_headerInfo; - var SignerIdentifier v_signerIdentifier; - var Certificate v_cert; - var ItsDenm v_denmComponent; - - // Test control - if (not(PICS_GN_SECURITY) or not(PICS_SEC_IDENTIFIED_REGION)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := cc_iutCert_A; // FIXME Review certificate to be used - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - v_denmComponent := f_triggerDenmEvent(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - ?, - mw_toBeSignedCertificate_at( - -, -, -, - mw_geographicRegion_polygonal - ) - ) - ) - ) - ), - mw_geoNwBroadcastPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; - var integer v_counter; - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { - if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { - break; - } - } // End of of for statement - if (v_counter == lengthof(v_signerIdentifier.certificate)) { - log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_denm - ), - mw_signerIdentifier_digest // containing digest - ) - ), - mw_geoNwBroadcastPacket - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_cancelDenmEvent(v_denmComponent); - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_09_BV - - // TODO TP_SEC_ITSS_SND_CERT_10_BV - - /** - * @desc Check that the validityPeriod of the subordinate certificate is inside the validityPeriod - * of the issuing certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the CA is authorized with AA certificate - * containing toBeSigned - * containing validityPeriod - * containing start - * indicating X_START_VALIDITY_AA - * and containing duration - * indicating X_START_DURATION_AA - * } - * ensure that { - * when { - * the IUT issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing signedData - * containing validityPeriod - * containing start - * indicating X_START_VALIDITY_AT ( X_START_VALIDITY_AT >= X_START_VALIDITY_AA ) - * and containing duration - * X_DURATION_AT <= X_START_VALIDITY_AA + X_DURATION_AA - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_11_BV - * @reference ETSI TS 103 097 [1], Clauses 5.2 & 7.1.3 - * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 - */ - testcase TC_SEC_ITSS_SND_CERT_11_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var EtsiTs103097Certificate v_aa_certificate; - var EtsiTs103097Certificate v_at_certificate; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - - // Test adapter configuration - - // Preamble - f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); // TODO Use PIXIT as array of strings to change - // certificates to be checked - f_readCertificate(cc_iutCert_A, v_at_certificate); - - // Test Body - // 1. Check certificate format - if ( - (v_aa_certificate.toBeSigned.validityPeriod.start_ >= v_at_certificate.toBeSigned.validityPeriod.start_) and - (f_duration2time(v_at_certificate.toBeSigned.validityPeriod.duration) <= (v_aa_certificate.toBeSigned.validityPeriod.start_ + f_duration2time(v_aa_certificate.toBeSigned.validityPeriod.duration))) - ) { - log("*** " & testcasename() & ": PASS: Validity periods are correct ***"); - setverdict(pass); - } else { - log("*** " & testcasename() & ": FAIL: Invalid validity period ***"); - setverdict(fail); - } // End of 'alt' statement - - // Postamble - - } // End of testcase TC_SEC_ITSS_SND_CERT_11_BV - - /** - * @desc Check that the certificate signature contains ECC point of type set to - * either compressed_lsb_y_0, compressed_lsb_y_1 or x_coordinate_only. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (X_CERTIFICATE) - * } - * ensure that { - * when { - * the IUT issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing signature - * containing X_SIGNATURE - * containing rSig - * containing x-only - * or containing compressed-y-0 - * or containing compressed-y-1 - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_12_BV - * @reference IEEE 1609.2 [2], Clauses 6.3.29, 6.3.30, 6.3.31 - */ - testcase TC_SEC_ITSS_SND_CERT_12_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaNistP256( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_x_only - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaNistP256( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaNistP256( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP256r1( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_x_only - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP256r1( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP256r1( - mw_ecdsaP256Signature( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP384r1( - mw_ecdsaP384Signature( - mw_eccP384CurvePoint_x_only - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP384r1( - mw_ecdsaP384Signature( - mw_eccP384CurvePoint_compressed_y_0 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - -, - mw_signature_ecdsaBrainpoolP384r1( - mw_ecdsaP384Signature( - mw_eccP384CurvePoint_compressed_y_1 - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Message with wrong signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CERT_12_BV - - /** - * @desc Check that the certificate verification key contains ECC point of type set to either - * compressed_lsb_y_0, compressed_lsb_y_1 or uncompressed. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * - * } - * ensure that { - * when { - * the IUT issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * containing uncompressed - * or containing compressed-y-0 - * or containing compressed-y-1 - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_13_BV - * @reference IEEE 1609.2 [2], Clauses 6.3.29, 6.3.30, 6.3.31 - */ - testcase TC_SEC_ITSS_SND_CERT_13_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaNistP256( - mw_eccP256CurvePoint_uncompressed - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaNistP256( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaNistP256( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaBrainpoolP256r1( - mw_eccP256CurvePoint_uncompressed - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaBrainpoolP256r1( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaBrainpoolP256r1( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaBrainpoolP384r1( - mw_eccP384CurvePoint_uncompressed - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaBrainpoolP384r1( - mw_eccP384CurvePoint_compressed_y_0 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, - mw_verificationKeyIndicator_verificationKey( - mw_publicVerificationKey_ecdsaBrainpoolP384r1( - mw_eccP384CurvePoint_compressed_y_1 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ) - ) - ))))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Message with wrong signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CERT_13_BV - - /** - * @desc Check that the certificate encryption key contains ECC point of type set to - * either compressed_lsb_y_0, compressed_lsb_y_1 or uncompressed. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * - * } - * ensure that { - * when { - * the IUT issued the certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing encryptionKey - * containing publicKey - * containing uncompressed - * or containing compressed-y-0 - * or containing compressed-y-1 - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_14_BV - * @reference IEEE 1609.2 [2], Clauses 6.4.38 - */ - testcase TC_SEC_ITSS_SND_CERT_14_BV() runs on ItsGeoNetworking system ItsSecSystem { - // Local variables - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, -, -, - mw_encryptionKey( - -, - mw_publicEncryptionKey_eciesNistP256( - mw_eccP256CurvePoint_uncompressed - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, -, -, - mw_encryptionKey( - -, - mw_publicEncryptionKey_eciesNistP256( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, -, -, - mw_encryptionKey( - -, - mw_publicEncryptionKey_eciesNistP256( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, -, -, - mw_encryptionKey( - -, - mw_publicEncryptionKey_eciesBrainpoolP256r1( - mw_eccP256CurvePoint_uncompressed - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, -, -, - mw_encryptionKey( - -, - mw_publicEncryptionKey_eciesBrainpoolP256r1( - mw_eccP256CurvePoint_compressed_y_0 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at( - -, -, -, -, -, - mw_encryptionKey( - -, - mw_publicEncryptionKey_eciesBrainpoolP256r1( - mw_eccP256CurvePoint_compressed_y_1 - ) - ) - ) - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ) - ) - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Message with wrong signature received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest - ) - ), - mw_geoNwShbPacket - ))) -> value v_geoNwInd { - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Message with certificate not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - } // End of testcase TC_SEC_ITSS_SND_CERT_14_BV - - /** - * @desc Check the certificate signature. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the CA is authorized with AA certificate - * containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the AT certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing issuer - * referencing the certificate - * containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * indicating KEY - * and containing signature - * containing X_SIGNATURE - * verifiable using KEY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_15_BV - * @reference ETSI TS 103 097 [1], Clauses 6 - */ - testcase TC_SEC_ITSS_SND_CERT_15_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // Get the AT certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ))))))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - if (f_verifyCertificateSignatureWithIssuingCertificate(v_signerIdentifier.certificate[0], v_aa_certificate[0]) == true) { - log("*** " & testcasename() & ": PASS: AT certificate is signed by AA certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: AT/AA certificate signature mismatch ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_15_BV - - /** - * @desc Check the certificate signature. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the CA is authorized with AA certificate - * containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the AT certificate - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing issuer - * referencing the certificate - * containing toBeSigned - * containing verifyKeyIndicator - * containing verificationKey - * containing X_KEY - * indicating KEY - * and containing signature - * containing X_SIGNATURE - * verifiable using KEY - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_16_BV - * @reference ETSI TS 103 097 [1], Clauses 6 - */ - testcase TC_SEC_ITSS_SND_CERT_16_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // Get the AT certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ))))))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var integer v_counter; - var charstring v_psid; - var template charstring v_found_pattern; // Used in regex to verify that 'v_psid' was not found before - - // Check in AA certificate - var charstring v_psid_found_aa := ";"; // Used to build the list of the Psid already processed - - for (v_counter := 0; v_counter < lengthof(v_aa_certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { - v_psid := int2str(v_aa_certificate[0].toBeSigned.appPermissions[v_counter].psid); - v_found_pattern := pattern "*({v_psid})*"; - if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { - break; // v_psid exist at least 2 times, uniqueness is not verified - } - v_psid_found_aa := v_psid_found_aa & v_psid & ";"; - } // End of 'for' statement - if (v_counter == lengthof(v_aa_certificate[0].toBeSigned.appPermissions)) { - var charstring v_psid_found_at := ";"; // Used to build the list of the Psid already processed - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { - v_psid := int2str(v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].psid); - v_found_pattern := pattern "*({v_psid})*"; - if (regexp(v_psid_found_at, v_found_pattern, 0) == v_psid) { - log("*** " & testcasename() & ": FAIL: AT certificate contains duplicated Psid ***"); - break; // v_psid exist at least 2 times, uniqueness is not verified - } else if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { - log("*** " & testcasename() & ": FAIL: AT certificate contains a Psid not contained in AA certificate ***"); - break; - } - v_psid_found_at := v_psid_found_at & v_psid & ";"; - } // End of 'for' statement - if (v_counter == lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions)) { - log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: AA certificate contains duplicated Psid ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_16_BV - - /** - * @desc Check that IUT supports at least 8 items in the appPermissions component of the certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT_A8) - * containing toBeSigned - * containing appPermissions - * containing 8 entries - * indicating the last item - * containing psid - * indicating the ‘AID_CAM’ - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing psid - * indicating 'AID_CAM' - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_17_BV - * @reference ETSI TS 103 097 [1], Clauses 6 - */ - testcase TC_SEC_ITSS_SND_CERT_17_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; // FIXME - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: ATS_AID was received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_17_BV - - /** - * @desc Check that all PSID entries of the certIssuePermissions component of the certificate are unique. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the certificate - * containing toBeSigned - * containing certIssuePermissions - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing toBeSigned - * containing certIssuePermissions - * containing items of type PsidGroupPermissions - * and containing subjectPermissions - * containing explicit - * containing items of type PsidSspRange - * containing psid - * indicating unique values in this sequence - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_18_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.28 & 5.1.2.4 - */ - testcase TC_SEC_ITSS_SND_CERT_18_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var integer v_counter; - var integer v_counter1; - var charstring v_psid; - var charstring v_psid_found_aa := ";"; // Used to build the list of the Psid already processed - var template charstring v_found_pattern; // Used in regex to verify that 'v_psid' was not found before - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - if (not(ispresent(v_aa_certificate[0].toBeSigned.certIssuePermissions))) { - log("*** " & testcasename() & ": FAIL: PsidGroupPermissions required in AA certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - for (v_counter := 0; v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions); v_counter := v_counter + 1) { - if (match(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter], mw_psidGroupPermissions(mw_subjectPermissions_explicit)) == false){ - break; - } - for (v_counter1 := 0; v_counter1 < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit); v_counter1 := v_counter1 + 1) { - v_psid := int2str(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit[v_counter1].psid); - v_found_pattern := pattern "*({v_psid})*"; - if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { - break; // v_psid exist at least 2 times, uniqueness is not verified - } - v_psid_found_aa := v_psid_found_aa & v_psid & ";"; - } // End of 'for' statement - if (v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit)) { - break; - } - } // End of 'for' statement - if (v_counter == lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions)) { - log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": FAIL: Wrong PsidGroupPermissions in AA certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_18_BV - - /** - * @desc Check that IUT supports at least 8 items in the certIssuePermissions component of the certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * the IUT is authorized with AT certificate (CERT_IUT_A_AT_A8) - * containing appPermissions - * conformed to the certIssuePermissions - * issued by AA certificate (CERT_IUT_A_AA_C8) - * containing toBeSigned - * containing certIssuePermissions - * containing 8 entries - * indicating the last item - * containing psid - * indicating the ‘AID_CAM’ - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT is requested to send a secured CAM - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing containing content - * containing signedData - * containing tbsData - * containing headerInfo - * containing psid - * indicating 'AID_CAM' - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_19_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.8 - */ - testcase TC_SEC_ITSS_SND_CERT_19_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; // FIXME - f_cf01Up(); - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ) - ))))) { - tc_ac.stop; - log("*** " & testcasename() & ": PASS: ATS_AID was received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_19_BV - - /** - * @desc Check that all PSID entries of the appPermissions component of the certificate are also - * contained in the certIssuePermissions component in the issuing certificate. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the certificate - * containing toBeSigned - * containing certIssuePermissions - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing issuer - * referenced to the certificate - * containing toBeSigned - * containing certIssuePermissions - * containing items of type PsidGroupPermissions - * containing eeType - * indicating app(0) - * and containing subjectPermissions - * containing explicit - * containing items of type PsidSspRange - * indicating X_PSID_RANGE_LIST - * or containing all - * and containing toBeSigned - * containing appPermissions - * containing items of type PsidSsp - * containing psid - * contained in the X_PSID_RANGE_LIST - * as a psid - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_20_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.28 & 5.1.2.4 - */ - testcase TC_SEC_ITSS_SND_CERT_20_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // Get the AT certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ))))))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - var integer v_counter; - var integer v_counter1; - var charstring v_psid; - var charstring v_psid_found_aa := ";"; // Used to build the list of the Psid already processed - var template charstring v_found_pattern; // Used in regex to verify that 'v_psid' was not found before - - // Check in AA certificate - if (not(ispresent(v_aa_certificate[0].toBeSigned.certIssuePermissions))) { - log("*** " & testcasename() & ": FAIL: PsidGroupPermissions required in AA certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - for (v_counter := 0; v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions); v_counter := v_counter + 1) { - if (match(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter], mw_psidGroupPermissions(mw_subjectPermissions_explicit)) == false){ - break; - } - for (v_counter1 := 0; v_counter1 < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit); v_counter1 := v_counter1 + 1) { - v_psid := int2str(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit[v_counter1].psid); - v_found_pattern := pattern "*({v_psid})*"; - if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { - break; // v_psid exist at least 2 times, uniqueness is not verified - } - v_psid_found_aa := v_psid_found_aa & v_psid & ";"; - } // End of 'for' statement - if (v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit)) { - break; - } - } // End of 'for' statement - if (v_counter == lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions)) { - /*var charstring v_psid_found_at := ";"; // Used to build the list of the Psid already processed - - for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { - v_psid := int2str(v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].psid); - v_found_pattern := pattern "*({v_psid})*"; - if (regexp(v_psid_found_at, v_found_pattern, 0) == v_psid) { - log("*** " & testcasename() & ": FAIL: AT certificate contains duplicated Psid ***"); - break; // v_psid exist at least 2 times, uniqueness is not verified - } else if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { - log("*** " & testcasename() & ": FAIL: AT certificate contains a Psid not contained in AA certificate ***"); - break; - } - v_psid_found_at := v_psid_found_at & v_psid & ";"; - } // End of 'for' statement - if (v_counter == lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions)) { - log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - }*/ - - - - - - - - - - - - - - - - - log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": FAIL: Wrong PsidGroupPermissions in AA certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_20_BV - - /** - * @desc Check that SSP field in each entry of the appPermissions component of the AT certificate is - * equal to or a subset of the SSP Range in the corresponding issuing entry. - *
- * Pics Selection: PICS_GN_SECURITY - * Config Id: CF01 - * Initial conditions: - * with { - * - * } - * Expected behaviour: - * ensure that { - * when { - * the IUT issued the certificate - * containing toBeSigned - * containing certIssuePermissions - * } then { - * this certificate is of type EtsiTs103097Certificate - * containing issuer - * referenced to the certificate - * containing toBeSigned - * containing certIssuePermissions - * containing items of type PsidGroupPermissions - * containing eeType - * indicating app(0) - * and containing explicit - * containing psid - * indicating X_PSID_AA - * and containing sspRange - * indicating X_SSP_AA [ X_PSID_AA ] - * or containing all - * and containing toBeSigned - * containing appPermissions - * containing items of type PsidSsp - * containing psid - * indicating value equal to X_PSID_AA - * and containing ssp - * indicating value permitted by X_SSP_AA [ X_PSID_AA ] - * } - * } - *- * - * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_21_BV - * @reference ETSI TS 103 097 [1], Clauses 6.4.28 & 5.1.2.4 - */ - testcase TC_SEC_ITSS_SND_CERT_21_BV() runs on ItsGeoNetworking system ItsSecSystem { - - // Local variables - var SequenceOfCertificate v_aa_certificate; - var SignerIdentifier v_signerIdentifier; - var GeoNetworkingInd v_geoNwInd; - - // Test control - if (not(PICS_GN_SECURITY)) { - log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); - stop; - } - - // Test component configuration - f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA - - // Test adapter configuration - - // Preamble - f_prNeighbour(); - log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); - tc_ac.start; - f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); - f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_certificate( // Get the AT certificate - mw_etsiTs103097Certificate( - -, - mw_toBeSignedCertificate_at - ))))))) -> value v_geoNwInd { - tc_ac.stop; - if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { - // Check in AA certificate - if (not(ispresent(v_aa_certificate[0].toBeSigned.certIssuePermissions))) { - log("*** " & testcasename() & ": FAIL: PsidGroupPermissions required in AA certificate ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { // Parse AT SSP and compared it in AA - for (var integer v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { - var Psid v_psid := v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].psid; - var ServiceSpecificPermissions v_ssp := v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].ssp; - for (var integer v_counter1 := 0; v_counter1 < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions); v_counter1 := v_counter1 + 1) { - var SequenceOfPsidSspRange v_psidSsps; - var integer v_counter2; - if (match(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter], mw_psidGroupPermissions(mw_subjectPermissions_explicit)) == false){ - log("*** " & testcasename() & ": FAIL: AA certificate field certIssuePermissions does not match ***"); - f_setVerdict(e_error); - break; - } - v_psidSsps := v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter1].subjectPermissions.explicit; - for (v_counter2 := 0; v_counter2 < lengthof(v_psidSsps); v_counter2 := v_counter2 + 1) { - if (v_psidSsps[v_counter2].psid == v_psid) { - if (ispresent(v_psidSsps[v_counter2].sspRange)) { - var SspRange v_sspRange := v_psidSsps[v_counter2].sspRange; - // Compare SSps - log(" Compare '", v_sspRange, "' with '", v_ssp, "'"); - if (not(ischosen(v_sspRange.all_))) { - if (ischosen(v_sspRange.opaque) and ischosen(v_ssp.opaque)) { - // TODO How to compare values? - } else if (ischosen(v_sspRange.bitmapSspRange) and ischosen(v_ssp.bitmapSsp)) { - // TODO How to compare values? - } else { - log("*** " & testcasename() & ": FAIL: SSPs do not match ***"); - f_setVerdict(e_error); - break; - } - } // else All rights are sey, nothing to check - } else { - log("*** " & testcasename() & ": FAIL: AA certificate field SspRange field is missging ***"); - f_setVerdict(e_error); - break; - } - break; - } - } // End of 'for' statement - if (v_counter2 == lengthof(v_psidSsps)) { // Psid not found - log("*** " & testcasename() & ": FAIL: psid ", v_psid, " not found in AT certificate ***"); - f_setVerdict(e_error); - break; - } - } // End of 'for' statement - } // End of 'for' statement - if (getverdict == fail) { - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } else { - log("*** " & testcasename() & ": PASS: SSP rage are well configured ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - } else { - log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); - } - } - [] geoNetworkingPort.receive( - mw_geoNwInd( - mw_geoNwSecPdu( - mw_etsiTs103097Data_signed( - mw_signedData( - -, - mw_toBeSignedData( - mw_signedDataPayload, - mw_headerInfo_cam - ), - mw_signerIdentifier_digest // containing digest - ) - ) - ))) { - log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); - repeat; - } - [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Expected message not received ***"); - f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); - } - } // End of 'alt' statement - - // Postamble - f_poNeighbour(); - f_cf01Down(); - - } // End of testcase TC_SEC_ITSS_SND_CERT_21_BV - -// /** -// * @desc Sending behaviour test cases for AA certificate profil -// * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7.7 AA certificate profile -// */ -// group AA_Certificates { -// -// /** -// * @desc Check that the subject_type of the AA certificate is set to authorization_authority -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] -// * containing subject_info.subject_type -// * indicating 'authorization_authority' (2) -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_01_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.4 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// if (not match(v_chain[lengthof(v_chain) - 2], mw_aa_certificate)) { -// log("*** " & testcasename() & ": FAIL: AA certificate not found in the chain[last-1] ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: AA certificate was found in the chain ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_01_01_BV -// -// /** -// * @desc Check that the AA certificsate subject_name variable-length vector contains 32 bytes maximum -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] -// * containing subject_info.subject_name -// * indicating length <= 32 bytes -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_02_01_BV -// * @reference ETSI TS 103 097 [1] Clause 6.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_02_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// // Verified automatically on decoding -// if (lengthof(v_chain[lengthof(v_chain) - 2].subject_info.subject_name) > 32 ) { -// log("*** " & testcasename() & ": FAIL: Subject name of the AA certificate is too long ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: Subject name of the AA certificate is good ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_02_01_BV -// -// /** -// * @desc Check that signer_info type of AA certificates is set to 'certificate_digest_with_sha256' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] -// * containing signer_info -// * containing type -// * indicating 'certificate_digest_with_sha256' -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_03_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.4 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_03_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// if (not match(v_aa_cert, mw_aa_certificate(mw_signerIdentifier_digest))) { -// log("*** " & testcasename() & ": FAIL: AA certificate not signed by digest ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: AA certificate is signed by digest ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_03_01_BV -// -// /** -// * @desc Check that AA certificate is signed by Root CA or other authority -// * @remark There is no clear specification that AA cert shall be signed by the Root CA only -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates -// * containing certificates[last-1] -// * containing signer_info -// * containing type -// * indicating 'certificate_digest_with_ecdsap256' -// * and containing digest -// * referencing to the trusted certificate -// * containing subject_info.subject_type -// * indicating 'root_ca' -// * or indicating 'authorisation_authority' -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_04_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 6.3 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_04_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert, v_ca_cert; -// var SignerInfo v_si; -// var HashedId8 v_ca_digest; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// // Process signerInfo field -// if ( true != f_getCertificateSignerInfo(v_aa_cert, v_si)) { -// log("*** " & testcasename() & ": FAIL: AA certificate must contain SignerInfo fields ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// if (v_si.type_ == e_certificate_digest_with_sha256) { -// log("*** " & testcasename() & ": FAIL: AA certificate must contain SignerInfo field containing a certificate_digest_with_ecdsap256 ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// f_readCertificate(cc_taCert_CA, v_ca_cert); -// v_ca_digest := f_calculateDigestFromCertificate(v_ca_cert); -// -// if (not match(v_aa_cert, mw_aa_certificate(mw_signerIdentifier_digest(v_ca_digest)))) { -// log("*** " & testcasename() & ": FAIL: AA certificate signer info doesn't reference the CA certificate from the chain ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if (not f_verifyCertificateSignatureWithIssuingCertificate(v_aa_cert, v_ca_cert)) { -// log("*** " & testcasename() & ": FAIL: AT certificate signature verification failed ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// log("*** " & testcasename() & ": PASS: AA certificate was signed by the CA certificate from the given chain ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_04_01_BV -// -// /** -// * @desc Check that all neccesary subject attributes are present and arranged in accesing order -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] -// * containing subject_attributes [0..N] -// * indicating subject_attributes[n].type < subject_attributes[n+ 1].type -// * containing subject_attributes['verification_key'] -// * containing subject_attributes['assurance_level'] -// * containing subject_attributes['its_aid_list'] -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_05_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 6.1, 7.4.1 and 7.4.4 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_05_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var SubjectAttributes v_attrs; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// if (not match(v_chain[lengthof(v_chain) - 2], -// mw_aa_certificate(?, -// superset(mw_subject_attribute_verification_key, -// mw_subject_attribute_assurance_level, -// mw_subject_attribute_its_aid_list))) -// ) { -// log("*** " & testcasename() & ": FAIL: Required subject attribute of AA certificate is not found ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// v_attrs := v_chain[lengthof(v_chain) - 2].subject_attributes; -// for (var integer v_counter := 1; v_counter < lengthof(v_attrs); v_counter := v_counter + 1 ) { -// if (v_attrs[v_counter].type_ <= v_attrs[v_counter-1].type_) { -// log("*** " & testcasename() & ": FAIL: AA certificate subject attributes are not arranged in accening order ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } -// -// log("*** " & testcasename() & ": PASS: All required AA certificate subject attributes are presents ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_05_01_BV -// -// /** -// * @desc Check that all AIDs containing in the its_aid_list in AA certificate are unique -// * Check that AID list contains not more then 31 items -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] -// * containing subject_attributes['its_aid_list'] -// * containing its_aid_list[0..N] -// * containing no more then 31 unique item -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_08_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 7.4.4 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_08_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert; -// var SubjectAttribute v_sa; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// if (f_getCertificateSubjectAttribute(v_aa_cert, e_its_aid_list, v_sa)) { -// -// if (lengthof(v_sa.attribute.its_aid_list) > 31) { -// log("*** " & testcasename() & ": FAIL: ITS-AID list contains " & int2str(lengthof(v_sa.attribute.its_aid_list)) & " items (>31) ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// for (var integer v_counter :=0; v_counter < lengthof(v_sa.attribute.its_aid_list); v_counter := v_counter + 1) { -// for (var integer j :=0; j < lengthof(v_sa.attribute.its_aid_list); j := j + 1) { -// if (v_counter != j and v_sa.attribute.its_aid_list[v_counter] == v_sa.attribute.its_aid_list[j]) { -// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_sa.attribute.its_aid_list[j]) & " is duplicated in AA certificate ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } -// } // End of 'for' statement -// } else { -// log("*** " & testcasename() & ": FAIL: AA certificate does not contain its_aid_list subject attribute ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// log("*** " & testcasename() & ": PASS: Time validity restriction of the AA certificate is good ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_08_01_BV -// -// /** -// * @desc Check that all mandatory validity restrictions are present and arranged in ascending order -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates -// * containing certificates[last-1] -// * containing validity_restrictions[0..N] -// * indicating validity_restrictions[n].type < validity_restrictions[n+1].type -// * and containing validity_restrictions['time_start_and_end'] -// * and not containing validity_restrictions['time_end'] -// * and not containing validity_restrictions['time_start_and_duration'] -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_10_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 6.1, 6.7 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_10_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var SequenceOfCertificate v_chain; -// var Certificate v_cert; -// var integer v_previousValidityRestrictionType; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// -// // Test Body -// // Process certificate[last - 1] -// v_cert := v_chain[lengthof(v_chain) - 2]; -// if (match( -// v_cert.validity_restrictions, -// superset( -// mw_validity_restriction_time_end, -// mw_validity_restriction_time_start_and_duration -// ) -// )) { -// log("*** " & testcasename() & ": FAIL: certificate[last-2] must not contain time_end and time_start_and_duration restrictions ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// for (var integer v_counter := 1; v_counter < lengthof(v_cert.validity_restrictions); v_counter := v_counter + 1) { -// // Check forbidden header -// if (v_cert.validity_restrictions[v_counter].type_ != e_time_start_and_end) { // FIXME To be reviewed -// log("*** " & testcasename() & ": FAIL: Forbidden header present"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if (v_counter > 1 ) { -// // Check that headers are ordered -// if (enum2int(v_cert.validity_restrictions[v_counter].type_) <= v_previousValidityRestrictionType) { -// // Check that header is duplicated -// if (enum2int(v_cert.validity_restrictions[v_counter].type_) == v_previousValidityRestrictionType) { -// log("*** " & testcasename() & ": FAIL: multiple instances of same header"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } else { -// log("*** " & testcasename() & ": FAIL: headers not in correct order"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } -// } -// v_previousValidityRestrictionType := enum2int(v_cert.validity_restrictions[v_counter].type_); -// } // End of 'for' statement -// -// log("*** " & testcasename() & ": PASS: Time validity restriction of the certificate[last-2] is good ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_10_01_BV -// -// /** -// * @desc Check that time_start_and_end is included in the AA certificate validation restrictions; -// * Check that end_validity is greater than start_validity -// * Check that validity restriction of AA certificate is inside the validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] { -// * containing validity_restrictions -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_AA_VALIDITY -// * containing end_validity -// * indicating END_AA_VALIDITY >=START_AA_VALIDITY -// * and containing signer_info -// * containing digest -// * referenced to the trusted certificate -// * containing validity_restrictions['time_end'] -// * containing end_validity -// * indicating value > AA_END_VALIDITY -// * or containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating value <= AA_START_VALIDITY -// * and containing end_validity -// * indicating value > AA_END_VALIDITY -// * or containing validity_restrictions['time_start_and_duration'] -// * containing start_validity -// * indicating X_START_VALIDITY <= AA_START_VALIDITY -// * and containing duration -// * indicating value > AA_END_VALIDITY - X_START_VALIDITY -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_11_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 7.4.4 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AA_11_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert; -// var ValidityRestriction v_vr; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// if (match (v_aa_cert.validity_restrictions, superset(mw_validity_restriction_time_end, -// mw_validity_restriction_time_start_and_duration)) -// ) { -// log("*** " & testcasename() & ": FAIL: AA certificate must not contain time_end and time_start_and_duration restrictions ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if ( true != f_getCertificateValidityRestriction(v_aa_cert, e_time_start_and_end, v_vr)) { -// log("*** " & testcasename() & ": FAIL: AA certificate must contain time_start_and_end restrictions ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if (v_vr.validity.time_start_and_end.start_validity > v_vr.validity.time_start_and_end.end_validity ) { -// log("*** " & testcasename() & ": FAIL: start validity mus not be greater then end validity in the validity restrictions of AA certificate ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// log("*** " & testcasename() & ": PASS: Time validity restriction of the AA certificate is good ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_11_01_BV -// -// } // End of group AA_Certificates -// -// /** -// * @desc Sending behaviour test cases for AT certificate profil -// * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7.8 AT certificate profile -// */ -// group AT_Certificates { -// -// /** -// * @desc Check that the subject_type of the AT certificate is set to 'authorization_ticket' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificate -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (1) -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_01_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var Certificate v_at_cert; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); -// tc_ac.start; -// if (not f_waitForCertificate(v_at_cert)) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (not match(v_at_cert, mw_at_certificate)) { -// log("*** " & testcasename() & ": FAIL: Message wasn't signed by AT certificate ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: AT certificate has the 'authorization_ticket' subject_type ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_01_01_BV -// -// /** -// * @desc Check that the subject_name variable-length vector is empty for AT certificates -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificates -// * containing subject_info.subject_name -// * indicating length = 0 -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_02_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_02_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var Certificate v_at_cert; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); -// tc_ac.start; -// if (not f_waitForCertificate(v_at_cert)) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (0 != lengthof(v_at_cert.subject_info.subject_name)) { -// log("*** " & testcasename() & ": FAIL: Subject name of the AT certificate is not empty ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: Subject name of the AT certificate is empty ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_02_01_BV -// -// /** -// * @desc Check that signer_info type of AT certificates is set to 'certificate_digest_with_sha256' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificate -// * containing signer_info -// * containing type -// * indicating 'certificate_digest_with_sha256' -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_03_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_03_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var Certificate v_at_cert; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); -// tc_ac.start; -// if (not f_waitForCertificate(v_at_cert)) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if ( -// not match(v_at_cert, mw_certificate(mw_signerIdentifier_digest)) -// ) { -// log("*** " & testcasename() & ": FAIL: AT certificate doesn't contain a digest of issuing cert ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: The signer info of AT certificate is a digest ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_03_01_BV -// -// /** -// * @desc Check that subject attributes are present and arranged in ascending order -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * containing certificate -// * containing subject_attributes [0..N] -// * indicating subject_attributes[n].type < subject_attributes[n+ 1].type -// * containing subject_attributes['verification_key'] -// * containing subject_attributes['assurance_level'] -// * containing subject_attributes['its_aid_ssp_list'] -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_04_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 7.4.1 and 7.4.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_04_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var Certificate v_at_cert; -// var SubjectAttributes v_attrs; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); -// tc_ac.start; -// if (not f_waitForCertificate(v_at_cert)) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (not match( -// v_at_cert, -// mw_at_certificate( -// ?, -// superset( -// mw_subject_attribute_verification_key, -// mw_subject_attribute_assurance_level, -// mw_subject_attribute_its_aid_ssp_list -// )))) { -// log("*** " & testcasename() & ": FAIL: Required subject attribute of AT certificate is not found ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// v_attrs := v_at_cert.subject_attributes; -// for (var integer v_counter := 1; v_counter < lengthof(v_attrs); v_counter := v_counter + 1 ) { -// if (v_attrs[v_counter].type_ <= v_attrs[v_counter-1].type_) { -// log("*** " & testcasename() & ": FAIL: AT certificate subject attributes are not arranged in ascending order ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } // End of 'for' statement -// -// log("*** " & testcasename() & ": PASS: All required AT certificate subject attributes are presents and arranged in ascending order ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_04_01_BV -// -// /** -// * @desc Check that time_start_and_end is included in the AT certificate validation restrictions -// * Check that time_start_and_end is inside the AA certificate time restrictions -// * Check that validity restriction of AT certificate is inside the validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last] -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (1) -// * not containing validity_restrictions['time_end'] -// * and not containing validity_restrictions['time_start_and_duration'] -// * and containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_AT_VALIDITY -// * and containing end_validity -// * indicating END_AT_VALIDITY -// * and containing certificates[last-1] -// * containing validity_restrictions['time_end'] -// * containing end_validity -// * indicating value > AT_END_VALIDITY -// * or containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating value <= AT_START_VALIDITY -// * containing end_validity -// * indicating value > AT_END_VALIDITY -// * or containing validity_restrictions['time_start_and_duration'] -// * containing start_validity -// * indicating X_START_VALIDITY <= AT_START_VALIDITY -// * and containing duration -// * indicating value > AT_END_VALIDITY - X_START_VALIDITY -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_05_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_05_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert, v_at_cert; -// var ValidityRestriction v_vr, v_aa_vr; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// v_at_cert := v_chain[lengthof(v_chain) - 1]; -// if (match ( -// v_at_cert.validity_restrictions, -// -// superset( -// mw_validity_restriction_time_end, -// mw_validity_restriction_time_start_and_duration -// ) -// )) { -// log("*** " & testcasename() & ": FAIL: AT certificate must not contain time_end and time_start_and_duration restrictions ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if ( true != f_getCertificateValidityRestriction(v_at_cert, e_time_start_and_end, v_vr)) { -// log("*** " & testcasename() & ": FAIL: AT certificate must contain time_start_and_end restrictions ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if (v_vr.validity.time_start_and_end.start_validity > v_vr.validity.time_start_and_end.end_validity ) { -// log("*** " & testcasename() & ": FAIL: start validity must not be greater then end validity in the validity restrictions of AT certificate ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if (true == f_getCertificateValidityRestriction(v_aa_cert, e_time_start_and_end, v_aa_vr)) { -// if ( -// (v_vr.validity.time_start_and_end.start_validity < v_aa_vr.validity.time_start_and_end.start_validity) or -// (v_vr.validity.time_start_and_end.end_validity > v_aa_vr.validity.time_start_and_end.end_validity) -// ) { -// log("*** " & testcasename() & ": FAIL: AT certificate time validity restriction must be inside the AA certificate time validity restriction ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } else if (true == f_getCertificateValidityRestriction(v_aa_cert, e_time_end, v_aa_vr)) { -// if (v_vr.validity.time_start_and_end.end_validity > v_aa_vr.validity.end_validity) { -// log("*** " & testcasename() & ": FAIL: AT certificate time validity restriction must be inside the AA certificate time validity restriction ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } else if (true == f_getCertificateValidityRestriction(v_aa_cert, e_time_start_and_duration, v_aa_vr)) { -// var Time64 v_end := v_aa_vr.validity.time_start_and_duration.start_validity + f_duration2time(v_aa_vr.validity.time_start_and_duration.duration_); -// if ( -// (v_vr.validity.time_start_and_end.start_validity < v_aa_vr.validity.time_start_and_duration.start_validity) or -// (v_vr.validity.time_start_and_end.end_validity > v_end) -// ) { -// log("*** " & testcasename() & ": FAIL: AT certificate time validity restriction must be inside the AA certificate time validity restriction ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } else { -// log("*** " & testcasename() & ": FAIL: Wrong AA certificate time restrictions ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// log("*** " & testcasename() & ": PASS: Time validity restriction of the AT certificate is good ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_05_01_BV -// -// /** -// * @desc Check that all AIDs containing in the its_aid_ssp_list in AT certificate are unique -// * Check that all AIDs containing in the its_aid_ssp_list in AT certificate are also containing in the -// * its_aid_list in the correspondent AA certificate -// * Check that the length of SSP of each AID is 31 octet maximum -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] -// * containing subject_info.subject_type -// * indicating 'authorization_authority' (2) -// * containing subject_attributes['its_aid_list'] -// * containing its_aid_list[0..N] -// * indicating ITS_AID_LIST_AA -// * containing certificates[last] -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (1) -// * containing subject_attributes['its_aid_ssp_list'] -// * containing its_aid_ssp_list[0..N] -// * containing its_aid_ssp_list[n] -// * containing its_aid -// * indicating unique value containing in the ITS_AID_LIST_AA -// * containing service_specific_permissions -// * indicating length <= 31 octet -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_07_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 6.9 and 7.4.2 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_07_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert, v_at_cert; -// var SubjectAttribute v_sa; -// var IntXs v_aid_list; -// var ItsAidSsps v_aid_ssp_list; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// v_at_cert := v_chain[lengthof(v_chain) - 1]; -// if (not f_getCertificateSubjectAttribute(v_aa_cert, e_its_aid_list, v_sa)) { -// log("*** " & testcasename() & ": FAIL: AA certificate does not contain its_aid_list subject attribute ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aid_list := v_sa.attribute.its_aid_list; -// -// if (not f_getCertificateSubjectAttribute(v_at_cert, e_its_aid_ssp_list, v_sa)) { -// log("*** " & testcasename() & ": FAIL: AA certificate does not contain its_aid_list subject attribute ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_aid_ssp_list := v_sa.attribute.its_aid_ssp_list; -// -// for (var integer v_counter :=0; v_counter < lengthof(v_aid_ssp_list); v_counter := v_counter + 1) { -// // Check unique -// for (var integer j :=0; j < lengthof(v_aid_ssp_list); j := j + 1) { -// if (v_counter != j and v_aid_ssp_list[v_counter].its_aid == v_aid_ssp_list[j].its_aid) { -// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_aid_ssp_list[v_counter].its_aid) & " is duplicated in AT certificate ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } // End of 'for' statement -//// if (not match(v_aid_ssp_list[v_counter], (all from v_aid_list))) { -//// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_aid_ssp_list[v_counter].its_aid) & " is not exist in AA certificate ***"); -//// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -//// } -// // TODO Not possible due to typing To be removed -//// if (lengthof(v_aid_ssp_list[v_counter].service_specific_permissions.sspContainer) > 31) { -//// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_aid_ssp_list[v_counter].its_aid) & " has too long service_specific_permissions ***"); -//// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -//// } -// } // End of 'for' statement -// -// log("*** " & testcasename() & ": PASS: The ITS_AID_SSP list of the AT certificate is good ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_07_01_BV -// -// /** -// * @desc Check that AT certificate is signed by AA cert -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate chain in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * containing certificates[last-1] (CERT_AA) -// * containing subject_info.subject_type -// * indicating 'authorization_authority' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * containing certificates[last] -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (1) -// * and containing signer_info[0] -// * containing type -// * indicating 'certificate_digest_with_sha256' -// * containing digest -// * referencing to CERT_AA -// * and containing signature -// * verifiable using KEY -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_08_01_BV -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_08_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var SequenceOfCertificate v_chain; -// var Certificate v_aa_cert, v_at_cert; -// var HashedId8 v_aa_digest; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); -// tc_ac.start; -// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (lengthof(v_chain) < 2) { -// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_at_cert := v_chain[lengthof(v_chain) - 1]; -// v_aa_cert := v_chain[lengthof(v_chain) - 2]; -// v_aa_digest := f_calculateDigestFromCertificate(v_aa_cert); -// -// if (not match(v_at_cert, mw_at_certificate(mw_signerIdentifier_digest(v_aa_digest)))) { -// log("*** " & testcasename() & ": FAIL: AT certificate signer info doesn't reference the AA certificate from the chain ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// if (not f_verifyCertificateSignatureWithIssuingCertificate(v_at_cert, v_aa_cert)) { -// log("*** " & testcasename() & ": FAIL: AT certificate signature verification failed ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// log("*** " & testcasename() & ": PASS: AT certificate was signed by the AA certificate from the given chain ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_08_01_BV -// -// /** -// * @desc Check that all necessary validity restrictions are present and arranged in ascending order -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * with { -// * the IUT being in the 'authorized' state -// * the IUT being requested to include certificate in the next CAM -// * } ensure that { -// * when { -// * the IUT is requested to send a CAM -// * } then { -// * the IUT sends a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * containing certificate -// * containing subject_attributes [0..N] -// * indicating subject_attributes[n].type < subject_attributes[n+ 1].type -// * containing subject_attributes['verification_key'] -// * containing subject_attributes['assurance_level'] -// * containing subject_attributes['its_aid_ssp_list'] -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_10_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 6.1 -// */ -// testcase TC_SEC_ITSS_SND_CERT_AT_10_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// var Certificate v_at_cert; -// var ValidityRestriction v_vr; -// var ValidityRestrictions v_vrs; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); -// tc_ac.start; -// if (not f_waitForCertificate(v_at_cert)) { -// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); -// } -// tc_ac.stop; -// if (not match( -// v_at_cert, -// mw_at_certificate( -// mw_signerIdentifier_certificate -// ))) { -// } -// -// if (true != f_getCertificateValidityRestriction(v_at_cert.signer_info.signerInfo.certificate, e_time_start_and_end, v_vr)) { -// log("*** " & testcasename() & ": FAIL: Required 'time_start_and_end' validity_restriction attribute of AT certificate is not found ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// v_vrs := v_at_cert.signer_info.signerInfo.certificate.validity_restrictions; -// for (var integer v_counter := 1; v_counter < lengthof(v_vrs); v_counter := v_counter + 1 ) { -// if (v_vrs[v_counter].type_ <= v_vrs[v_counter-1].type_) { -// log("*** " & testcasename() & ": FAIL: AT certificate subject attributes are not arranged in ascending order ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// } // End of 'for' statement -// -// log("*** " & testcasename() & ": PASS: All required AT certificate subject attributes are presents and arranged in ascending order ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_10_01_BV -// -// } // End of group AT_Certificates - - } // End of group profileForCertificates - - } // End of group sendingBehavior - - /** - * @desc Receiver behaviour test cases - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3 Receiver behaviour - */ - group receiverBehavior { - - /** - * @desc Receiving behaviour test cases for CAM profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.2 CAM Profile - */ - group recvCamProfile { - -// /** -// * @desc Check that IUT accepts a well-formed Secured CAM containing certificate in signer_info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_AT_A) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields[2] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing any other header fields -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing CAM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_01_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert_A, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_01_01_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured CAM containing certificate digest of the known certificate in signer_info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * and the IUT already sent a Secured message containing certificate (CERT_TS_A_AT) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * indicating 'certificate_digest_with_sha256' -// * and containing digest -// * referencing to certificate (CERT_TS_A_AT) -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields[2] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing any other header fields -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing CAM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_01_02_BV -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_01_02_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert_A, omit, e_certificate_digest_with_sha256); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_01_02_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured CAM containing certificate chain in signer_info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates -// * containing certificate (CERT_TS_A_AA) at index 0 -// * containing subject_info.subject_type -// * indicating 'authorization_authority' -// * and containing subject_attributes['verification key'] (KEY_TS_AA) -// * and containing certificate (CERT_TS_A_AT) at index 1 -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' -// * and containing signer_info -// * containing type -// * indicating 'certificate_digest_with_sha256' -// * containing digest -// * referencing to the CERT_TS_A_AA -// * and containing signature -// * verifiable using KEY_TS_AA -// * and containing subject_attributes['verification key'] (KEY_TS_AT) -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields[2] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing any other header fields -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing CAM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY_TC_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_01_03_BV -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_01_03_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert_A, -, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_01_03_BV -// -// /** -// * @desc Check that IUT discards a Secured CAM containing protocol version set to a value less then 2 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing protocol_version -// * indicating 1 -// * } then { -// * the IUT discards a Ieee1609Dot2Data -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_02_01_BO -// * @reference ETSI TS 103 097 [1] Clause 5.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_02_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_02_01_BO -// -// /** -// * @desc Check that IUT discards a Secured CAM containing protocol version set to a value greater then 2 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing protocol_version -// * indicating 3 -// * } then { -// * the IUT discards a Ieee1609Dot2Data -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_02_02_BO -// * @reference ETSI TS 103 097 [1] Clause 5.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_02_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); // Change PX_WRONG_PROTOCOL_VERSION to 3 -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_02_02_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contains more than one element of header field type: signer_info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'signer_info' -// * and containing header_fields[2].type -// * indicating 'generation_time' -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_signer_info( -// m_signerIdentifier_certificate( -// vc_atCertificate -// )), -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_01_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields does not contain the header field type: signer_info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'generation_time' -// * and containing header_fields[1] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// if (PICS_DEBUG_ADDON) { -// f_sendCertificateAndWaitForCertificateChainRequest(cc_taCert_F, f_generateDefaultCam()); -// } -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_02_BO -// -// /** -// * @desc Check that IUT is able to receive a secured CAM if the signer_info header field is not encoded first -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[2].type -// * indicating 'signer_info' -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM, -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )) -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_03_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields doesn't contain the element of header field of type: generation_time -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_04_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields does not contain the header field type: generation_time -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_05_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contain more than one element of header field of type: its_aid -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[2] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_DENM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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_its_aid_CAM, -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_06_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contain more than one element of header field of type: its_aid -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_06a_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_06a_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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 -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_06a_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header fields are not in the ascending order according to the numbering of the enumeration -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and containing header_fields[2].type -// * indicating 'generation_time' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_07_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_its_aid_CAM, -// m_header_info_generation_time(1000 * f_getCurrentTime()) // In us -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_07_BO -// -// /** -// * @desc Check that IUT ignores the HeaderInfo generation_time_standard_deviation of received Secured CAM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * indicating TIME_1 inside the validity period of the signer certificate -// * and containing header_fields[2].type -// * indicating 'generation_time_with_standard_deviation' -// * indicating TIME_2 inside the validity period of the signer certificate -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_08_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_08_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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_generation_time_with_standard_deviation( -// m_time64WithStandardDeviation( -// 1000, // In us -// 0 -// )), -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_08_BO -// -// /** -// * @desc Check that IUT ignores the HeaderInfo generation_time_standard_deviation of received Secured CAM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * indicating TIME_1 outside the validity period of the signer certificate -// * and containing header_fields[2].type -// * indicating 'generation_time_with_standard_deviation' -// * indicating TIME_2 inside the validity period of the signer certificate -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_09_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_09_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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_generation_time_with_standard_deviation( -// m_time64WithStandardDeviation( -// 1000 * f_getCurrentTime(), // In us -// 0 -// )), -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_09_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing the expiry_time HeaderInfo -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * indicating CURRENT_TIME -// * and containing header_fields[2] -// * containing type -// * indicating 'expiration' -// * and containing expiry_time -// * indicating CURRENT_TIME + 1h -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_10_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_10_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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( -// f_getCurrentTime() - 3600/*1h*/ -// ), -// m_header_info_its_aid_CAM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_10_BO -// -// /** -// * @desc Check that IUT ignores the HeaderInfo generation_location of received Secured CAM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * indicating certificate -// * and containing certificate (CERT_TS_AT_B) -// * containing validity_restrictions['region'] -// * containing region (X_CERT_REGION) -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[2] -// * containing type -// * indicating 'generation_location' -// * and containing generation_location -// * indicating position outside of the validity restriction of X_CERT_REGION -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_11_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_11_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_B, -// { -// m_header_info_generation_time(1000 * (f_getCurrentTime())), // In us -// m_header_info_generation_location( -// m_threeDLocation( -// PX_WGSLONGITUDE, -// PX_WGSLATITUDE, -// int2oct(0, 2) -// ) -// ), -// m_header_info_its_aid_CAM -// }, -// e_certificate, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_11_BO -// -// /** -// * @desc Check that IUT accepts the Secured CAM containing additional non-standard HeaderInfo -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[2].type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and containing header_fields[3] -// * containing type -// * indicating non-standard header field type (200) -// * and containing other_header -// * indicating non-empty data -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_12_BV -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_12_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_B, -// { -// m_header_info_generation_time(1000 * (f_getCurrentTime())), // In us -// m_header_info_generation_location( -// m_threeDLocation( -// PX_WGSLONGITUDE, -// PX_WGSLATITUDE, -// int2oct(0, 2) -// ) -// ), -// m_header_info_its_aid_CAM, -// m_header_info_unspecify -// }, -// e_certificate_digest_with_sha256, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_12_BV -// -// /** -// * @desc Check that IUT discards the Secured CAM containing the header field 'encryption_parameter and recipient_info' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[2].type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_CAM' -// * and containing header_fields[3] -// * 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 -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_13_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_04_13_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var Certificate v_iutATCertificate; -// var SubjectAttribute v_encryption_key; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// if ( -// (f_readCertificate(cc_iutCert_A, v_iutATCertificate) == false) or -// (f_getCertificateSubjectAttribute(v_iutATCertificate, e_encryption_key, v_encryption_key) == false) -// ) { -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); // Set verdict to inconc -// } else { -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_B, -// { -// m_header_info_generation_time(1000 * (f_getCurrentTime())), // In us -// m_header_info_generation_location( -// m_threeDLocation( -// PX_WGSLONGITUDE, -// PX_WGSLATITUDE, -// int2oct(0, 2) -// ) -// ), -// m_header_info_its_aid_CAM, // containing header_fields[2].type -// // indicating 'its_aid' -// 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, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_13_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type 'self' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'self' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_05_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// if (PICS_DEBUG_ADDON) { -// f_sendCertificate(cc_taCert_F, f_generateDefaultCam()); -// } -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_signerIdentifier_self -// ), -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_self, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_01_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type certificate_digest_with_other_algorithm -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_02) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'certificate_digest_with_other_algorithm' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_05_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// if (PICS_DEBUG_ADDON) { -// f_sendCertificate(cc_taCert_F, f_generateDefaultCam()); -// } -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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_its_aid_CAM -// }, -// e_certificate_digest_with_other_algorithm, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_02_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type certificate_chain and the chain is empty -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_02) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'certificate_chain' -// * and containing certificates -// * indicating length = 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_05_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// if (PICS_DEBUG_ADDON) { -// f_sendCertificate(cc_taCert_F, f_generateDefaultCam()); -// } -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_signerIdentifier_certificates( -// { } -// )), -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate_chain, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_03_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type certificate_chain and the chain contains only one certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_03) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'certificate_chain' -// * and containing certificates -// * indicating length = 1 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_05_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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_its_aid_CAM -// }, -// e_certificate_chain, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_04_BO -// -// /** -// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer info of unknown or reserved type -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_02) -// * containing header_fields['signer_info'] -// * containing signer.type -// * indicating X_UNKNOWN_SIGNERINFO_TYPE -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_05_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// 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_its_aid_CAM -// }, -// e_unknown, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_05_BO -// -// /** -// * @desc Check that IUT discards message containing generation_time before the certificate validity period -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * and containing header_fields['signer_info'].signer -// * 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 < START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_06_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var ValidityRestriction v_timeValidity; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_timeValidity); -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert0601_BO, -// { -// m_header_info_generation_time( -// (v_timeValidity.validity.time_start_and_end.start_validity - 3600) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_01_BO -// -// /** -// * @desc Check that IUT discards message containing generation_time after the certificate validity period -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * and containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_06_02_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 > END_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_06_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var ValidityRestriction v_timeValidity; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_timeValidity); -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert0602_BO, -// { -// m_header_info_generation_time( -// (v_timeValidity.validity.time_start_and_end.end_validity + 3600) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_02_BO -// -// /** -// * @desc Check that IUT discards Secured CAM if the generation_time is more than 5 minute in the past (C2C only) -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * containing header_fields ['generation_time'] -// * containing generation_time -// * indicating GEN_TIME ( CURRENT_TIME - 302sec ) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_06_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_generation_time( -// (1000 * f_getCurrentTime() - 302) * 1000 -// ) // In us -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_03_BO -// -// /** -// * @desc Check that IUT discards Secured CAM if the generation_time is more than 5 minute in the future(C2C only) -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * containing header_fields ['generation_time'] -// * containing generation_time -// * indicating GEN_TIME ( CURRENT_TIME + 302sec ) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_06_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_generation_time( -// (1000 * f_getCurrentTime() + 302) * 1000 -// ) // In us -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_04_BO -// -// /** -// * @desc Check that IUT discards secured CAM when its_aid value is not AID_CAM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields['its_aid'] -// * indicating AID_DENM -// * and containing payload_field { -// * containing type -// * indicating 'signed' -// * containing data -// * containing CAM payload -// * } -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_07_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_07_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_07_01_BO -// -// /** -// * @desc Check that IUT discards secured CAM when its_aid value is undefined -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields['its_aid'] -// * indicating 'AID_UNDEFINED' -// * and containing payload_field { -// * containing type -// * indicating 'signed' -// * containing data -// * containing CAM payload -// * } -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_07_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_07_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// { -// m_header_info_its_aid_Other -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_07_02_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing empty payload of type 'signed'. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing payload_field -// * containing type -// * indicating 'signed' -// * and containing data -// * indicating length 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_09_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_camReq( -// m_camMsg_vehicle_HF_BV( -// f_getTsStationId(), -// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime -// LibItsCam_Templates.m_tsPosition -// )))))); -// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); -// f_buildGnSecuredCam( -// v_securedMessage, -// m_payload_signed( -// ''O -// ) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_02_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing non-empty payload of type 'unsecured' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing payload_field -// * containing type -// * indicating 'unsecured' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_09_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_camReq( -// m_camMsg_vehicle_HF_BV( -// f_getTsStationId(), -// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime -// LibItsCam_Templates.m_tsPosition -// )))))); -// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); -// f_buildGnSecuredCam( -// v_securedMessage, -// m_payload_unsecured( -// v_gnPayload -// ) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_03_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing non-empty payload of type 'encrypted' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * and containing payload_field -// * containing type -// * indicating 'encrypted' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_09_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_camReq( -// m_camMsg_vehicle_HF_BV( -// f_getTsStationId(), -// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime -// LibItsCam_Templates.m_tsPosition -// )))))); -// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); -// f_buildGnSecuredCam( -// v_securedMessage, -// m_payload_encrypted( -// v_gnPayload -// ) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_04_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing exactly one non-empty payload of type 'signed_external' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing payload_field -// * containing type -// * indicating 'signed_external' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_09_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_camReq( -// m_camMsg_vehicle_HF_BV( -// f_getTsStationId(), -// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime -// LibItsCam_Templates.m_tsPosition -// )))))); -// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); -// f_buildGnSecuredCam( -// v_securedMessage, -// m_payload_signed_external( -// v_gnPayload -// ) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_05_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing non-empty payload of type 'signed_and_encrypted' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing payload_field -// * containing type -// * indicating 'signed_and_encrypted' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_09_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_camReq( -// m_camMsg_vehicle_HF_BV( -// f_getTsStationId(), -// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime -// LibItsCam_Templates.m_tsPosition -// )))))); -// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); -// f_buildGnSecuredCam( -// v_securedMessage, -// m_payload_signed_and_encrypted( -// v_gnPayload -// ) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_06_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing non-empty payload of unknown type -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing payload_field -// * containing type -// * indicating X_UNKNOWN_PAYLOAD_TYPE -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_07_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_09_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_camReq( -// m_camMsg_vehicle_HF_BV( -// f_getTsStationId(), -// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime -// LibItsCam_Templates.m_tsPosition -// )))))); -// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); -// f_buildGnSecuredCam( -// v_securedMessage, -// m_payload_unknown( -// v_gnPayload -// ) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_07_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM doesn't containing the TrailerField of type 'signature' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing trailer_fields -// * not containing any instance of type TrailerField -// * containing type -// * indicating 'signature' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_10_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_10_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, -, 0); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if(i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_10_01_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing more then one instance of TrailerField of type 'signature' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing trailer_fields[0].type -// * containing type -// * indicating 'signature' -// * and containing trailer_fields[1].type -// * containing type -// * indicating 'signature' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_10_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_10_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, -, 2); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if(i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_10_02_BO -// -// /** -// * @desc Check that the IUT discards Secured message containing signature that is not verified using the -// * verification key from the certificate contained in the message's signer info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing header_fields ['signer_info'] -// * containing certificate -// * containing subject_attributes['verification key'] (KEY) -// * and containing trailer_fields[0] -// * containing type -// * indicating 'signature' -// * and containing signature -// * NOT verifiable using KEY -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_11_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_11_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam_Bo( -// cc_taCert_A, -// -, -// 1, -// -, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if(i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_11_01_BO -// -// /** -// * @desc Check that the IUT discards Secured message containing signature that is not verified using the -// * verification key from the certificate, referenced by the digest contained in the message's signer info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_02) -// * containing header_fields ['signer_info'].signer -// * containing digest -// * referencing to the certificate (CERT_TS_AT_A) -// * containing subject_attributes['verification key'] (KEY) -// * and containing trailer_fields[0] -// * containing type -// * indicating 'signature' -// * and containing signature -// * NOT verifiable using KEY -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_11_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_11_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_A, -// omit, -// e_certificate_digest_with_sha256 -// ); -// v_securedGnPdu.gnPacket.securedMsg.trailer_fields[0].trailerField.signature_.signature_.ecdsa_signature.s -// := not4b(v_securedGnPdu.gnPacket.securedMsg.trailer_fields[0].trailerField.signature_.signature_.ecdsa_signature.s); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if(i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_11_02_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM if the message contains trailer field of type 'signature' with reserved public key algorythms -// * @remark Values to be provided as X_RESERVED_PK_ALGORYTHM are: 240, 255 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_CAM_01) -// * containing an instance of type trailer_field -// * containing type -// * indicating 'signature' -// * and containing signature.algorithm -// * indicating X_RESERVED_PK_ALGORYTHM -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_11_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_11_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam_Bo( -// cc_taCert_A, -// -, -// 3 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if(i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_11_03_BO -// -// /** -// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'enrolment_credential' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * Expected behaviour: -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_EC_A) -// * containing subject_info.subject_type -// * indicating 'enrolment_credentials' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_12_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_EC, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_01_BO -// -// /** -// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'authorization_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * Expected behaviour: -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_AA_A) -// * containing subject_info.subject_type -// * indicating 'authorization_authority' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_12_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_AA, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_02_BO -// -// /** -// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'enrolment_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * Expected behaviour: -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * and certificate (CERT_TS_EA_A) -// * containing subject_info.subject_type -// * indicating 'enrolment_authority' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_03_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_12_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_EA, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_03_BO -// -// /** -// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'root_ca' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * Expected behaviour: -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * and certificate (CERT_TS_ROOT) -// * containing subject_info.subject_type -// * indicating 'root_ca' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_04_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam( -// cc_taCert_CA, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_CAM -// }, -// e_certificate, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_04_BO -// -// /** -// * @desc Check that IUT discards secured CAM signed with the not yet valid certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_MSG_13_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_01_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AT > CURRENT_TIME -// * and containing end_validity -// * indicating END_VALIDITY_AT > START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1301_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_01_BO -// -// /** -// * @desc Check that IUT discards secured CAM signed with the expired certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_MSG_13_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_02_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AT < CURRENT_TIME -// * and containing end_validity -// * indicating END_VALIDITY_AT < START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1302_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_02_BO -// -// /** -// * @desc Check that IUT discards secured CAM when IUT location is outside the circular validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_MSG_13_03_BO_AT -// * and the IUT current location is set to CURRENT_IUT_LOCATION -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_03_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1303_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_03_BO -// -// /** -// * @desc Check that IUT discards secured CAM when IUT location is outside the rectangular validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_MSG_13_04_BO_AT -// * and the IUT current location is set to CURRENT_IUT_LOCATION -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_04_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectanglar_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_13_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1304_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_04_BO -// -// /** -// * @desc Check that IUT discards secured CAM when IUT location is outside the polygonal validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_MSG_13_05_BO_AT -// * and the IUT current location is set to CURRENT_IUT_LOCATION -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_05_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_13_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1305_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_05_BO -// -// /** -// * @desc Check that IUT discards secured CAM when IUT location is outside the identified validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_MSG_13_06_BO_AT -// * and the IUT current location is set to CURRENT_IUT_LOCATION -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_06_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.1 -// */ -// testcase TC_SEC_ITSS_RCV_CAM_13_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1306_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_06_BO - - } // End of group recvCamProfile - - /** - * @desc Receiving behaviour test cases for DENM profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.3 DENM Profile - */ - group recvDenmProfile { - -// /** -// * @desc Check that IUT accepts a well-formed Secured DENM signed with the certificate without region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_AT_A) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and not containing validity_restrictions['region'] -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * containing generation_location -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_DENM' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing DENM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_A, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_01_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a circular region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_B_AT -// * and the IUT current location is inside the region validity period of CERT_TS_B_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer { -// * containing type -// * containing certificate -// * and containing certificate (CERT_AT_B) { -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['region'] { -// * containing region{ -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * } -// * } -// * } -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * containing generation_location -// * indicating position inside the REGION -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_DENM' -// * and not containing any other header_fields -// * and containing payload_fields { -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing DENM payload -// * } -// * and containing trailer_fields { -// * containing single instance of type TrailerField { -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } -// * } -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_02_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_01_02_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_B, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_02_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a rectangular region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected Behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_C_AT -// * and the IUT current location is inside the region validity period of CERT_TS_C_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_AT_C) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_regions -// * indicating REGIONS -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * containing generation_location -// * indicating position inside the REGION -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_DENM' -// * and not containing any other header_fields -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing DENM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_03_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_01_03_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_C, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_03_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a polygonal region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected Behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_D_AT -// * and the IUT current location is inside the region validity period of CERT_TS_D_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_AT_D) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * containing generation_location -// * indicating position inside the REGION -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_DENM' -// * and not containing any other header_fields -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing DENM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_04_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_01_04_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_D, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_04_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a identified region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected Behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_D_AT -// * and the IUT current location is inside the region validity period of CERT_TS_D_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_AT_E) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'id_region' -// * and containing identified_region -// * indicating REGION -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * containing generation_location -// * indicating position inside the REGION -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_DENM' -// * and not containing any other header_fields -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * containing DENM payload -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_01_05_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_D, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_05_BV -// -// /** -// * @desc Check that IUT discards a Secured DENM containing protocol version set to a value less then 2 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing protocol_version -// * indicating 1 -// * } then { -// * the IUT discards a Ieee1609Dot2Data -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_02_01_BO -// * @reference ETSI TS 103 097 [1] Clause 5.1 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_02_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_02_01_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM containing protocol version set to a value greater then 2 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing protocol_version -// * indicating 3 -// * } then { -// * the IUT discards a Ieee1609Dot2Data -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_02_02_BO -// * @reference ETSI TS 103 097 [1] Clause 5.1 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_02_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_02_02_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'signer_info' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'signer_info' -// * and containing header_fields[2].type -// * indicating 'generation_time' -// * and containing header_fields[3].type -// * indicating 'generation_location' -// * and containing header_fields[4].type -// * indicating 'its_aid' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_signer_info( -// m_signerIdentifier_certificate( -// vc_aaCertificate -// )), -// 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_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_01_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'signer_info' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'generation_time' -// * and containing header_fields[1].type -// * indicating 'generation_location' -// * and containing header_fields[2].type -// * indicating 'its_aid' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// 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_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_02_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM if the signer_info header field is not encoded first -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'generation_time' -// * and containing header_fields[1].type -// * indicating 'generation_location' -// * and containing header_fields[2].type -// * containing its_aid -// * and containing header_fields[3].type -// * indicating 'signer_info' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// 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_DENM, -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )) -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_03_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'generation_time' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_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_time' -// * and containing header_fields[3].type -// * indicating 'generation_location' -// * and containing header_fields[4].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_generation_time(1000 * f_getCurrentTime() - 1), // In us -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_04_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'generation_time' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_location' -// * and containing header_fields[2].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_05_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'its_aid' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_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 -// * containing its_aid -// * and containing header_fields[4].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM, -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_06_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'its_aid' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_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 -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_06a_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_06a_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_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_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_06a_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'generation_location' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_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 -// * containing 'generation_location' -// * and containing header_fields[4].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_07_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0100'O -// )) -// ), -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_07_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'generation_location' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[2].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_08_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_08_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_08_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the header fields are not in the ascending order according to the numbering of the enumeration -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * containing its_aid -// * and containing header_fields[2].type -// * indicating 'generation_time' -// * and containing header_fields[3].type -// * indicating 'generation_location' -// * and containing header_fields[4].type -// * containing 'generation_location' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_09_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_09_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_its_aid_DENM, -// 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_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_09_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM containing header field of type 'generation_time_standard_deviation' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing time -// * indicating CURRENT_TIME -// * and containing header_fields[2] -// * containing type -// * indicating 'generation_time_standard_deviation' -// * and containing log_std_dev -// * indicating 255 -// * and containing header_fields[3].type -// * indicating 'generation_location' -// * and containing header_fields[4].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_10_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_10_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_generation_time_with_standard_deviation( -// m_time64WithStandardDeviation( -// 1000 * f_getCurrentTime(), -// 255 -// ) -// ), -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_10_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing the header fields of type 'expiry_time' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing time -// * indicating CURRENT_TIME -// * and containing header_fields[2] -// * containing type -// * indicating 'expiration' -// * and containing expiry_time -// * indicating CURRENT_TIME + 1 h -// * and containing header_fields[3].type -// * indicating 'generation_location' -// * and containing header_fields[4].type -// * containing its_aid -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_11_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_11_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_11_BO -// -// /** -// * @desc Check that IUT accepts the Secured DENM containing additional non-standard HeaderInfo -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[3].type -// * containing its_aid -// * and containing header_fields[4] -// * containing type -// * indicating non-standard header field type (200) -// * and containing other_header -// * indicating non-empty data -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_12_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_12_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM, -// m_header_info_unspecify -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_12_BO -// -// /** -// * @desc Check that IUT discards the Secured CAM containing the header field 'encryption_parameter and recipient_info' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing header_fields[3].type -// * containing 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 -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_13_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_13_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var Certificate v_iutATCertificate; -// var SubjectAttribute v_encryption_key; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// 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_prepareSecuredDenm( -// 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_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM, -// 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_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_13_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing the header fields of type 'request_unrecognized_certificate' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * and containing header_fields[1].type -// * indicating 'generation_time' -// * and containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields[2].type -// * indicating 'request_unrecognized_certificate' -// * and containing digests[0] -// * indicating the digest of X_IUT_AT_CERT -// * and containing header_fields[3].type -// * indicating 'generation_location' -// * and containing header_fields[4].type -// * indicating 'its_aid' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_14_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_04_14_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var Certificate v_iutATCertificate; -// var SignerInfo v_signerIdentifier; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// if ( -// (f_readCertificate(cc_iutCert_A, v_iutATCertificate) == false) or -// (f_getCertificateSignerInfo(v_iutATCertificate, v_signerIdentifier) == false) -// ) { -// f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_timeout); // Set verdict to inconc -// } else { -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_unrecognised_certificate( -// f_HashedId3FromHashedId8( -// f_calculateDigestFromCertificate( -// v_signerIdentifier.signerInfo.certificate -// ) -// ) -// ), -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_DENM -// }, -// e_certificate_digest_with_sha256, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_14_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the header_fields contains a signer of type 'self' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'self' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_05_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_DENM -// }, -// e_self, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_01_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the header_fields contains a signer of type 'certificate_digest_with_other_algorithm' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'certificate_digest_with_other_algorithm' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_05_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_DENM -// }, -// e_certificate_digest_with_other_algorithm, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_02_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the header_fields contains a signer of type certificate_chain -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating 'certificate_digest_with_other_algorithm' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_05_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_signer_info( -// m_signerIdentifier_certificates( -// { vc_aaCertificate, 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_DENM -// }, -// e_certificate_chain, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_03_BO -// -// /** -// * @desc Check that IUT discards a secured DENM if the header_fields contains a signer info of unknown or reserved type -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing signer.type -// * indicating X_UNKNOWN_SIGNERINFO_TYPE -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_05_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// 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_DENM -// }, -// e_unknown, -// false -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_04_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM containing generation_time before the certificate validity period -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields['signer_info'].signer -// * 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 < START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_06_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var ValidityRestriction v_timeValidity; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_timeValidity); -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert0601_BO, -// { -// m_header_info_generation_time( -// (v_timeValidity.validity.time_start_and_end.start_validity - 3600) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_01_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM containing generation_time before the certificate validity period -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_06_02_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 > END_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_06_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var ValidityRestriction v_validity; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_validity); -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert0602_BO, -// { -// m_header_info_generation_time( -// (v_validity.validity.time_start_and_end.end_validity + 3600) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_02_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the generation_time is more than 10 minute in the past (C2C only) -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields ['generation_time'] -// * containing generation_time -// * indicating GEN_TIME ( CURRENT_TIME - 11min ) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_03_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_06_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_generation_time( -// (1000 * f_getCurrentTime() - 660) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_03_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the generation_time is more than 10 minute in the future(C2C only) -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing header_fields ['generation_time'] -// * containing generation_time -// * indicating GEN_TIME ( CURRENT_TIME + 11min ) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_04_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_06_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_generation_time( -// (1000 * f_getCurrentTime() + 660) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_04_BO -// -// /** -// * @desc Check that IUT discards secured DENM when its_aid value is not equal to AID_DENM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['its_aid'] -// * indicating 'AID_CAM' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * containing DENM payload -// * } then { -// * the IUT discards the DENM -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_07_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_07_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_its_aid_CAM -// } -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_07_01_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM when its_aid value is undefined -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['its_aid'] -// * indicating 'AID_UNDEFINED' -// * and containing payload_field { -// * containing type -// * indicating 'signed' -// * containing data -// * containing DENM payload -// * } then { -// * the IUT discards the DENM -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_07_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_07_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_its_aid_Other -// } -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_07_02_BO -// -// /** -// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the circular validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is requested to send DENM -// * } then { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].type -// * containing certificate -// * and containing header_fields ['signer_info'].certificate (CERT_AT_B) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * containing generation_location -// * indicating position outside the REGION -// * and containing header_fields['its_aid'] -// * indicating 'AID_DENM' -// * } then { -// * the IUT discards the DENM -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_08_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_B_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_01_BO -// -// /** -// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the rectangilar validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is requested to send DENM -// * } then { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].type -// * containing certificate -// * and containing header_fields ['signer_info'].certificate (CERT_AT_C) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_regions -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * containing generation_location -// * indicating position outside the REGION -// * and containing header_fields['its_aid'] -// * indicating 'AID_DENM' -// * } then { -// * the IUT discards the DENM -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_08_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_C_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_02_BO -// -// /** -// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the polygonal validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is requested to send DENM -// * } then { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].type -// * containing certificate -// * and containing header_fields ['signer_info'].certificate (CERT_AT_D) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * containing generation_location -// * indicating position outside the REGION -// * and containing header_fields['its_aid'] -// * indicating 'AID_DENM' -// * } then { -// * the IUT discards the DENM -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_08_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_D_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_03_BO -// -// /** -// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the identified validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is requested to send DENM -// * } then { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].type -// * containing certificate -// * and containing header_fields ['signer_info'].certificate (CERT_AT_E) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'id_region' -// * and containing identified_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * containing generation_location -// * indicating position outside the REGION -// * and containing header_fields['its_aid'] -// * indicating 'AID_DENM' -// * } then { -// * the IUT discards the DENM -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_08_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_E_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_04_BO -// -// /** -// * @desc Check that IUT accepts a Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is 29.9 km (C2C only) -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields[generation_location].type -// * indicating 'generation_location' -// * and containing generation_location -// * indicating position in 29.9 km from the current position of IUT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_08_05_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var Int32 v_latitude; -// var Int32 v_longitude; -// -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// fx_computePositionUsingDistance( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// 29900.0, -// 0, -// v_latitude, -// v_longitude -// ); -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_latitude, -// v_longitude, -// '0000'O -// )) -// ) -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_05_BV -// -// /** -// * @desc Check that IUT discards Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is more than 30 km -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields[generation_location].type -// * indicating 'generation_location' -// * and containing generation_location -// * indicating position in 31 km from the current position of IUT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_08_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var Int32 v_latitude; -// var Int32 v_longitude; -// -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// fx_computePositionUsingDistance( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// 31000.0, -// 0, -// v_latitude, -// v_longitude -// ); -// v_securedGnPdu := f_prepareSecuredDenm( -// cc_taCert_A, -// { -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_latitude, -// v_longitude, -// '0000'O -// )) -// ) -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_06_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing empty payload of type 'signed' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing payload_field -// * containing type -// * indicating 'signed' -// * and containing data -// * indicating length 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_09_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// // Add the DENM payload -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_denmReq( -// m_denmPdu( -// m_denm( -// m_denmMgmtCon( -// m_tsActionId -// ), -// v_situation, -// m_denmLocation_zeroDelta -// ))))))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredDenm( -// v_securedMessage, -// m_payload_signed( -// ''O -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_02_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing payload of type 'unsecured' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing payload_field -// * containing type -// * indicating 'unsecured' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_09_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// // Add the DENM payload -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_denmReq( -// m_denmPdu( -// m_denm( -// m_denmMgmtCon( -// m_tsActionId -// ), -// v_situation, -// m_denmLocation_zeroDelta -// ))))))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredDenm( -// v_securedMessage, -// m_payload_unsecured( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_03_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing payload of type 'encrypted' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing payload_field -// * containing type -// * indicating 'encrypted' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_09_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// // Add the DENM payload -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_denmReq( -// m_denmPdu( -// m_denm( -// m_denmMgmtCon( -// m_tsActionId -// ), -// v_situation, -// m_denmLocation_zeroDelta -// ))))))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredDenm( -// v_securedMessage, -// m_payload_encrypted( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_04_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing payload of type 'signed_external' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing payload_field -// * containing type -// * indicating 'signed_external' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_09_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// // Add the DENM payload -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_denmReq( -// m_denmPdu( -// m_denm( -// m_denmMgmtCon( -// m_tsActionId -// ), -// v_situation, -// m_denmLocation_zeroDelta -// ))))))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredDenm( -// v_securedMessage, -// m_payload_signed_external( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_05_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing exactly one non-empty payload of type 'signed_and_encrypted' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_DENM_A) -// * containing payload_field -// * containing type -// * indicating 'signed_and_encrypted' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_09_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// // Add the DENM payload -// v_gnNonSecuredPacket.payload := valueof( -// valueof( -// bit2oct( -// encvalue( -// m_denmReq( -// m_denmPdu( -// m_denm( -// m_denmMgmtCon( -// m_tsActionId -// ), -// v_situation, -// m_denmLocation_zeroDelta -// ))))))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredDenm( -// v_securedMessage, -// m_payload_signed_and_encrypted( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } // End of 'for' statement -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_06_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM if the message does not contain the trailer field of type signature -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing trailer_fields -// * not containing any instance of type TrailerField -// * containing type -// * indicating 'signature' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_10_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_10_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, -, 0); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_10_01_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM containing more than one instance of TrailerField of type 'signature' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing trailer_fields[0].type -// * containing type -// * indicating 'signature' -// * and containing trailer_fields[1].type -// * containing type -// * indicating 'signature' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_10_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_10_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, -, 2); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_10_02_BO -// -// /** -// * @desc Check that the IUT discards Secured DENM containing signature that is not verified using the verification key from the certificate contained in the message's signer info -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields ['signer_info'] -// * containing certificate (CERT_TS_A_AT) -// * containing subject_attributes['verification key'] (KEY) -// * and containing trailer_fields[0] -// * containing type -// * indicating 'signature' -// * and containing signature -// * NOT verifiable using KEY -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_11_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_11_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm_Bo( -// cc_taCert_A, -// -, -// 1, -// -, -// e_certificate -// ); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_11_01_BO -// -// /** -// * @desc Check that IUT discards the Secured DENM if the message contains trailer field of type 'signature' with reserved public key algorythms -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing trailer_fields -// * containing an instance of type TrailerField -// * containing type -// * indicating 'signature' -// * and containing signature.algorithm -// * indicating X_RESERVED_PK_ALGORYTHM -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_11_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_11_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm_Bo( -// cc_taCert_A, -// -, -// 3 -// ); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_11_02_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'enrolment_credential' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_EC_A) -// * containing subject_info.subject_type -// * indicating 'enrolment_credentials' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_01_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_12_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm( -// cc_taCert_EC, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_DENM -// }, -// e_certificate -// ); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_01_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type "authorization_authority" -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_A_AA) -// * containing subject_info.subject_type -// * indicating 'authorization_authority' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_02_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_12_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm( -// cc_taCert_AA, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_DENM -// }, -// e_certificate -// ); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_02_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'enrolment_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * and certificate (CERT_TS_EA_A) -// * containing subject_info.subject_type -// * indicating 'enrolment_authority' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_03_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_12_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm( -// cc_taCert_EA, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_DENM -// }, -// e_certificate -// ); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_03_BO -// -// /** -// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'root_ca' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * and certificate (CERT_TS_ROOT) -// * containing subject_info.subject_type -// * indicating 'root_ca' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_04_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm( -// cc_taCert_CA, -// { -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_its_aid_DENM -// }, -// e_certificate -// ); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_04_BO -// -// /** -// * @desc Check that IUT discards secured DENM signed with the not yet valid certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_01_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AT > CURRENT_TIME -// * and containing end_validity -// * indicating END_VALIDITY_AT > START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1301_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_01_BO -// -// /** -// * @desc Check that IUT discards secured DENM signed with the expired certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_02_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AT < CURRENT_TIME -// * and containing end_validity -// * indicating END_VALIDITY_AT < START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1302_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_02_BO -// -// /** -// * @desc Check that IUT discards secured DENM when IUT location is outside the circular validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_03_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1303_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_03_BO -// -// /** -// * @desc Check that IUT discards secured DENM when IUT location is outside the rectangular validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_04_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_13_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1304_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_04_BO -// -// /** -// * @desc Check that IUT discards secured DENM when IUT location is outside the polygonal validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_05_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectanglar_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_13_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1305_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_05_BO -// -// /** -// * @desc Check that IUT discards secured DENM when IUT location is outside the identified validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_06_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_DENM_13_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test control -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1306_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_06_BO - - } // End of group recvDenmProfile - - /** - * @desc Receiving behaviour test cases for Other profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.4 Generic Signed Message Profile - */ - group recvOtherProfile { - - /** - * @desc Function used to verify the IUT has forwarded or discarded the received secured message sent by the TA - */ - group commonFunctions { - -// /** -// * @desc Behavior function for NodeD in case of forwarding is expected -// * @see TC_GEONW_PON_GBC_BV_01 -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD() runs on ItsGeoNetworking { -// -// // Local variables -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// tc_ac.start; -// alt { -// [] geoNetworkingPort.receive( -// mw_geoNwInd( -// mw_geoNwSecPdu( -// mw_ieee1609Dot2Data_dummy, -// mw_geoNwBroadcastPacketWithArea( -// mw_longPosVectorPosition( -// v_longPosVectorNodeB -// ), -// ?, -// f_getGeoBroadcastArea(c_area1) -// )))) { -// tc_ac.stop; -// log("*** " & testcasename() & ": PASS: Beacon message was forwarded ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// [] geoNetworkingPort.receive( -// mw_geoNwInd( -// mw_geoNwSecPdu( -// mw_ieee1609Dot2Data_dummy -// ))) { -// // Do not restart tc_ac timer -// log("*** " & testcasename() & ": INFO: Unexpected GN message ignored ***"); -// repeat; -// } -// [] tc_ac.timeout { -// log("*** " & testcasename() & ": FAIL: GBC message not received ***"); -// f_selfOrClientSyncAndVerdict(c_tbDone, e_error); -// } -// } -// -// // Postamble -// f_poNeighbour(); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD -// -// /** -// * @desc Behavior function for NodeD in case of forwarding is not expected -// * @see TC_GEONW_PON_GBC_BV_01 -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD() runs on ItsGeoNetworking { -// -// // Local variables -// var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut); -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// tc_noac.start; -// alt { -// [] geoNetworkingPort.receive( -// mw_geoNwInd( -// mw_geoNwSecPdu( -// mw_ieee1609Dot2Data_dummy, -// mw_geoNwBroadcastPacketWithArea( -// mw_longPosVectorPosition( -// v_longPosVectorIut -// ), -// ?, -// f_getGeoBroadcastArea(c_area1) -// )))) { -// tc_noac.stop; -// log("*** " & testcasename() & ": FAIL: Beacon message shall ot be forwarded ***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// [] geoNetworkingPort.receive( -// mw_geoNwInd( -// mw_geoNwSecPdu( -// mw_ieee1609Dot2Data_dummy -// ))) { -// // Do not restart tc_ac timer -// log("*** " & testcasename() & ": INFO: Unexpected GN message ignored ***"); -// repeat; -// } -// [] tc_noac.timeout { -// log("*** " & testcasename() & ": PASS: Secured message was discarded ***"); -// f_selfOrClientSyncAndVerdict(c_tbDone, e_success); -// } -// } -// -// // Postamble -// f_poNeighbour(); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD - - } // End of goup commonFunctions - -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate without region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_AT_A) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['time_start_and_end'] -// * indicating CERT_TS_AT_TIME_VALIDITY -// * and not containing validity_restrictions['region'] -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * inside CERT_TS_AT_TIME_VALIDITY -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * containing generation_location -// * and containing generation_location -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * and containing its_aid -// * indicating 'AID_BEACON' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_01_01_BV() runs on ItsMtc system ItsSecSystem { -// -// // Local variables -// var ItsGeoNetworking v_nodeB; -// var ItsGeoNetworking v_nodeD; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); -// setverdict(inconc); -// stop; -// } -// -// // Test component configuration -// f_cf02Up(); -// -// // Preamble -// -// // Start components -// v_nodeB := f_getComponent(c_compNodeB); -// v_nodeD := f_getComponent(c_compNodeD); -// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_A)); -// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); -// -// // Synchronization -// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); -// -// // Cleanup -// f_cf02Down(); -// -// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_01_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a circular region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_B_AT -// * and the IUT current location is inside the region validity period of CERT_TS_B_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_B_AT) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['time_start_and_end'] -// * indicating CERT_TS_AT_TIME_VALIDITY -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * and containing generation_location -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * and containing its_aid -// * indicating 'AID_BEACON' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_02_BV -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_01_02_BV() runs on ItsMtc system ItsSecSystem { -// -// // Local variables -// var ItsGeoNetworking v_nodeB; -// var ItsGeoNetworking v_nodeD; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); -// setverdict(inconc); -// stop; -// } -// -// // Test component configuration -// f_cf02Up(); -// -// // Preamble -// -// // Start components -// v_nodeB := f_getComponent(c_compNodeB); -// v_nodeD := f_getComponent(c_compNodeD); -// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_B)); -// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); -// -// // Synchronization -// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); -// -// // Cleanup -// f_cf02Down(); -// -// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_02_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_C_AT -// * and the IUT current location is inside the region validity period of CERT_TS_C_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_C_AT) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['time_start_and_end'] -// * indicating CERT_TS_AT_TIME_VALIDITY -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region -// * indicating REGION -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * and containing generation_location -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * and containing its_aid -// * indicating 'AID_BEACON' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_03_BV -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_01_03_BV() runs on ItsMtc system ItsSecSystem { -// -// // Local variables -// var ItsGeoNetworking v_nodeB; -// var ItsGeoNetworking v_nodeD; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); -// setverdict(inconc); -// stop; -// } -// -// // Test component configuration -// f_cf02Up(); -// -// // Preamble -// -// // Start components -// v_nodeB := f_getComponent(c_compNodeB); -// v_nodeD := f_getComponent(c_compNodeD); -// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_C)); -// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); -// -// // Synchronization -// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); -// -// // Cleanup -// f_cf02Down(); -// -// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_03_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_D_AT -// * and the IUT current location is inside the region validity period of CERT_TS_D_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_D_AT) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['time_start_and_end'] -// * indicating CERT_TS_AT_TIME_VALIDITY -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * and containing generation_location -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * and containing its_aid -// * indicating 'AID_BEACON' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_04_BV -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_01_04_BV() runs on ItsMtc system ItsSecSystem { -// -// // Local variables -// var ItsGeoNetworking v_nodeB; -// var ItsGeoNetworking v_nodeD; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); -// setverdict(inconc); -// stop; -// } -// -// // Test component configuration -// f_cf02Up(); -// -// // Preamble -// -// // Start components -// v_nodeB := f_getComponent(c_compNodeB); -// v_nodeD := f_getComponent(c_compNodeD); -// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_D)); -// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); -// -// // Synchronization -// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); -// -// // Cleanup -// f_cf02Down(); -// -// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_04_BV -// -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction -// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_E_AT -// * and the IUT current location is inside the region validity period of CERT_TS_E_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating value '2' -// * and containing header_fields[0] -// * containing type -// * indicating 'signer_info' -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_E_AT) -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' (2) -// * and containing subject_attributes['verification key'] (KEY) -// * and containing validity_restrictions['time_start_and_end'] -// * indicating CERT_TS_AT_TIME_VALIDITY -// * and containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'id_region' -// * and containing id_region -// * indicating REGION -// * and containing header_fields [1] -// * containing type -// * indicating 'generation_time' -// * containing generation_time -// * indicating CURRENT_TIME -// * and containing header_fields [2] -// * containing type -// * indicating 'generation_location' -// * and containing generation_location -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * and containing its_aid -// * indicating 'AID_BEACON' -// * and containing payload_field -// * containing type -// * indicating 'signed' -// * containing data -// * indicating length > 0 -// * and containing trailer_fields -// * containing single instance of type TrailerField -// * containing type -// * indicating 'signature' -// * containing signature -// * verifiable using KEY -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_01_05_BV() runs on ItsMtc system ItsSecSystem { -// -// // Local variables -// var ItsGeoNetworking v_nodeB; -// var ItsGeoNetworking v_nodeD; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); -// setverdict(inconc); -// stop; -// } -// -// // Test component configuration -// f_cf02Up(); -// -// // Preamble -// -// // Start components -// v_nodeB := f_getComponent(c_compNodeB); -// v_nodeD := f_getComponent(c_compNodeD); -// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_E)); -// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); -// -// // Synchronization -// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); -// -// // Cleanup -// f_cf02Down(); -// -// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_05_BV -// -// group g_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB( -// in charstring p_taCert -// ) runs on ItsGeoNetworking { -// -// // Local variables -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredBeacon(p_taCert, omit, e_certificate); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_selfOrClientSyncAndVerdict(c_poDone, e_success); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV -// -// /** -// * @desc Check that IUT discards a Secured GN Message containing protocol version set to a value less than 2 -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating 1 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_02_01_BO -// * @reference ETSI TS 103 097 [1] Clause 5.1 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_02_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_02_0x_BO_nodeB(PX_WRONG_PROTOCOL_VERSION)); -// 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_02_01_BO -// -// /** -// * @desc Check that IUT discards a Secured GN Message containing protocol version set to a value greater than 2 -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing protocol_version -// * indicating 3 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_02_02_BO -// * @reference ETSI TS 103 097 [1] Clause 5.1 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_02_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_02_0x_BO_nodeB(PX_WRONG_PROTOCOL_VERSION)); -// 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_02_02_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_02_0x_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_02_0x_BO_nodeB( -// in UInt8 p_protocolVersion -// ) runs on ItsGeoNetworking { -// -// // Local variables -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredBeacon_Bo(cc_taCert_A, p_protocolVersion); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_selfOrClientSyncAndVerdict(c_poDone, e_success); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_02_0x_BO_nodeB -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_02_0x_BV -// -// /** -// * @desc Check that IUT discards a secured GN Message if the header_fields contains more than one header field of type 'signer_info' -// *
-// * 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 'signer_info' -// * and containing header_fields[2].type -// * indicating 'generation_time' -// * and containing header_fields[3].type -// * indicating ''generation_location'' -// * and containing header_fields[4].type -// * containing its_aid -// * indicating 'AID_BEACON' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_01_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_04_01_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_signer_info( -// m_signerIdentifier_certificate( -// vc_aaCertificate -// )), -// 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_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_01_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_01_BO -// -// /** -// * @desc Check that IUT discards a secured GN Message if the header_fields does not contain the header field of type 'signer_info' -// *
-// * 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) -// * and containing header_fields[0].type -// * indicating 'generation_time' -// * and containing header_fields[1].type -// * indicating 'generation_location' -// * and containing header_fields[2].type -// * indicating 'signer_info' -// * and containing header_fields[3].type -// * containing its_aid -// * indicating 'AID_BEACON' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_02_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_04_02_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_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_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_02_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_02_BO -// -// /** -// * @desc Check that IUT is able to receive a secured GN Message if the signer_info header field is not encoded first. -// *
-// * 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) -// * and containing header_fields[0].type -// * indicating 'generation_time' -// * and containing header_fields[1].type -// * indicating 'generation_location' -// * and containing header_fields[2].type -// * containing its_aid -// * indicating 'AID_BEACON' -// * and containing header_fields[3].type -// * indicating 'signer_info' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_03_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_04_03_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_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, -// m_header_info_signer_info( -// m_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )) -// }, -// 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_03_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_03_BO -// -// /** -// * @desc Check that IUT discards a secured GN Message if the message contains more than one header field of type 'generation_time' -// *
-// * 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 -// * indicating 'generation_time' -// * and containing header_fields[3].type -// * indicating 'generation_time' -// * and containing header_fields[4].type -// * containing its_aid -// * indicating 'AID_BEACON' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_04_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_04_04_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_issuerIdentifier_sha256AndDigest( -// vc_atCertificate.signer_info.signerInfo.digest -// )), -// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us -// m_header_info_generation_time(1000 * f_getCurrentTime() - 1), // 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_04_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_04_BO -// -// /** -// * @desc Check that IUT discards a secured GN Message if the message does not contain the header field of type 'generation_time' -// *
-// * 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 -// * containing its_aid -// * indicating 'AID_BEACON' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_04_05_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_05_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_05_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_04_05_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_04_05_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_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_05_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_05_BO -// -// /** -// * @desc Check that IUT discards a Secured GN Message if the message contains more than one header field of type 'its_aid' -// *
-// * 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 -// * indicating 'generation_location' -// * and containing header_fields[3] -// * containing type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_BEACON' -// * and containing header_fields[4].type -// * containing its_aid -// * indicating 'AID_BEACON' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_04_06_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_06_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_06_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_04_06_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_04_06_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_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_its_aid_Other, -// 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_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' -// *
-// * 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 -// * indicating 'generation_location' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @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_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_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_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' -// *
-// * 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 -// * 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 -// * } -// * } -// *-// * -// * @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_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_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ), -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0100'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_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' -// *
-// * 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[4].type -// * indicating 'its_aid' -// * containing its_aid -// * indicating 'AID_BEACON' -// * and not containing other header fields -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @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_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_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_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 -// *
-// * 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 -// * } -// * } -// *-// * -// * @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_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' -// *
-// * 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 -// * } -// * } -// *-// * -// * @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 -// *
-// * 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 -// * } -// * } -// *-// * -// * @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 -// *
-// * 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 -// * } -// * } -// *-// * -// * @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' -// *
-// * 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 -// * } -// * } -// *-// * -// * @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' -// *
-// * 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 -// * } -// * } -// *-// * -// * @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' -// *
-// * 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 -// * } -// * } -// *-// * -// * @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 -// *
-// * 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 -// * } -// * } -// *-// * -// * @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 -// *
-// * 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 -// * } -// * } -// *-// * -// * @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( -// 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_06_01_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_01_BO -// -// /** -// * @desc Check that IUT discards the secured GN Message containing generation_time after the message signing certificate validity period -// *
-// * 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_02_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_E_ATND -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 5.4 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_02_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_06_02_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_06_02_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_taCert0602_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.end_validity + 3600) * 1000 -// ), // 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_06_02_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_02_BO -// -// /** -// * @desc Check that IUT discards Secured GN Message if the generation_time is more than 10 minute in the past (C2C only) -// *
-// * 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 ['generation_time'] -// * containing generation_time -// * indicating TIME_1 (TIME_1 < CUR_TIME - 10min) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_03_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_06_03_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_06_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_generation_time( -// (1000 * f_getCurrentTime() - 600) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// 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_06_03_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_03_BO -// -// /** -// * @desc Check that IUT discards Secured GN Message if the generation_time is more than 10 minute in the future(C2C only) -// *
-// * 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 ['generation_time'] -// * containing generation_time -// * indicating TIME_1 (TIME_1 > CUR_TIME + 10min) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_04_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_06_04_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_06_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_generation_time( -// (1000 * f_getCurrentTime() + 600) * 1000 -// ) // In us -// }, -// e_certificate -// ); -// 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_06_04_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_04_BO -// -// /** -// * @desc Check that IUT discards Ieee1609Dot2Data when its_aid value is undefined -// *
-// * 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['its_aid'] -// * indicating indicating 'AID_UNDEFINED' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_07_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_07_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_07_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_07_01_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_07_01_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_07_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_its_aid_Other -// }, -// e_certificate_digest_with_sha256 -// ); -// 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_07_01_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_07_01_BO -// -// /** -// * @desc Check that IUT discards Secured GN Message if the HeaderInfo generation_location is outside of the circular validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRCand PICS_USE_CIRCULAR_REGION -// * 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_B_AT -// * and the IUT current location is inside the validity region of CERT_TS_B_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_B)) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing certificate (CERT_TS_B_AT) -// * containing validity_restrictions ['region'] -// * containing region -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * indicating location outside of the REGION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_08_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) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_CIRCULAR_REGION' 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_08_xx_BO(cc_taCert_B)); -// 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_08_01_BO -// -// /** -// * @desc Check that IUT discards Secured GN Message if the HeaderInfo generation_location is outside of the rectangular validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_RECTANGULAR_REGION -// * 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_C_AT -// * and the IUT current location is inside the validity region of CERT_TS_C_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_C)) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing certificate (CERT_TS_C_AT) -// * containing validity_restrictions ['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectanglar_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * indicating location outside of the REGION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_08_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) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_RECTANGULAR_REGION' 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_08_xx_BO(cc_taCert_C)); -// 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_08_02_BO -// -// /** -// * @desc Check that IUT discards Secured GN Message if the HeaderInfo generation_location is outside of the rectangular validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_POLYGONAL_REGION -// * 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_D_AT -// * and the IUT current location is inside the validity region of CERT_TS_D_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_D)) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing certificate (CERT_TS_D_AT) -// * containing validity_restrictions ['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * indicating location outside of the REGION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_08_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) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_POLYGONAL_REGION' 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_08_xx_BO(cc_taCert_D)); -// 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_08_03_BO -// -// /** -// * @desc Check that IUT discards Secured GN Message if the optional HeaderInfo generation_location is outside of the identified validity region of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_IDENTIFIED_REGION -// * 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_E_AT -// * and the IUT current location is inside the validity region of CERT_TS_E_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_E)) -// * containing header_fields[0].type -// * indicating 'signer_info' -// * containing certificate (CERT_TS_E_AT) -// * containing validity_restrictions ['region'] -// * containing region -// * containing region_type -// * indicating 'id_region' -// * and containing identified_region -// * indicating REGION -// * and containing header_fields ['generation_location'] -// * indicating location outside of the REGION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_08_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_08_xx_BO(cc_taCert_E)); -// 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_08_04_BO -// -// /** -// * @desc Check that IUT accepts a Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is 29.9 km (C2C only) -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields[generation_location].type -// * indicating 'generation_location' -// * and containing generation_location -// * indicating position in 29.9 km from the current position of IUT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_08_05_BV() runs on ItsMtc system ItsSecSystem { -// -// // Local variables -// var ItsGeoNetworking v_nodeB; -// var ItsGeoNetworking v_nodeD; -// -// // Test control -// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_IDENTIFIED_REGION' 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_08_05_BV()); -// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); -// -// // Synchronization -// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); -// -// // Cleanup -// f_cf02Down(); -// -// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_08_05_BV -// -// /** -// * @desc Check that IUT discards Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is more than 30 km -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields[generation_location].type -// * indicating 'generation_location' -// * and containing generation_location -// * indicating position in 31 km from the current position of IUT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.2 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_08_06_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_08_06_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_08_06_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_08_xx_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_08_xx_BO( -// in charstring p_taCert -// ) 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( -// p_taCert, -// { -// 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_generation_location( -// valueof(m_threeDLocation( -// PX_WGSLATITUDE, -// PX_WGSLONGITUDE, -// '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_08_xx_BO -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_08_05_BV() runs on ItsGeoNetworking { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var Int32 v_latitude; -// var Int32 v_longitude; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// fx_computePositionUsingDistance( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// 29900.0, -// 0, -// v_latitude, -// v_longitude -// ); -// v_securedGnPdu := f_prepareSecuredBeacon( -// cc_taCert_A, -// { -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_latitude, -// v_longitude, -// '0000'O -// )) -// ) -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_08_05_BV -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_08_06_BO() runs on ItsGeoNetworking { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var Int32 v_latitude; -// var Int32 v_longitude; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// fx_computePositionUsingDistance( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// 31000.0, -// 0, -// v_latitude, -// v_longitude -// ); -// v_securedGnPdu := f_prepareSecuredBeacon( -// cc_taCert_A, -// { -// m_header_info_generation_location( -// valueof(m_threeDLocation( -// v_latitude, -// v_longitude, -// '0000'O -// )) -// ) -// }, -// e_certificate_digest_with_sha256 -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_08_06_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_08_xx_BO -// -// /** -// * @desc Check that IUT discards the Secured GN Message containing empty payload of type 'signed' -// *
-// * 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 payload_field -// * containing type -// * indicating 'signed' -// * and containing data -// * indicating length 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_09_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_09_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_09_02_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_09_02_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_09_02_BO() runs on ItsGeoNetworking { -// -// // Local variables -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredOtherMessage( -// v_securedMessage, -// m_payload_signed( -// ''O -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// 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_09_02_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_02_BO -// -// /** -// * @desc Check that IUT discards the Secured GN Message containing payload element of type 'unsecured' -// *
-// * 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 payload_field -// * containing type -// * indicating 'unsecured' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_09_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_09_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_09_03_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_09_03_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_09_03_BO() runs on ItsGeoNetworking { -// -// // Local variables -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredOtherMessage( -// v_securedMessage, -// m_payload_unsecured( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// 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_09_03_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_03_BO -// -// /** -// * @desc Check that IUT discards the Secured GN Message containing payload element of type 'encrypted' -// *
-// * 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 payload_field -// * containing type -// * indicating 'encrypted' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_09_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_09_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_09_04_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_09_04_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_09_04_BO() runs on ItsGeoNetworking { -// -// // Local variables -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredOtherMessage( -// v_securedMessage, -// m_payload_encrypted( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// 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_09_04_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_04_BO -// -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Message containing payload of type signed_external -// *
-// * 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 payload_field -// * containing type -// * indicating 'signed_external' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_09_05_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_09_05_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_09_05_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_09_05_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_09_05_BO() runs on ItsGeoNetworking { -// -// // Local variables -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredOtherMessage( -// v_securedMessage, -// m_payload_signed_external( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// 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_09_05_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_05_BO -// -// /** -// * @desc Check that IUT accepts a well-formed Secured GN Message containing payload of type signed_and_encrypted -// *
-// * 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 payload_field -// * containing type -// * indicating 'signed_and_encrypted' -// * and containing data -// * indicating length > 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_09_06_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_09_06_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_09_06_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_09_06_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_09_06_BO() runs on ItsGeoNetworking { -// -// // Local variables -// var GnNonSecuredPacket v_gnNonSecuredPacket; -// var octetstring v_gnPayload; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// var template (value) Ieee1609Dot2Data v_securedMessage; -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_gnNonSecuredPacket := valueof( -// m_geoNwBroadcastPacket( -// v_longPosVectorNodeB, -// vc_localSeqNumber, -// f_getGeoBroadcastArea( -// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) -// ))); -// -// // Encode it -// v_gnPayload := bit2oct( -// encvalue( -// v_gnNonSecuredPacket -// ) -// ); -// f_buildGnSecuredOtherMessage( -// v_securedMessage, -// m_payload_signed_and_encrypted( -// v_gnPayload -// ), -// e_certificate_digest_with_sha256, -// valueof(m_threeDLocation( -// v_longPosVectorNodeB.latitude, -// v_longPosVectorNodeB.longitude, -// '0000'O -// )) -// ); -// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); -// 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_09_06_BO -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_06_BO -// -// /** -// * @desc Check that IUT discards the Secured GN Message if the message does not contain the trailer field of type 'signature' -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing trailer_fields -// * not containing trailer_fields['signature'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_10_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_10_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_10_0x_BO_nodeB(0)); -// 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_10_01_BO -// -// /** -// * @desc Check that IUT discards the Secured GN Message containing more than one instance of TrailerField of type 'signature' -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing trailer_fields[0] -// * containing type -// * indicating 'signature' -// * and containing trailer_fields[1] -// * containing type -// * indicating 'signature' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_10_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_10_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_10_0x_BO_nodeB(2)); -// 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_10_02_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_10_0x_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_10_0x_BO_nodeB( -// in integer p_trailerStatus -// ) runs on ItsGeoNetworking { -// -// // Local variables -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Preamble -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredBeacon_Bo(cc_taCert_A, -, p_trailerStatus); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_selfOrClientSyncAndVerdict(c_poDone, e_success); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_10_0x_BO_nodeB -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_10_0x_BV -// -// /** -// * @desc Check that the IUT discards Secured GN Message containing signature that is not verified using the verification key from the certificate contained in the message's signer info -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields ['signer_info'] -// * containing certificate -// * containing subject_attributes['verification key'] -// * containing key (KEY) -// * and containing trailer_fields[0] -// * containing type -// * indicating 'signature' -// * and containing signature -// * NOT verifiable using KEY -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_11_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_11_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_11_0x_BO_nodeB(1)); -// 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_11_01_BO -// -// /** -// * @desc Check that IUT discards the Secured Message if the message contains trailer field of type 'signature' with reserved public key algorythms -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing trailer_fields -// * containing an instance of type TrailerField -// * containing type -// * indicating 'signature' -// * and containing signature -// * indicating X_RESERVED_PK_ALGORYTHM -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_11_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_11_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_11_0x_BO_nodeB(3)); -// 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_11_02_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_11_0x_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_11_0x_BO_nodeB( -// in integer p_trailerStatus -// ) runs on ItsGeoNetworking { -// -// // Local variables -// var GeoNetworkingPdu v_securedGnPdu; -// -// // Preamble -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredBeacon_Bo( -// cc_taCert_A, -// -, -// p_trailerStatus, -// -, -// e_certificate -// ); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_selfOrClientSyncAndVerdict(c_poDone, e_success); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_11_0x_BO_nodeB -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_11_0x_BV -// -// /** -// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'enrolment_credential' -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_EC_A) -// * containing subject_info.subject_type -// * indicating 'enrolment_credentials' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_EC)); -// 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_12_01_BO -// -// /** -// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'authorization_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_A_AA) -// * containing subject_info.subject_type -// * indicating 'enrolment_credentials' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_AA)); -// 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_12_02_BO -// -// /** -// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'enrolment_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_A_EA) -// * containing subject_info.subject_type -// * indicating 'enrolment_credentials' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_03_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_EA)); -// 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_12_03_BO -// -// /** -// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'root_ca' -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'] -// * containing signer -// * containing type -// * containing certificate -// * containing certificate (CERT_TS_A_CA) -// * containing subject_info.subject_type -// * indicating 'enrolment_credentials' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_04_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_CA)); -// 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_12_04_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_12_0x_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_12_0x_BO_nodeB( -// in charstring p_taCert -// ) runs on ItsGeoNetworking { -// -// // Local variables -// var GeoNetworkingPdu v_securedGnPdu; -// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB -// -// // Preamble -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredBeacon( -// p_taCert, -// { -// 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_generation_location( -// valueof(m_threeDLocation( -// PX_WGSLATITUDE, -// PX_WGSLONGITUDE, -// '0000'O -// )) -// ), -// m_header_info_its_aid_Other -// }, -// e_certificate, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_selfOrClientSyncAndVerdict(c_poDone, e_success); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_12_0x_BO_nodeB -// -// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_12_0x_BV -// -// /** -// * @desc Check that IUT discards secured message signed with the not yet valid certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_01_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AT > CURRENT_TIME -// * and containing end_validity -// * indicating END_VALIDITY_AT > START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1301_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_13_01_BO -// -// /** -// * @desc Check that IUT discards secured message signed with the expired certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_02_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AT < CURRENT_TIME -// * and containing end_validity -// * indicating END_VALIDITY_AT < START_VALIDITY_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1302_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_13_02_BO -// -// /** -// * @desc Check that IUT discards secured message when IUT location is outside the circular validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_03_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1303_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_13_03_BO -// -// /** -// * @desc Check that IUT discards secured message when IUT location is outside the rectangular validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_04_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1304_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_13_04_BO -// -// /** -// * @desc Check that IUT discards secured message when IUT location is outside the polygonal validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_05_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'rectangle' -// * and containing rectanglar_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_05_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_13_05_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_13_0x_BO_nodeB(cc_taCertMsg1305_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_13_05_BO -// -// /** -// * @desc Check that IUT discards secured message when IUT location is outside the identified validity restriction of the signing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC -// * Config Id: CF01 -// * Expected behavior: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is inside the time validity period of CERT_TS_A_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) -// * containing header_fields['signer_info'].signer -// * containing certificate (CERT_TS_MSG_13_06_BO_AT) -// * containing validity_restrictions['region'] -// * containing region -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * indicating REGION -// * not containing the CURRENT_IUT_LOCATION -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.3 -// */ -// testcase TC_SEC_ITSS_RCV_GENMSG_13_06_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_13_0x_BO_nodeB(cc_taCertMsg1306_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_13_06_BO -// -// group g_TC_SEC_ITSS_RCV_GENMSG_13_0x_BO { -// -// /** -// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) -// */ -// function f_TC_SEC_ITSS_RCV_GENMSG_13_0x_BO_nodeB( -// in charstring p_taCert -// ) runs on ItsGeoNetworking { -// -// // Local variables -// f_cf01Up(); -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdict(c_prDone, e_success); -// -// // Test Body -// f_sendSecuredBeacon(p_taCert, omit, e_certificate); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// -// // Postamble -// f_selfOrClientSyncAndVerdict(c_poDone, e_success); -// -// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_13_0x_BO_nodeB - - } // End of group g_TC_SEC_ITSS_RCV_GENMSG_13_0x_BV - - } // End of group recvOtherProfile - - /** - * @desc Receiving behaviour test cases for certificates profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.5 Profiles for certificates - */ - group recvCertificatesProfile { - -// /** -// * @desc Check that IUT discards the AT certificate with version 3 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_01_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_01_01_BO_AT) -// * containing version -// * indicating '3' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_01_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0101_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_01_BO -// -// /** -// * @desc Check that IUT discards the AT certificate with version 1 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_01_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_01_02_BO_AT) -// * containing version -// * indicating '1' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_01_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0102_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_02_BO -// -// /** -// * @desc Check that IUT discards the AA certificate with version 3 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_01_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificate[0] (CERT_TS_01_03_BO_AA) -// * containing version -// * indicating '3' -// * and containing certificate[1] (CERT_TS_01_03_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_digest_with_sha256' -// * and containing signer_info.digest -// * referencing to CERT_TS_01_03_BO_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_03_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_01_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0103_BO, -, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_03_BO -// -// /** -// * @desc Check that IUT discards the AA certificate with version 1 -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_01_04_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificate[0] (CERT_TS_01_04_BO_AA) -// * containing version -// * indicating '1' -// * and containing certificate[1] (CERT_TS_01_04_BO_AT) -// * and containing signer_info.digest -// * referencing to CERT_TS_01_04_BO_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_04_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_01_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// if (PICS_DEBUG_ADDON) { -// f_sendCertificateAndWaitForCertificateChainRequest(cc_taCert_F, f_generateDefaultCam()); -// } -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0104_BO, -, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_04_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization ticket certificate contains the subject type 'enrolment_credential' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_02_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_02_01_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_digest_with_sha256' -// * and containing signer_info.digest -// * referencing to certificate (CERT_TS_A_EC) -// * containing subject_info.subject_type -// * indicating 'enrolment_credential' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_01_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_02_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0201_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_01_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization authority certificate contains the subject type 'enrolment_credential' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_02_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates[0] (CERT_TS_02_02_BO_AA) -// * containing signer_info.digest -// * referencing to certificate CERT_TS_A_EC -// * containing subject_info.subject_type -// * indicating 'enrolment_credential' -// * and containing certificates[1] (CERT_TS_02_02_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_02_02_BO_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_02_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_02_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0202_BO, omit, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_02_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization ticket certificate contains the subject type 'enrolment_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_02_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_02_03_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_digest_with_sha256' -// * and containing signer_info.digest -// * referencing to certificate (CERT_TS_A_EA) -// * containing subject_info.subject_type -// * indicating 'enrolment_authority' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_03_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_02_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0203_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_03_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization authority certificate contains the subject type 'enrolment_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_02_04_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates[0] (CERT_TS_02_04_BO_AA) -// * containing signer_info.digest -// * referencing to certificate CERT_TS_A_EA -// * containing subject_info.subject_type -// * indicating 'enrolment_authority' -// * and containing certificates[1] (CERT_TS_02_04_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_02_04_BO_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_04_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_02_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0204_BO, omit, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_04_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization ticket certificate contains the subject type 'authorization_ticket' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_03_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer -// * containing certificate (CERT_TS_03_01_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_03_BO_CA -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_03_01_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_03_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0301_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_03_01_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization authority certificate contains the subject type 'authorization_ticket' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_03_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates[0] (CERT_TS_03_02_BO_AA) -// * containing signer_info.digest -// * referencing to CERT_TS_03_BO_CA -// * containing subject_info.subject_type -// * indicating 'authorization_ticket' -// * and containing certificates[1] (CERT_TS_03_02_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_03_02_BO_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_03_02_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_03_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0302_BO, omit, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_03_02_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the AA certificate contains the subject type 'authorization_authority' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_04_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates[0] (CERT_TS_04_01_BO_AA) -// * containing signer_info.digest -// * referencing to CERT_TS_A_AA -// * and containing certificates[1] (CERT_TS_04_01_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_04_01_BO_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_04_01_BO -// * @reference ETSI TS 103 097 [1] Clause 6.3 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_04_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0401_BO, omit, e_certificate_chain); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_04_01_BO -// -// /** -// * @desc Check that IUT discards the message when signing AT certificate has an invalid signature -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * containing header_fields ['signer_info'].signer -// * containing type -// * containing certificate -// * and containing certificates (CERT_TS_A_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_A_AA -// * and containing signature -// * NOT verifiable with CERT_TS_A_AA.subject_attributes['verification_key'].key -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_05_01_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.1 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_05_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam_Bo( -// cc_taCert_A, -// -, -// 1, -// -, -// e_certificate, -// true, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_05_01_BO -// -// /** -// * @desc Check that IUT discards the message when the issuing AA certificate of the signing AT certificate has an invalid signature -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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 -// * containing header_fields ['signer_info'].signer -// * containing type -// * indicating 'certificate_chain' -// * and containing certificates[0] (CERT_TS_A_AT) -// * containing signer_info.digest -// * referencing to CERT_ROOT -// * and containing signature -// * NOT verifiable with CERT_ROOT.subject_attributes['verification_key'].key -// * and containing certificates[1] (CERT_TS_A_AT) -// * containing signer_info.digest -// * referencing to a CERT_TS_A_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_05_02_BO -// * @reference ETSI TS 103 097 [1] Clauses 6.1 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_05_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_prepareSecuredCam_Bo( -// cc_taCert_A, -// -, -// 1, -// -, -// e_certificate_chain, -// true, -// false, -// true -// ); -// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(valueof(v_securedGnPdu.gnPacket.packet.payload)); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_05_02_BO -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the same circular region validity restriction as its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_01_BV_AT -// * and the IUT current location is inside the CURCULAR_REGION_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_01_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_B_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AA -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0601_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_01_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the circular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_02_BV_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_02_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_B_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AA -// * fully covering CURCULAR_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_02_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_02_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0602_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_02_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the rectangular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_03_BV_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_03_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_C_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * fully covering CURCULAR_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_03_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_03_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0603_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_03_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_04_BV_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_04_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating POLYGON_REGION_AA -// * fully covering CURCULAR_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_04_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_04_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0604_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_04_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the identified region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_05_BV_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_05_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing local_region -// * indicating 0 -// * and containing region_identifier -// * indicating ID_REGION_AT -// * fully covering CURCULAR_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_05_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0605_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_05_BV -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the circular region validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_06_BO_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_06_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_B_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0606_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_06_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message contains circular region validity restriction which is outside of the circular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_07_BO_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_07_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_06_07_BO_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AA_OUTSIDE -// * not including CURCULAR_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_07_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0607_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_07_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message contains circular region validity restriction which is not fully covered by the the circular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION -// * 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_06_08_BO_AT -// * and the IUT current location is inside the CURCULAR_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_06_08_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * containing circular_region -// * indicating CURCULAR_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_06_08_BO_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AA_INTERSECT -// * including partially CURCULAR_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_08_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_06_08_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0608_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_08_BO -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the same rectangular region validity restriction as its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_01_BV_AT -// * and the IUT current location is inside the RECT_REGION_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_01_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_C_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0701_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_01_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the rectangular region validity restriction which is fully inside in the circular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_02_BV_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_02_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_B_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AA -// fully covering the RECT_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_02_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_02_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0702_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_02_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the validity restriction with rectangular region which is fully inside in the rectangular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_03_BV_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_03_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_B_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region -// * indicating RECT_REGION_AA -// fully covering RECT_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_03_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_03_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0703_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_03_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the rectangular region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_04_BV_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_04_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating POLYGON_REGION_AA -// fully covering RECT_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_04_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_04_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0704_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_04_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the rectangular region validity restriction which is fully inside in the identified region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_05_BV_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_05_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing local_region -// * indicating 0 -// * and containing region_identifier -// * indicating ID_REGION_AT -// fully covering RECT_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_05_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0705_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_05_BV -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the rectangular region validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_06_BO_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_06_BO_AT) -// * not containing validity_restrictions['region'] -// * and containing signer_info.digest -// * referencing to a CERT_TS_C_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0706_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_06_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message contains rectangular region validity restriction which is outside of the rectangular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_07_BO_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_07_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_07_07_BO_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region[0] -// * indicating RECT_REGION_AA_OUTSIDE -// * not including RECT_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_07_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0707_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_07_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message contains rectangular region validity restriction which is not fully covered by the the rectangular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION -// * 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_07_08_BO_AT -// * and the IUT current location is inside the RECT_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_07_08_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * containing rectangular_region[0] -// * indicating RECT_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_07_08_BO_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region[0] -// * indicating RECT_REGION_AA_INTERSECT -// * not partialy RECT_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_08_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_07_08_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0708_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_08_BO -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the same polygonal region validity restriction as its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_01_BV_AT -// * and the IUT current location is inside the POLYGON_REGION_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_01_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AA -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating POLYGON_REGION_AA -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_01_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0801_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_01_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the circular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_02_BV_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_02_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_B_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * indicating CURCULAR_REGION_AA -// * fully including POLYGON_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_02_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_02_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0802_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_02_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the rectangular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_03_BV_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_03_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_C_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region[0] -// * indicating RECT_REGION_AA -// * fully including POLYGON_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_03_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_03_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0803_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_03_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_04_BV_AT -// * and the IUT current location is inside the POLYGON_REGION_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_04_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region[0] -// * indicating POLYGON_REGION_AA -// * fully including POLYGON_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_04_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_04_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0804_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_04_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the identified region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_05_BV_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_05_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing local_region -// * indicating 0 -// * and containing region_identifier -// * indicating ID_REGION_AT -// * fully including POLYGON_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_05_BV -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_05_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0805_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_05_BV -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the polygonal region validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_06_BO_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_06_BO_AT) -// * not containing validity_restrictions['region'] -// * and containing signer_info.digest -// * referencing to a CERT_TS_C_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_06_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0806_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_06_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the polygonal region validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_07_BO_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_07_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region (POLYGON_REGION_08_04_BO) -// * indicating length = 2 -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating POLYGON_REGION_AA -// * fully covering all points of POLYGON_REGION_08_04_BO -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_07_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0807_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_07_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message contains polygonal region validity restriction which is outside of the polygonal region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_08_BO_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_08_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_D_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating POLYGON_REGION_AA_OUTSIDE -// * not including POLYGON_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_08_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_08_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0808_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_08_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message contains polygonal region validity restriction which is not fully covered by the the polygonal region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION -// * 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_08_09_BO_AT -// * and the IUT current location is inside the POLYGON_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_08_09_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * containing polygonal_region -// * indicating POLYGON_REGION_AT -// * and containing signer_info.digest -// * referencing to a CERT_TS_08_08_BO_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * indicating POLYGON_REGION_AA_INTERSECT -// * including partialy POLYGON_REGION_AT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_09_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_08_09_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0809_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_09_BO -// -// /** -// * @desc Check that the IUT accepts a message when its signing certificate contains the identified region validity restriction with the same identified region as the issuing certificate and without local area definition -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_01_BV_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_01_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_01_BV -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_01_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0901_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_01_BV -// -// /** -// * @desc Check that the IUT accepts a message when its signing certificate contains the identified region validity restriction with the same identified region as the issuing certificate and with local area definition -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_02_BV_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_02_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating ID_LOCAL_REGION_1 -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_02_BV -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_02_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0902_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_02_BV -// -// /** -// * @desc Check that the IUT accepts a message when its signing certificate contains the identified region validity restriction fully containing in the circular validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_03_BV_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_03_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_09_03_BV_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'circle' -// * and containing circular_region -// * fully covering ID_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_03_BV -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_03_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0903_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_03_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the rectangular region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_04_BV_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_04_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'rectangle' -// * and containing rectangular_region[0] -// * fully covering ID_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_04_BV -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_04_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0904_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_04_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_05_BV_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_05_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'polygon' -// * and containing polygonal_region -// * fully covering ID_REGION_AT -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_05_BV -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_05_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0905_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_05_BV -// -// /** -// * @desc Check that the IUT accepts a message when the signing certificate of the message contains the identified region validity restriction with the identified region which is fully covered by the identified region of the validity restriction of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_06_BV_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_06_BV_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'un_stats' -// * and containing region_identifier -// * indicating ID_REGION_AA_UNSTATS -// * which includes ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * } then { -// * the IUT accepts the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_06_BV -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_06_BV() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0906_BV, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// else { -// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_06_BV -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the identified region validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_07_BO_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_07_BO_AT) -// * not containing validity_restrictions['region'] -// * and containing signer_info.digest -// * referencing to a CERT_TS_E_AA -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_07_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_07_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0907_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_07_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing certificate and its issuing certificate are both containing the identified region validity restrictions with the same region id but different local regions -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_08_BO_AT -// * and the IUT current location is inside the ID_REGION_AA, local region 1 -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_08_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating ID_LOCAL_REGION_1 -// * and containing signer_info.digest -// * referencing to a CERT_TS_09_08_BO_AA -// * containing validity_restrictions['region'] -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AA -// * and containing local_region -// * indicating ID_LOCAL_REGION_2 -// * not equal to ID_LOCAL_REGION_1 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_08_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_08_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0908_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_08_BO -// -// /** -// * @desc Check that the IUT discards a message when the identified region of the validity restriction of its signing certificate is different and not fully covered by the one in the issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_09_BO_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_09_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_09_09_BO_AA -// * containing validity_restrictions['region'] -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AA_OTHER -// * other than ID_REGION_AT -// * and containing local_region -// * indicating 0 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_09_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_09_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0909_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_09_BO -// -// /** -// * @desc Check that the IUT discards a message when the identified region validity restriction of its signing certificate contains unknown area code -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_10_BO_AT -// * and the IUT current location is inside the ID_REGION_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_10_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_UNKNOWN -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_A_AA -// * not containing validity_restrictions['region'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_10_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_10_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0910_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_10_BO -// -// /** -// * @desc Check that the IUT discards a message when the validity restriction of its signing certificate contains the identified region of type iso-3166-1 but region code is from the UN-Stats dictionary -// *
-// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION -// * 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_09_11_BO_AT -// * and the IUT current location is inside the ID_REGION_AA_UNSTATS -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_09_11_BO_AT) -// * containing validity_restrictions['region'] -// * containing region_type -// * indicating 'id' -// * and containing id_region -// * containing region_dictionary -// * indicating 'iso_3166_1' -// * and containing region_identifier -// * indicating ID_REGION_AA_UNSTATS -// * and containing local_region -// * indicating 0 -// * and containing signer_info.digest -// * referencing to a CERT_TS_A_AA -// * not containing validity_restrictions['region'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_11_BO -// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_09_11_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert0911_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_11_BO -// -// /** -// * @desc Check that the IUT discards a message when its signing certificate does not contain the time validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_10_01_BO_AT -// * and the IUT current location is inside the CERT_TS_10_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_10_01_BO_AT) -// * containing validity_restrictions['time_start_and_end'] -// * and not containing validity_restrictions['time_end'] -// * and not containing validity_restrictions['time_start_and_duration'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_10_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1001_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_01_BO -// -// /** -// * @desc Check that the IUT discards a message when the issuing certificate of the message signing certificate does not contain the time validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current location is inside the CERT_TS_10_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_10_02_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_10_02_BO_AA -// * containing validity_restrictions['time_start_and_end'] -// * and not containing validity_restrictions['time_end'] -// * and not containing validity_restrictions['time_start_and_duration'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_10_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1002_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_02_BO -// -// /** -// * @desc Check that the IUT discards a message when its signing certificate contains 'time_end' validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is less then time_end validity restricyion of CERT_TS_10_03_BO_AT -// * and the IUT current location is inside the CERT_TS_10_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_10_03_BO_AT) -// * containing validity_restrictions['time_end'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_03_BO -// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_10_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1003_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_03_BO -// -// /** -// * @desc Check that the IUT discards a message when its signing certificate contains 'time_start_and_duration' validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_10_04_BO_AT -// * and the IUT current location is inside the CERT_TS_10_04_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_10_04_BO_AT) -// * containing validity_restrictions['time_start_and_duration'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_04_BO -// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_10_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1004_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_04_BO -// -// /** -// * @desc Check that the IUT discards a message when the issuing certificate of the message signing certificate contains 'time_end' validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is less then time_end validity restricyion of CERT_TS_10_05_BO_AT -// * and the IUT current location is inside the CERT_TS_10_05_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_10_05_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_10_05_BO_AA -// * containing validity_restrictions['time_end'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_05_BO -// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_10_05_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1005_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_05_BO -// -// /** -// * @desc Check that the IUT discards a message when its signing certificate contains 'time_start_and_duration' validity restriction -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is less then time_end validity restricyion of CERT_TS_10_06_BO_AT -// * and the IUT current location is inside the CERT_TS_10_06_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields['signer_info'] -// * and containing signer -// * containing type -// * containing certificate -// * and containing certificate (CERT_TS_10_06_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_10_06_BO_AA -// * containing validity_restrictions['time_start_and_duration'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_06_BO -// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_10_06_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1006_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_06_BO -// -// /** -// * @desc Check that the IUT discards a message when the validity period of the signing certificate ends after the validity period of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_01_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_A_AA -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA -// * and containing end_validity -// * indicating END_VALIDITY_AA -// * and containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA -// * and containing end_validity -// * indicating END_VALIDITY_AA + 1d -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_11_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1101_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_01_BO -// -// /** -// * @desc Check that the IUT discards a message when the validity period of its signing certificate starts before the validity period of the issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_02_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_A_AA -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA -// * and containing end_validity -// * indicating END_VALIDITY_AA -// * and containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA - 1d -// * and containing end_validity -// * indicating END_VALIDITY_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_11_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1102_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_02_BO -// -// /** -// * @desc Check that the IUT discards a message when the issuing certificate of signing certificate is expired but the signing certificate is not expired yet. -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_03_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_A_AA -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA - 365d -// * and containing end_validity -// * indicating END_VALIDITY_AA - 1d -// * and containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA - 365d -// * and containing end_validity -// * indicating END_VALIDITY_AA -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_11_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1103_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_03_BO -// -// /** -// * @desc Check that the IUT discards a message when the validity period of the signing certificate is after the validity period of its issuing certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_04_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_A_AA -// * containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA -// * and containing end_validity -// * indicating END_VALIDITY_AA + 365d -// * and containing validity_restrictions['time_start_and_end'] -// * containing start_validity -// * indicating START_VALIDITY_AA -// * and containing end_validity -// * indicating END_VALIDITY_AA + 365d -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_11_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1104_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_04_BO -// -// /** -// * @desc Check that the IUT discards a message when its signing certificate does not contain the SSP-AID subject attribute -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_12_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Ieee1609Dot2Data -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_12_01_BO_AT) -// * not containing subject_attributes['its_aid_ssp_list'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_12_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1201_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_01_BO -// -// /** -// * @desc Check that the IUT discards a Secured CAM when its signing certificate does not contain a record with AID_CAM in the its_aid_ssp_list subject attribute -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_12_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['its_aid'] -// * containing its_aid -// * indicating 'AID_CAM' -// * and containing header_fields ['signer_info'] -// * containing signer -// * containing certificate -// * indicating CERT_TS_12_02_BO_AT -// * containing subject_attributes['its_aid_ssp_list'] -// * not containing an item -// * containing its_aid -// * indicating 'AID_CAM' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_12_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1202_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_02_BO -// -// /** -// * @desc Check that the IUT discards a Secured DENM when its signing certificate does not contain a record with AID_DENM in the its_aid_ssp_list subject attribute -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_12_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured DENM (MSG_SEC_RCV_DENM_A) -// * containing header_fields ['its_aid'] -// * containing its_aid -// * indicating 'AID_DENM' -// * and containing header_fields ['signer_info'] -// * containing signer -// * containing certificate -// * indicating CERT_TS_12_03_BO_AT -// * containing subject_attributes['its_aid_ssp_list'] -// * not containing an item -// * containing its_aid -// * indicating 'AID_DENM' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_12_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert1203_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_03_BO -// -// /** -// * @desc Check that the IUT discards a Secured CAM when its signing certificate contains two records with AID_CAM in the its_aid_ssp_list subject attribute -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA -// * and the IUT current location is inside the CERT_TS_12_04_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['its_aid'] -// * containing its_aid -// * indicating 'AID_CAM' -// * and containing header_fields ['signer_info'] -// * containing signer -// * containing certificate -// * indicating CERT_TS_12_04_BO_AT -// * containing subject_attributes['its_aid_ssp_list'] -// * containing item [0].its_aid -// * indicating 'AID_CAM' -// * and containing item [1].its_aid -// * indicating 'AID_CAM' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1204_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_04_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing AT certificate contains a CAM AID-SSP record whereas the issuing AA certificate does not contain the record with AID_CAM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_13_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_13_01_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_13_01_BO_AA -// * containing validity_restrictions['its_aid_list'] -// * not containing 'AID_CAM' -// * and containing validity_restrictions['its_aid_ssp_list'] -// * containing a record -// * containing its_aid -// * indicating 'AID_CAM' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_13_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1301_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_13_01_BO -// -// /** -// * @desc Check that the IUT discards a message when the signing AT certificate contains a DENM AID-SSP record whereas the issuing AA certificate does not contain the AID record with AID_DENM -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_13_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured DENM (MSG_SEC_RCV_DENM_A) -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_13_02_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_13_02_BO_AA -// * containing validity_restrictions['its_aid_list'] -// * not containing 'AID_DENM' -// * and containing validity_restrictions['its_aid_ssp_list'] -// * containing a record -// * containing its_aid -// * indicating 'AID_DENM' -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_13_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert1302_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_13_02_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the AA certificate does not contain a subject_attribute of type its_aid_list -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_13_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_13_03_BO_AT) -// * containing signer_info.digest -// * referencing to CERT_TS_13_03_BO_AA -// * not containing validity_restrictions['its_aid_list'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_13_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredDenm(cc_taCert1303_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_13_03_BO -// -// /** -// * @desc Check that IUT discards the AT certificate with signer info of type 'certificate' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_14_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_14_01_BO_AT) -// * containing signer_info.type -// * containing certificate -// * and containing certificate -// * indicating CERT_TS_AA_A -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_14_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_14_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1401_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_14_01_BO -// -// /** -// * @desc Check that IUT discards the AT certificate with signer info of type 'certificate_chain' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_14_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_14_02_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_chain' -// * and containing certificates[0] -// * indicating certificate (CERT_TEST_ROOT) -// * and containing certificates[1] -// * indicating certificate (CERT_TS_AA_A) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_14_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_14_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1402_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_14_02_BO -// -// /** -// * @desc Check that IUT discards the AT certificate with signer info of type 'certificate_digest_with_other_algorithm' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_14_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_14_03_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_digest_with_other_algorithm' -// * and containing digest -// * referencing CERT_TS_AA_A -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_14_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_14_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1403_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_14_03_BO -// -// /** -// * @desc Check that IUT discards the AA certificate with signer info of type 'certificate' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_15_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_15_01_BO_AT) -// * containing signer_info.digest -// * referencing to certificate (CERT_TS_15_01_BO_AA) -// * containing signer_info -// * containing type -// * containing certificate -// * and containing certificate -// * indicating CERT_TEST_ROOT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_15_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_15_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1501_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_15_01_BO -// -// /** -// * @desc Check that IUT discards the AA certificate with signer info of type 'certificate_chain' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_15_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_15_02_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_chain' -// * and containing certificates[0] -// * indicating certificate (CERT_TEST_ROOT) -// * and containing certificates[1] -// * indicating certificate (CERT_TS_15_02_BO_CA) -// * containing signer_info -// * containing type -// * indicating 'certificate_digest_with_sha256' -// * and containing digest -// * referencing to CERT_TEST_ROOT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_15_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_15_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1502_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_15_02_BO -// -// /** -// * @desc Check that IUT discards the AA certificate with signer info of type 'certificate_digest_with_other_algorithm' -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_15_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_15_03_BO_AT) -// * containing signer_info.type -// * indicating 'certificate_digest_with_other_algorithm' -// * and containing digest -// * referencing CERT_TEST_ROOT -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_15_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.4 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_15_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1503_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_15_03_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject_name of the AT certificate is not an empty name field -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_16_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_16_01_BO_AT) -// * containing signer_info.digest -// * referencing to certificate (CERT_TS_16_01_BO_AA) -// * containing signer_infosubject_name -// * indicating non-empty string ('Invalid name') -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_16_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.2 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_16_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1601_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_16_01_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type assurance_level is missing in the AT certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_17_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_17_01_BO_AT) -// * not containing subject_attributes['assurance_level'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_17_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1701_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_01_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type assurance_level is missing in the AA certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_17_02_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_17_02_BO_AT) -// * containing signer_info.digest -// * referencing to certificate (CERT_TS_17_02_BO_AA) -// * not containing subject_attributes['assurance_level'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_17_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1702_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_02_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the assurance level of issuing certificate is less then assurance level of subordinate certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_17_03_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_17_03_BO_AT) -// * containing subject_attributes['assurance_level'] -// * containing assurance_level -// * indicating 0x80 (assurance level=4, confidence=0) -// * and containing signer_info.digest -// * referencing to certificate (CERT_TS_A_AA) -// * containing subject_attributes['assurance_level'] -// * containing assurance_level -// * indicating 0x60 (assurance level=3, confidence=0) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_03_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_17_03_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1703_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_03_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the assurance level of issuing certificate is equal to the assurance level of the subordinate certificate but the confidence of subject assurance of issuing certificate is less then the confidence of the subordinate certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_17_04_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_17_04_BO_AT) -// * containing subject_attributes['assurance_level'] -// * containing assurance_level -// * indicating 0x61 (assurance level=3, confidence=1) -// * and containing signer_info.digest -// * referencing to certificate (CERT_TS_A_AA) -// * containing subject_attributes['assurance_level'] -// * containing assurance_level -// * indicating 0x60 (assurance level=3, confidence=0) -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_04_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_17_04_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1704_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_04_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type verification_key is missing in the AT certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_18_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_18_01_BO_AT) -// * not containing subject_attributes['verification_key'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_18_01_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_18_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1801_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_18_01_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type verification_key is missing in the AA certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * 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_18_01_BO_AT -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.type -// * containing certificate -// * and containing certificate (CERT_TS_18_02_BO_AT) -// * containing signer_info.digest -// * referencing to certificate (CERT_TS_18_02_BO_AA) -// * not containing subject_attributes['verification_key'] -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_18_02_BO -// * @reference ETSI TS 103 097 [1] Clause 7.4.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_18_02_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1802_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_18_02_BO -// -// /** -// * @desc Check that IUT discards a Ieee1609Dot2Data if the reserved region type has been used in region validity restriction of the AT certificate -// *
-// * Pics Selection: PICS_GN_SECURITY -// * Config Id: CF01 -// * Initial conditions: -// * with { -// * the IUT being in the 'authorized' state -// * } -// * ensure that { -// * when { -// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) -// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_19_01_BO_AT) -// * containing region_type -// * indicating 240 -// * } then { -// * the IUT discards the message -// * } -// * } -// *-// * -// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_19_01_BO -// * @reference ETSI TS 103 097 [1] Clause 4.2.2.1 -// */ -// testcase TC_SEC_ITSS_RCV_CERT_19_01_BO() runs on ItsGeoNetworking system ItsSecSystem { -// -// // Local variables -// var integer i; -// var GeoNetworkingPdu v_securedGnPdu; -// var GnRawPayload v_sentRawPayload; -// -// // Test adapter configuration -// if (not(PICS_GN_SECURITY)) { -// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); -// stop; -// } -// -// // Test component configuration -// f_cf01Up(); -// -// // Test adapter configuration -// -// // Preamble -// f_prNeighbour(); -// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); -// -// // Test Body -// v_securedGnPdu := f_sendSecuredCam(cc_taCert1901_BO, omit, e_certificate); -// -// f_sleep(PX_TNOAC); -// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); -// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { -// // Empty on purpose -// } -// if (i < lengthof(vc_utInds)) { -// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); -// } -// else { -// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); -// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); -// } -// -// // Postamble -// f_poNeighbour(); -// f_cf01Down(); -// } // End of testcase TC_SEC_ITSS_RCV_CERT_19_01_BO -// - } // End of group recvCertificatesProfile -// -// } // End of group receiverbehavior -// -} // End of module ItsSecurity_TestCase +/** + * @author ETSI / STF481 / STF507 / STF517 / STF538 + * @version $Url$ + * $Id$ + * @desc Testcases file for Security Protocol + * @reference ETSI TS 103 097 v1.2.1 + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + */ +module ItsSecurity_TestCases { + + // Libcommon + import from LibCommon_Time all; + import from LibCommon_VerdictControl all; + import from LibCommon_Sync all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + + // LibIts + //import from DENM_PDU_Descriptions language "ASN.1:1997" all; + import from IEEE1609dot2BaseTypes language "ASN.1:1997" all; + import from IEEE1609dot2 language "ASN.1:1997" all; + import from EtsiTs103097Module language "ASN.1:1997" all; + + // LibItsCommon + import from LibItsCommon_TypesAndValues all; + import from LibItsCommon_Functions all; + import from LibItsCommon_TypesAndValues all; + import from LibItsCommon_ASN1_NamedNumbers all; + + // LibItsGeoNetworking + import from LibItsGeoNetworking_TestSystem all; + import from LibItsGeoNetworking_Functions all; + import from LibItsGeoNetworking_Templates all; + import from LibItsGeoNetworking_TypesAndValues all; + import from LibItsGeoNetworking_Pics all; + + // LibItsCam + import from LibItsCam_Templates all; + import from LibItsCam_Functions all; + import from LibItsCam_Templates all; + import from LibItsCam_Functions all; + import from LibItsCam_TestSystem all; + + // LibItsDenm + import from LibItsDenm_Templates all; + import from LibItsDenm_TestSystem all; + + // LibItsSecurity + import from LibItsSecurity_TypesAndValues all; + import from LibItsSecurity_Templates all; + import from LibItsSecurity_Functions all; + import from LibItsSecurity_Pixits all; + import from LibItsSecurity_Pics all; + + // AtsSecurity + import from ItsSecurity_TestSystem all; + import from ItsSecurity_Functions all; + import from ItsSecurity_Templates all; + import from ItsSecurity_Pics all; + + /** + * @desc Sending behaviour test cases + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2 Sending behaviour + */ + group sendingBehavior { + + /** + * @desc Check that ITS-S sends a Ieee1609Dot2Data containing protocol version set to 3. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the 'authorized' state + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a Ieee1609Dot2Data + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing protocol_version + * indicating value '3' + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_TC_SEC_ITSS_SND_MSG_01_BV + * @reference ETSI TS 103 097 [1] Clause 5.1 + * @reference IEEE1609.2[2] Clause 6.3.2 + */ + testcase TC_SEC_ITSS_SND_MSG_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Security protocol version set to 3 ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_MSG_01_BV + + /** + * @desc Sending behaviour test cases for CAM profile. + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.4 CAM profile + */ + group camProfile { + + /** + * @desc Check that IUT sends the secured CAM using SignedData container. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing content + * containing signedData + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_01_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: The CA message is secured"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_01_BV + + /** + * @desc Check that IUT sends the secured CAM containing the HeaderInfo field psid set to 'AID_CAM'. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing psid + * indicating 'AID_CAM' + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_02_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_02_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_02_BV + + /** + * @desc Check that IUT sends the secured CAM with the HeaderInfo containing generationTime + * and doesn't containing expiryTime, generationLocation, encryptionKey, p2pcdLearningRequest, missingCrlIdentifier. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing generationTime + * and not containing expiryTime + * and not containing generationLocation, + * and not containing encryptionKey + * and not containing p2pcdLearningRequest + * and not containing missingCrlIdentifier + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_03_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_03_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_03_BV + + /** + * @desc Check that IUT sends the secured CAM containing signer containing either certificate or digest; + * Check that signing certificate has permissions to sign CAM messages. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing signer + * containing digest + * or containing certificate + * containing toBeSigned + * containing appPermissions + * containing the item of type PsidSsp + * containing psid + * indicating AID_CAM + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_04_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 + * @reference IEEE 1609.2 [2] Clause 6.3.4 + */ + testcase TC_SEC_ITSS_SND_CAM_04_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // or containing certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + { *, mw_appPermissions(c_its_aid_CAM), * } + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received, containing certificate"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_04_BV + + /** + * @desc Check that IUT calculate the digest of certificate using proper hash algorithm; + * Check that IUT canonicalize certificates before hash calculation. + *
+ * Pics Selection: PICS_GN_SECURITY and ((PICS_SEC_SHA256 and (PICS_SEC_NIST_P256 or PICS_SEC_BRAINPOOL_P256R1)) or (PICS_SEC_SHA384 and PICS_SEC_BRAINPOOL_P384R1)) + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * and the IUT is configured to send more than one CAM per second + * and the IUT having sent a secured CAM + * containing signer + * containing certificate + * indicating X_CERTIFICATE + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * } + * ensure that { + * when { + * the IUT is requested to send a subsequent secured CAM + * containing signer + * containing digest + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing signer + * containing digest + * indicating last 8 bytes of the Hash value calculated using X_HASH algorithm + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_05_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 + * @reference IEEE 1609.2 [2] Clause 6.3.4 + */ + testcase TC_SEC_ITSS_SND_CAM_05_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var EtsiTs103097Certificate v_certificate; + var HashedId8 v_certificate_digest; + var ItsCam v_component; + + // Test control + if (not(PICS_GN_SECURITY and ((PICS_SEC_SHA256 and (PICS_SEC_NIST_P256 or PICS_SEC_BRAINPOOL_P256R1)) or (PICS_SEC_SHA384 and PICS_SEC_BRAINPOOL_P384R1)))) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and ((PICS_SEC_SHA256 and (PICS_SEC_NIST_P256 or PICS_SEC_BRAINPOOL_P256R1)) or (PICS_SEC_SHA384 and PICS_SEC_BRAINPOOL_P384R1))' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); + f_getCertificateDigest(vc_hashedId8ToBeUsed, v_certificate_digest); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [PICS_SEC_SHA256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + sha256, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + mw_issuerIdentifier_sha256AndDigest( + v_certificate.issuer.sha256AndDigest + ), + mw_toBeSignedCertificate_at( + -, + v_certificate.toBeSigned.verifyKeyIndicator + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [PICS_SEC_SHA384 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + sha384, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + mw_issuerIdentifier_sha384AndDigest( + v_certificate.issuer.sha384AndDigest + ), + mw_toBeSignedCertificate_at( + -, + v_certificate.toBeSigned.verifyKeyIndicator + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with AT certificate received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with AT certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [PICS_SEC_SHA256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + sha256, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest( + v_certificate_digest + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured CA message received"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_SHA384 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + sha384, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest( + v_certificate_digest + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured CA message received"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_05_BV + + /** + * @desc Check that IUT sends the secured CAM containing the signing certificate when over the time of one + * second no other secured CAM contained the certificate was sent. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT is configured to send more then one CAM per second + * and the IUT having sent a CAM + * containing generationTime + * indicating TIME_LAST + * } + * ensure that { + * when { + * the IUT is sending secured CAM as a message of type EtsiTs103097Data + * containing signer + * containing signer + * containing certificate + * } then { + * this message + * contains headerInfo + * containing generation_time + * indicating TIME (TIME >= TIME_LAST + 1sec) + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_06_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_06_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var Time64 v_time_last; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + v_time_last := f_getSecuredMessage(v_geoNwInd.msgIn).content.signedData.tbsData.headerInfo.generationTime; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received, TIME_LAST = ", v_time_last, " ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + if (ff_abs(int2float(v_geoNwInd.msgIn.gnPacket.securedMsg.content.signedData.tbsData.headerInfo.generationTime - v_time_last)) <= 0.95) { + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was within a second ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: Generation of CAM messages including certificate was not within a second ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission with digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_06_BV + + /** + * @desc Check that IUT sends the secured CAM containing the signing certificate when the timeout of one second + * has been expired after the previous CAM containing the certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the 'authorized' state + * and the IUT is configured to send more than one CAM per second + * and the IUT having sent a CAM + * containing signer + * containing certificate + * and containing generationTime + * indicating TIME_LAST + * } + * ensure that { + * when { + * the IUT is sending a CAM + * containing header_fields['generation_time'] + * indicating TIME >= TIME_LAST + 1sec + * } then { + * when { + * the IUT is sending secured CAM as a message of type EtsiTs103097Data + * containing generationTime + * indicating TIME (TIME >= TIME_LAST + 1sec) + * } then { + * this message is + * containing certificate + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_07_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_07_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const integer c_cntTimeLimit := 10; + const float c_certificateGenerationTime := 1.0; + timer t_maxTransInterval := c_certificateGenerationTime * 1.3;//1.15; + var integer v_cntTime := 0; + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_component := f_setCamFrequencyGreatherThan1Hz(); + geoNetworkingPort.clear; + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + t_maxTransInterval.start; + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + t_maxTransInterval.stop; + v_cntTime := v_cntTime + 1; + if (v_cntTime == c_cntTimeLimit) { // Exit message loop + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + // end of alt + } + else { + t_maxTransInterval.start; + log("*** " & testcasename() & ": INFO: CA message retransmission with certificate ***"); + repeat; + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission with digest ***"); + repeat; + } + [] t_maxTransInterval.timeout { + log("*** " & testcasename() & ": FAIL: CA message with certificate was not received in 1 sec after previous one ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_07_BV + + /** + * @desc Check that IUT sends the secured CAM containing the signing certificate when the IUT received + * a CAM from an unknown ITS-S. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT is configured to send more than one CAM per second + * and the IUT having already sent CAM + * containing certificate + * at TIME_1 + * and the IUT having received a Ieee1609Dot2Data + * containing signedData + * containing signer + * containing digest + * indicating HashedId8 value + * referenced to unknown certificate (CERT_TS_B_AT) + * at TIME_2 (TIME_1 < TIME_2 < TIME_1+1sec) + * } + * ensure that { + * when { + * the IUT is requested to send CAM + * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing signedData + * containing type + * containing signer + * containing certificate + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_08_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_08_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + timer t_maxTransInterval := 0.5; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_component := f_setCamFrequencyGreatherThan1Hz(); + geoNetworkingPort.clear; + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message from unknown ITS-S + geoNetworkingPort.clear; + f_sendSecuredCam(cc_taCert_B, valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), valueof(m_signerIdentifier_digest), f_getTsStationId() + 10/*Unknown ITS-S*/); + + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } + + // Test Body + t_maxTransInterval.start; + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) { + repeat; + } + [] t_maxTransInterval.timeout { + log("*** " & testcasename() & ": FAIL: CA message was transmited w/o unrecognized request header ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_08_BV + + /** + * @desc Check that IUT restarts the certificate sending timer when the certificate has been sent. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the 'authorized' state (CERT_IUT_A_AT) + * and the IUT is configured to send more then one CAM per second + * and the IUT having already sent CAM at TIME_1 + * containing signer + * containing certificate + * and the IUT having received a CAM at TIME_2 (TIME_1 + 0.3sec) + * containing signer + * containing digest + * containing HashedId8 value + * indicating ann unknown certificate + * and the IUT having sent CAM at TIME_3 (TIME_3 > TIME_2) + * containing signer + * containing certificate + * } + * ensure that { + * when { + * the IUT is sending the next CAM at TIME_4 + * containing signer + * containing certificate + * } then { + * the difference between TIME_4 and TIME_3 is about of 1sec + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_09_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_09_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const float c_certificateGenerationTime := 1.0; + + timer t_maxTransInterval := c_certificateGenerationTime * 0.9; + var GeoNetworkingInd v_geoNwInd; + var SignerIdentifier v_signerIdentifier; + var ItsCam v_component; + var boolean v_firstCertReceived := false; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_component := f_setCamFrequencyGreatherThan1Hz(); + geoNetworkingPort.clear; + tc_ac.start; + alt { + [v_firstCertReceived == false] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + log("*** " & testcasename() & ": INFO: Initial conditions: The first CAM with certificate is received ***"); + v_firstCertReceived := true; + f_sleep(0.3); + // Send secured message with request for unrecognized certificate + f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); + f_sendSecuredCam( + cc_taCert_F, + valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), + valueof( + m_signerIdentifier_digest( + f_calculateDigestFromCertificate( + v_signerIdentifier.certificate[0] + ) + ) + ) + ); + repeat; + } + [v_firstCertReceived == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + // start a timeout of one second to check + // that the next cert will be received after this timeout + t_maxTransInterval.start; + log("*** " & testcasename() & ": INFO: Initial conditions: The requested CAM with certificate is received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.stop; + log("*** " & testcasename() & ": FAIL: CA message certificate inclusion time wasn't restarted ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); + repeat; + } + [] t_maxTransInterval.timeout { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: The CAM certificate inclusion timer has been restarted ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_09_BV + + /** + * @desc Check that the IUT sends certificate request when it receives secured CAM containing + * digest of unknown certificate as a message signer. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AT_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT has receiving a EtsiTs103097Data + * containing signer + * containing digest + * indicating HashedId8 value DIGEST_A + * referencing an unknown certificate (CERT_TS_B_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing headerInfo + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of DIGEST_A + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_10_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.1.2 + */ + testcase TC_SEC_ITSS_SND_CAM_10_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HashedId8 v_hashedId8; + var HashedId3 v_expectedHashedId3; + var ItsCam v_component; + timer t_maxTransInterval := 0.5; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AT_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_getCertificateDigest( + cc_taCert_B, + v_hashedId8 + ); + v_expectedHashedId3 := f_hashedId3FromHashedId8(v_hashedId8); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message from unknown ITS-S + geoNetworkingPort.clear; + f_sendSecuredCam( + cc_taCert_B, // SHA-256/NIST P-256 + valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + t_maxTransInterval.start; + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam( + -, -, + { v_expectedHashedId3 } + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate request was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) { + repeat; + } + [] t_maxTransInterval.timeout { + log("*** " & testcasename() & ": FAIL: CAM was transmited w/o unrecognized request header ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_10_BV + + /** + * @desc Check that the IUT sends certificate request when it receives secured CAM + * containing certificate signed by unknown AA certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA256 + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT has receiving a CAM + * containing signer + * containing digest + * indicating HashedId8 value DIGEST_A + * referencing an unknown certificate (CERT_TS_B_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing headerInfo + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of DIGEST_A + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_11_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.1.2 + */ + testcase TC_SEC_ITSS_SND_CAM_11_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HashedId8 v_hashedId8; + var HashedId3 v_expectedHashedId3; + var ItsCam v_component; + + // Test control + if (not(PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA256)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA256' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + if (PICS_SEC_SHA256 == true) { + f_getCertificateDigest( + cc_taCert_B, + v_hashedId8 + ); + } + v_expectedHashedId3 := f_hashedId3FromHashedId8(v_hashedId8); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message from unknown ITS-S + geoNetworkingPort.clear; + f_sendSecuredCam( + cc_taCert_B, + valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement; + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam( + -, + -, + { v_expectedHashedId3 } + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate request was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate request ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_11_01_BV + + /** + * @desc Check that the IUT sends certificate request when it receives secured CAM + * containing certificate signed by unknown AA certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA384 + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT has receiving a CAM + * containing signer + * containing digest + * indicating HashedId8 value DIGEST_A + * referencing an unknown certificate (CERT_TS_B_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing headerInfo + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of DIGEST_A + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_11_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.1.2 + */ + testcase TC_SEC_ITSS_SND_CAM_11_02_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HashedId8 v_hashedId8; + var HashedId3 v_expectedHashedId3; + var ItsCam v_component; + + // Test control + if (not(PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA384)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION and PICS_SEC_SHA384' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + if (PICS_SEC_SHA384 == true) { + f_getCertificateDigest( + cc_taCert_B1, + v_hashedId8 + ); + } + v_expectedHashedId3 := f_hashedId3FromHashedId8(v_hashedId8); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message from unknown ITS-S + geoNetworkingPort.clear; + f_sendSecuredCam( + cc_taCert_B, + valueof(m_headerInfo_cam(-, (f_getCurrentTime() * 1000)/*us*/)), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement; + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam( + -, + -, + { v_expectedHashedId3 } + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate request was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate request ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_11_02_BV + + /** + * @desc Check that IUT sends the secured CAM containing the signing certificate when it received + * a CAM containing a request for unrecognized certificate that matches with the currently + * used AT certificate ID of the IUT. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AT_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT is configured to send more than one CAM per second + * and the IUT having already sent a CAM + * containing signer + * containing certificate + * at TIME_1 + * and the IUT having received a CAM + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of currently used AT certificate + * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) + * } + * ensure that { + * when { + * the IUT is requested to send a CAM + * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) + * } then { + * the IUT sends a CAM + * containing signer + * and containing certificate + * referenced by the requested digest + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_12_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_12_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const float c_certificateGenerationTime := 1.0; + + timer t_maxTransInterval := c_certificateGenerationTime * 0.9; + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var HashedId8 v_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AT_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_getCertificateDigest( + cc_taCert_B, // Unknown certificate + v_hashedId8 + ); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.start; + + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message with request for the currently used AT certificate + f_sendSecuredCam( + cc_taCert_A, + valueof( + m_headerInfo_cam( + -, + (f_getCurrentTime() * 1000)/*us*/, + -, + { f_hashedId3FromHashedId8(v_hashedId8) } + )), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + var SignerIdentifier v_signerIdentifier; + var SequenceOfCertificate v_certificates; + var integer v_certificatesLength; + + tc_ac.stop; + t_maxTransInterval.stop; + // Extract certificate chain + f_getMsgSignerIdentifier(v_geoNwInd.msgIn.gnPacket.securedMsg, v_signerIdentifier); + v_certificates := v_signerIdentifier.certificate; + v_certificatesLength := lengthof(v_certificates); + if (v_certificatesLength == 1) { + // Check reference + if (f_calculateDigestFromCertificate(v_certificates[0]) == v_hashedId8) { + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: Wrong certificate reference ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: Unexpected certificate content ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); + repeat; + } + [] t_maxTransInterval.timeout { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_12_BV + + /** + * @desc Check that IUT sends the secured CAM containing the AA certificate in the requestedCertificate + * headerInfo field when it received a CAM containing a request for unrecognized certificate that + * matches with the currently used AA certificate ID of the IUT. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AT_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * issued by the AA certificate (CERT_IUT_A_AA) + * and the IUT is configured to send more than one CAM per second + * and the IUT having already sent a CAM + * containing signer + * containing certificate + * at TIME_1 + * and the IUT having received a CAM + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of the digest of CERT_IUT_A_AA + * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) + * } + * ensure that { + * when { + * the IUT is requested to send a CAM + * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) + * } then { + * the IUT sends a CAM + * containing headerInfo + * and containing the requestedCertificate + * indicating requested AA certificate CERT_IUT_A_AA + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_13_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_13_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const float c_certificateGenerationTime := 1.0; + + timer t_maxTransInterval := c_certificateGenerationTime * 0.9; + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var Certificate v_aa_certificate; + var HashedId8 v_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AT_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AT_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_iutCert_A_AA, v_aa_certificate); + f_getCertificateDigest( + cc_iutCert_A_AA, + v_hashedId8 + ); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.start; + + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message with request for the currently used AT certificate + f_sendSecuredCam( + cc_taCert_A, + valueof( + m_headerInfo_cam( + -, + (f_getCurrentTime() * 1000)/*us*/, + -, + { f_hashedId3FromHashedId8(v_hashedId8) } + )), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam( + -, -, -, + v_aa_certificate + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + t_maxTransInterval.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); + repeat; + } + [] t_maxTransInterval.timeout { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_13_BV + + /** + * @desc Check that IUT sends the secured CAM containing the AA certificate in the requestedCertificate headerInfo + * field when it received a CAM containing a request for unrecognized certificate that matches with the known + * AA certificate ID which is not currently used by the IUT. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * and the IUT is configured to send more than one CAM per second + * and the IUT is configured to know the AA certificate (CERT_TS_B_AA) + * and the IUT having already sent a CAM + * containing signer + * containing certificate + * at TIME_1 + * and the IUT having received a CAM + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of the digest of CERT_TS_B_AA + * which is not an issuer of currently used AT certificate + * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) + * } + * ensure that { + * when { + * the IUT is requested to send a CAM + * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing the requestedCertificate + * indicating requested AA certificate CERT_TS_B_AA + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_14_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_14_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const float c_certificateGenerationTime := 1.0; + + timer t_maxTransInterval := c_certificateGenerationTime * 0.9; + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var Certificate v_aa_certificate; + var HashedId8 v_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_taCert_B_AA, v_aa_certificate); + f_getCertificateDigest( + cc_taCert_B_AA, + v_hashedId8 + ); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.start; + + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message with request for the currently used AT certificate + f_sendSecuredCam( + cc_taCert_A, + valueof( + m_headerInfo_cam( + -, + (f_getCurrentTime() * 1000)/*us*/, + -, + { f_hashedId3FromHashedId8(v_hashedId8) } + )), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam( + -, -, -, + v_aa_certificate + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + t_maxTransInterval.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] t_maxTransInterval.timeout { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_14_BV + + /** + * @desc Check that the IUT doesn't send a secured CAM containing the AA certificate in the requestedCertificate + * headerInfo field when it was previously requested and already received from another ITS-S. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * issued by the AA certificate (CERT_IUT_A_AA) + * and the IUT is configured to send more than one CAM per second + * and the IUT having already sent a CAM + * containing signer + * containing certificate + * at TIME_1 + * and the IUT having received a CAM + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of the digest of CERT_IUT_A_AA + * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 0.8sec) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 0.9sec) + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * does not containing requestedCertificate + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_15_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_15_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const float c_certificateGenerationTime := 0.8; + + timer t_maxTransInterval := c_certificateGenerationTime * 0.9; + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var Certificate v_aa_certificate; + var HashedId8 v_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_iutCert_A_AA, v_aa_certificate); + f_getCertificateDigest( + cc_iutCert_A_AA, + v_hashedId8 + ); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.start; + + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message with request for the currently used AT certificate + f_sendSecuredCam( + cc_taCert_A, + valueof( + m_headerInfo_cam( + -, + (f_getCurrentTime() * 1000)/*us*/, + -, + { f_hashedId3FromHashedId8(v_hashedId8) } + )), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam // does not containing requested certificate + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + t_maxTransInterval.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] t_maxTransInterval.timeout { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_15_BV + + /** + * @desc Check that the IUT doesn't send a secured CAM containing the AA certificate in the requestedCertificate + * headerInfo field when it contains certificate in the signer field. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * issued by the AA certificate (CERT_IUT_A_AA) + * and the IUT is configured to send more than one CAM per second + * and the IUT having already sent a CAM + * containing signer + * containing certificate + * at TIME_1 + * and the IUT having received a CAM + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of the digest of CERT_IUT_A_AA + * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 0.9sec) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * at TIME_3 (TIME_1 < TIME_2 < TIME_3 < TIME_1 + 1sec) + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * does not containing requestedCertificate + * and containing signer + * containing certificate + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_16_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_16_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const float c_certificateGenerationTime := 0.8; + + timer t_maxTransInterval := c_certificateGenerationTime * 0.9; + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var Certificate v_aa_certificate; + var HashedId8 v_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_taCert_AA, v_aa_certificate); + f_getCertificateDigest( + cc_taCert_AA, + v_hashedId8 + ); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + t_maxTransInterval.start; + + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message with request for the currently used AT certificate + f_sendSecuredCam( + cc_taCert_A, + valueof( + m_headerInfo_cam( + -, + (f_getCurrentTime() * 1000)/*us*/, + -, + { f_hashedId3FromHashedId8(v_hashedId8) } + )), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam // Not containing requestedCertificate + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + t_maxTransInterval.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam // Not containing requestedCertificate + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission w/o certificate ***"); + repeat; + } + [] t_maxTransInterval.timeout { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: The certificate chain has not been received during 1 sec ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_16_BV + + /** + * @desc Check that the IUT send a secured CAM containing the AA certificate in the + * requestedCertificate headerInfo field with the next CAM containing digest + * as a signer info. + *
+ * Pics Selection: PICS_GN_SECURITY, PICS_SEC_P2P_AA_DISTRIBUTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * issued by the AA certificate (CERT_IUT_A_AA) + * and the IUT is configured to send more than one CAM per second + * and the IUT having already sent a CAM + * containing signer + * containing certificate + * at TIME_1 + * and the IUT having received a CAM + * containing inlineP2pcdRequest + * containing HashedId3 value + * indicating last 3 octets of the digest of CERT_IUT_A_AA + * at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec) + * } + * ensure that { + * when { + * the IUT is sending a first subsequent secured CAM + * containing signer + * containing digest + * } then { + * this message + * containing headerInfo + * containing requestedCertificate + * indicating requested AA certificate CERT_IUT_A_AA + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_17_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.1 + * IEEE 1609.2 [2], Clauses 6.3.9 & 8.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_17_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var ItsCam v_component; + var Certificate v_aa_certificate; + var HashedId8 v_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_P2P_AA_DISTRIBUTION)) { + log("*** " & testcasename() & ": ERROR: 'PICS_GN_SECURITY and PICS_SEC_P2P_AA_DISTRIBUTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_iutCert_A_AA, v_aa_certificate); + f_getCertificateDigest( + cc_iutCert_A_AA, + v_hashedId8 + ); + geoNetworkingPort.clear; + v_component := f_setCamFrequencyGreatherThan1Hz(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + + // Send secured message with request for the currently used AT certificate + f_sendSecuredCam( + cc_taCert_A, + valueof( + m_headerInfo_cam( + -, + (f_getCurrentTime() * 1000)/*us*/, + -, + { f_hashedId3FromHashedId8(v_hashedId8) } + )), + valueof( + m_signerIdentifier_digest( + v_hashedId8 + ) + ) + ); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam( + -, -, -, + v_aa_certificate + ) + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_terminateCam(v_component); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_17_BV + + /** + * @desc Check that IUT sends the secured CAM containing generation time and this time is inside the validity period of the signing certificate; + * Check that message generation time value is realistic + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a CAM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationTime + * indicating TIME_1 (CUR_TIME - 5min <= TIME_1 <= CUR_TIME + 5min) + * and containing signer + * containing certificate + * containing toBeSigned + * containing validityPeriod + * containing start + * indicating value X_START_VALIDITY (X_START_VALIDITY <= GEN_TIME) + * and containing duration + * indicating value > GEN_TIME - X_START_VALIDITY + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_18_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.1 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2, 5.2.4.2.2, 5.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_CAM_18_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + const integer c_timeLimit := 2 * 60 * 1000000; // us + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var Time64 v_generationTime; + var Time64 v_curTime; + var SignerIdentifier v_signerIdentifier; + var ValidityPeriod v_validityPeriod; + var Certificate v_cert; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + geoNetworkingPort.clear; + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message with certificate received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); + v_generationTime := v_headerInfo.generationTime; + v_curTime := f_getCurrentTime(); + v_curTime := v_curTime * 1000; // Time64 is in microseconds + log("v_generationTime (us)=", v_generationTime); + log("c_timeLimit (us)=", c_timeLimit); + log("v_curTime (us)=", v_curTime); + log("valid interval=", Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit)); + // Check generation time + if ((v_generationTime < (v_curTime - c_timeLimit)) or (v_generationTime > (v_curTime + c_timeLimit))) { + //if (not match(v_generationTime, Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { + log("*** " & testcasename() & ": FAIL: CA message generation time is not in 5 min range"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + // Check certificate validity period + f_getMsgSignerIdentifier (f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); + log("v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_ (s)=", v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_); + log("c_timeLimit (s)=", c_timeLimit / 1000000); + log("v_curTime (u)=", v_curTime / 1000000); + log("valid interval=", Time32:((v_curTime - c_timeLimit) / 1000000, (v_curTime + c_timeLimit) / 1000000)); + if ( + (v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_ < (v_curTime - c_timeLimit) / 1000000) or + (v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_ > (v_curTime + c_timeLimit) / 1000000) + ){ + //if (not match(v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_, Time32:((v_curTime - c_timeLimit) / 1000000, (v_curTime + c_timeLimit) / 1000000))) { + log("*** " & testcasename() & ": FAIL: CA message certificate validity period is not in 5 min range"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": PASS: Generation of CAM messages including certificate was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwShbPacket + ))) { + log("*** " & testcasename() & ": INFO: CA message retransmission with digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_18_BV + + /** + * @desc Check that IUT sends the secured CAM containing the 'data' field in signed data payload, + * containing the EtsiTs103097Data of type unsecured, contained the CAM payload + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * contains content + * contains signedData + * containing tbsData + * containing payload + * containing data + * containing content + * containing unsecuredData + * containing not-empty data + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_19_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 + */ + testcase TC_SEC_ITSS_SND_CAM_19_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + log("###############", mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload( + mw_ieee1609Dot2Data( + mw_ieee1609Dot2Data_unsecured + )), + mw_headerInfo_cam + ) + ) + ) + ))); + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload( + mw_ieee1609Dot2Data( + mw_ieee1609Dot2Data_unsecured + )), + mw_headerInfo_cam + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CAM received with a well formated payload ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_19_BV + + /** + * @desc Check that the IUT sends the secured CAM signed with the certificate containing appPermisions + * allowing to sign CA messages + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing signer + * containing certificate + * containing appPermissions + * containing an item of type PsidSsp + * containing psid = AID_CAM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_20_BV + * @reference ETSI TS 103 097 [1] Clauses 7.2.1 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_CAM_20_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // containing certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + { *, mw_appPermissions(c_its_aid_CAM), * } + ) + ) + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CAM received with a well formated certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: CA message with digest was received ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_20_BV + + /** + * @desc Check that IUT sends the secured CAM containing signature; + * Check that the signature is calculated over the right fields + * and using right hash algorythm by cryptographically verifying the signature + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing signedData + * containing signer + * containing digest + * referencing the certificate X_CERTIFICATE + * or containing certificate + * indicating X_CERTIFICATE + * and containing signature + * containing X_SIGNATURE + * verifiable using KEY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_21_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 + * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 + + */ + testcase TC_SEC_ITSS_SND_CAM_21_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var EtsiTs103097Certificate v_certificate; + var Signature v_signature; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest( // containing digest referencing the certificate X_CERTIFICATE + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].issuer + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: CA message with digest received ***"); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // or containing containing certificate indicating X_CERTIFICATE + v_certificate + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: CA message with certificate received ***"); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + // Check that the signature is calculated over the right fields and using right hash algorythm by cryptographically verifying the signature + if (f_verifyGnSecuredMessageSignatureWithCertificate(f_getSecuredMessage(v_geoNwInd.msgIn), vc_hashedId8ToBeUsed, v_certificate)) { + log("*** " & testcasename() & ": PASS: Signature verified successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: Signature not verified successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_21_BV + + /** + * @desc Check that IUT sends the secured CAM containing signature containing the ECC point of type set to + * either compressed_lsb_y_0, compressed_lsb_y_1 or x_coordinate_only. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing signedData + * containing signature + * containing one of the ecdsaNistP256Signature + * or containing ecdsaBrainpoolP256r1Signature + * or containing ecdsaBrainpoolP384r1Signature + * containing rSig + * containing x-only + * or containing compressed-y-0 + * or containing compressed-y-1 + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_22_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.1 + * @reference IEEE 1609.2 [2], Clauses 6.3.30, 6.3.31 + */ + testcase TC_SEC_ITSS_SND_CAM_22_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaNistP256( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_x_only + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaNistP256( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaNistP256( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP256r1( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_x_only + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP256r1( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP256r1( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP384r1( + mw_ecdsaP384Signature( + mw_eccP384CurvePoint_x_only + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP384r1( + mw_ecdsaP384Signature( + mw_eccP384CurvePoint_compressed_y_0 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP384r1( + mw_ecdsaP384Signature( + mw_eccP384CurvePoint_compressed_y_1 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: CA message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: CA message with wrong signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_22_BV + + /** + * @desc Check that IUT doesn't send secured CAMs if IUT is authorized with AT certificate doesn't allowing + * sending messages in this location. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_C1_AT) + * containing region + * indicating rectangular region + * not containing current IUT position + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT doesn't send CAM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_23_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_CAM_23_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No CAM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_23_BV + + /** + * @desc Check that IUT doesn't send the secured CAM if IUT is configured to use an AT certificate without + * region validity restriction and generation location is outside of the region of the issuing AA certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_CA3_AT) + * not containing region + * and issued by the AA certificate (CERT_IUT_C3_AA) + * containing region + * indicating rectangular region + * not containing current IUT position + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT doesn't send CAM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_24_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_CAM_24_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No CAM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_24_BV + + /** + * @desc Check that IUT doesn't send secured CAMs if all AT certificates installed on the IUT was expired. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_CA3_AT) + * containing validityPeriod + * indicating start + duration < CURRENT_TIME + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT doesn't send CAM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_25_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_CAM_25_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No CAM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_25_BV + + /** + * @desc Check that IUT doesn't send secured CAMs if all AT certificates installed on the IUT have the starting time in the future. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A2_AT) + * containing validityPeriod + * indicating start > CURRENT_TIME + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT doesn't send CAM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_26_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_CAM_26_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No CAM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_26_BV + + /** + * @desc Check that IUT doesn't send secured CAMs if IUT doesn't possess an AT certificate allowing + * sending CAM by its appPermissions. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A3_AT) + * containing appPermissions + * not containing PsidSSP + * containing psid + * indicating AID_CAM + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * the IUT doesn't send CAM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CAM_27_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_CAM_27_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured CAMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No CAM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CAM_27_BV + + } // End of group camProfile + + /** + * @desc Sending behaviour test cases for DENM profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.5 DENM profile + */ + group denmProfile { + + /** + * @desc Check that secured DENM is signed + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing content + * containing signedData + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_01_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.2 + */ + testcase TC_SEC_ITSS_SND_DENM_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: The DEN message is secured"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_01_BV + + /** + * @desc Check that IUT sends the secured DENM containing the HeaderInfo field psid set to 'AID_DENM' + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing psid + * indicating 'AID_DENM' + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_02_BV + * @reference ETSI TS 103 097 [1] Clause 7.1.2 + */ + testcase TC_SEC_ITSS_SND_DENM_02_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_02_BV + + /** + * @desc Check that IUT sends the secured DENM with the HeaderInfo containing generationTime and generationLocation + * and doesn't containing expiryTime, encryptionKey, p2pcdLearningRequest, missingCrlIdentifier, + * inlineP2pcdRequest, requestedCertificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing generationTime + * and containing generationLocation, + * and not containing expiryTime + * and not containing encryptionKey + * and not containing p2pcdLearningRequest + * and not containing missingCrlIdentifier + * and not containing inlineP2pcdRequest + * and not containing requestedCertificate + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_03_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 + */ + testcase TC_SEC_ITSS_SND_DENM_03_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_03_BV + + /** + * @desc Check that IUT sends the secured DENM containing signer containing certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing signer + * containing certificate + * containing toBeSigned + * containing appPermissions + * containing the item of type PsidSsp + * containing psid + * indicating AID_DENM + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_04_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 + * @reference IEEE 1609.2 [2] Clause 6.3.4 + */ + testcase TC_SEC_ITSS_SND_DENM_04_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( // or containing certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + { *, mw_appPermissions(c_its_aid_DENM), * } + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received, containing certificate"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Incorrect secured packet received, containing digest"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_04_BV + + /** + * @desc Check that IUT sends the secured DENM containing generation time + * and this time is inside the validity period of the signing certificate; + * Check that message generation time value is realistic. + + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a DENM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationTime + * indicating TIME_1 (CUR_TIME - 10min <= TIME_1 <= CUR_TIME + 10min) + * and containing signer + * containing certificate + * containing toBeSigned + * containing validityPeriod + * containing start + * indicating value X_START_VALIDITY (X_START_VALIDITY <= GEN_TIME) + * and containing duration + * indicating value > GEN_TIME - X_START_VALIDITY + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_05_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2, 5.2.4.2.2, 5.2.4.2.3 + */ + testcase TC_SEC_ITSS_SND_DENM_05_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + const integer c_timeLimit := 10 * 60 * 1000000; // us + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var Time64 v_generationTime; + var Time64 v_curTime; + var SignerIdentifier v_signerIdentifier; + var ValidityPeriod v_validityPeriod; + var Certificate v_cert; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First DEN message with certificate received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_prDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: DEN message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate // containing certificate + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); + v_generationTime := v_headerInfo.generationTime; + v_curTime := f_getCurrentTime(); + v_curTime := v_curTime * 1000; // Time64 is in microseconds + log("v_curTime (us)=", v_curTime); + // Check generation time + if (not match(v_generationTime, Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { + log("*** " & testcasename() & ": FAIL: DEN message generation time is not in 5 min range"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + // Check certificate validity period + f_getMsgSignerIdentifier (f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); + if (not match(v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_, Time32:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { + log("*** " & testcasename() & ": FAIL: DEN message certificate validity period is not in 5 min range"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": PASS: Generation of DENM messages including certificate was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_05_BV + + /** + * @desc Check that IUT sends the secured DENM containing generation location when signing certificate + * chain doesn't have any region restriction. + + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * containing toBeSigned + * not containing region + * and issuied by the certificate AA (CERT_IUT_A_AA) + * containing toBeSigned + * not containing region + * and issuied by the certificate RCA (CERT_IUT_A_RCA) + * containing toBeSigned + * not containing region + * } + * ensure that { + * when { + * the IUT is requested to send a DENM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationLocation + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_06_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_06_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, + ? + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_06_BV + + /** + * @desc Check that IUT sends the secured DENM containing generation location which is inside the circular region + * defined by the validity restriction of the certificate pointed by the message signer. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_AT_CERTIFICATE) + * containing toBeSigned + * indicating REGION + * } + * ensure that { + * when { + * the IUT is requested to send a DENM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationLocation + * indicating value inside the REGION + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_07_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_07_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_cert; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_CERTIFICATE_SELECTION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, + ? + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_07_BV + + /** + * @desc Check that IUT sends the secured DENM containing generation location which is inside the region + * defined by the validity restriction of the certificate pointed by the message signer . + *
+ * Pics Selection: PICS_GN_SECURITY and not PICS_SEC_CERTIFICATE_SELECTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_AT_CERTIFICATE) + * containing toBeSigned + * indicating REGION + * } + * ensure that { + * when { + * the IUT is requested to send a DENM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationLocation + * indicating value inside the REGION + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_08_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_08_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_cert; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or PICS_SEC_CERTIFICATE_SELECTION) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and not PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_08_BV + + /** + * @desc Check that IUT sends the secured DENM containing generation location which is inside the identified + * region defined by the validity restriction of the AA certificate used to sign the certificate + * pointed by the message signer doesn't containing any region restriction. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_CA1_AT) + * containing toBeSigned + * not containing region + * and issuied by the certificate AA (CERT_IUT_CC_AA) + * containing toBeSigned + * containing circularRegion + * indicating REGION + * and issuied by the certificate RCA (CERT_IUT_C_RCA) + * containing toBeSigned + * containing circularRegion + * indicating REGION + * } + * ensure that { + * when { + * the IUT is requested to send a DENM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationLocation + * indicating value inside the REGION + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_09_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 & 6.4.8 + */ + testcase TC_SEC_ITSS_SND_DENM_09_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_at_certificate; + var Certificate v_aa_certificate; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_CERTIFICATE_SELECTION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_taCert_CA1, v_at_certificate); + f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + v_at_certificate.toBeSigned.appPermissions, + v_at_certificate.toBeSigned.verifyKeyIndicator, + v_at_certificate.toBeSigned.validityPeriod, + omit + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + + if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { + log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_09_BV + + /** + * @desc Check that IUT sends the secured DENM containing generation location which is inside the identified + * region defined by the validity restriction of the root certificate when subordinate AA and AT + * certificates don't contain any region restriction. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_CA2_AT) + * containing toBeSigned + * not containing region + * and issuied by the certificate AA (CERT_IUT_CC_AA) + * containing toBeSigned + * containing circularRegion + * indicating REGION + * and issuied by the certificate RCA (CERT_IUT_C_RCA) + * containing toBeSigned + * containing circularRegion + * indicating REGION + * } + * ensure that { + * when { + * the IUT is requested to send a DENM + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationLocation + * indicating value inside the REGION + * } + * } + *+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_10_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 & 6.4.8 + */ + testcase TC_SEC_ITSS_SND_DENM_10_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_at_certificate; + var Certificate v_aa_certificate; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_CERTIFICATE_SELECTION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_CERTIFICATE_SELECTION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(cc_taCert_CA2, v_at_certificate); + f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + v_at_certificate.toBeSigned.appPermissions, + v_at_certificate.toBeSigned.verifyKeyIndicator, + v_at_certificate.toBeSigned.validityPeriod, + omit + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + + if (f_isLocationInsideRegion(v_at_certificate.toBeSigned.region, v_location) == true) { + log("*** " & testcasename() & ": PASS: DENM contains generation location inside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: DEN message contains generation location outside the certificate validity region ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! DENM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_10_BV + + /** + * @desc Check that IUT sends the secured DENM containing the 'data' field in signed data payload, + * containing the EtsiTs103097Data of type unsecured, contained the DENM payload + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * contains content + * contains signedData + * containing tbsData + * containing payload + * containing data + * containing content + * containing unsecuredData + * containing not-empty data + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_11_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 + */ + testcase TC_SEC_ITSS_SND_DENM_11_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload( + mw_ieee1609Dot2Data( + mw_ieee1609Dot2Data_unsecured + )), + mw_headerInfo_denm + ) + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: DENM received with a well formated payload"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected DEN message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_11_BV + + /** + * @desc Check that the IUT sends the secured DENM signed with the certificate containing appPermisions + * allowing to sign DEN messages + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing signer + * containing certificate + * containing appPermissions + * containing an item of type PsidSsp + * containing psid = AID_DENM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_12_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_12_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( // containing certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + { *, mw_appPermissions(c_its_aid_DENM), * } + ) + ) + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: DEN message received with a well formated certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: DEN message with digest was received ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: DEN message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_12_BV + + /** + * @desc Check that IUT sends the secured DENM containing signature; + * Check that the signature is calculated over the right fields + * and using right hash algorythm by cryptographically verifying the signature + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * indicating KEY + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing signedData + * containing signer + * containing certificate + * indicating X_CERTIFICATE + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * indicating KEY + * and containing signature + * containing X_SIGNATURE + * verifiable using KEY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_13_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.2 + * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 + + */ + testcase TC_SEC_ITSS_SND_DENM_13_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var EtsiTs103097Certificate v_certificate; + var Signature v_signature; + var GeoNetworkingInd v_geoNwInd; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( // or containing containing certificate indicating X_CERTIFICATE + v_certificate + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: DEN message with certificate received ***"); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: DEN message retransmission with digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + //repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: DEN message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + // Check that the signature is calculated over the right fields and using right hash algorythm by cryptographically verifying the signature + if (f_verifyGnSecuredMessageSignatureWithCertificate(f_getSecuredMessage(v_geoNwInd.msgIn), vc_hashedId8ToBeUsed, v_certificate)) { + log("*** " & testcasename() & ": PASS: Signature verified successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: Signature not verified successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_13_BV + + /** + * @desc Check that IUT doesn't send secured DENMs if IUT doesn't possess an AT certificate allowing + * sending messages in this location. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_C1_AT) + * containing region + * indicating rectangular region + * not containing current IUT position + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT doesn't send DENM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_14_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_14_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); // Initialise IUT with CERT_IUT_C1_AT + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No DENM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_14_BV + + /** + * @desc Check that IUT doesn't send the secured DENM if IUT is configured to use an AT certificate + * without region validity restriction and generation location is outside of the region of the + * issuing AA certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_C3_AT) + * not containing region + * and issued by the AA certificate (CERT_IUT_C3_AA) + * containing region + * indicating rectangular region + * not containing current IUT position + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT doesn't send DENM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_15_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_15_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); // Initialise IUT with CERT_IUT_C3_AT + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No DENM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_15_BV + + /** + * @desc Check that IUT doesn't send secured DENMs if all AT certificates installed on the IUT are expired. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A1_AT) + * containing validityPeriod + * indicating start + duration < CURRENT_TIME + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT doesn't send DENM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_16_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_16_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); // Initialise IUT with CERT_IUT_A1_AT + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No DENM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_16_BV + + /** + * @desc Check that IUT doesn't send secured DENMs if all AT certificates installed on the IUT have the starting time in the future. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A2_AT) + * containing validityPeriod + * indicating start > CURRENT_TIME + * and the IUT has no other installed AT certificates + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT doesn't send DENM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_17_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_17_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); // Initialise IUT with CERT_IUT_A2_AT + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No DENM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_17_BV + + /** + * @desc Check that IUT doesn't send secured DENMs if IUT doesn't possess an AT certificate allowing + * sending DENM by its appPermissions. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A4_AT) + * containing appPermissions + * not containing PsidSSP + * containing psid + * indicating AID_CAM + * } + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * the IUT doesn't send DENM + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_DENM_18_BV + * @reference IEEE 1609.2 [2], Clauses 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_DENM_18_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); // Initialise IUT with CERT_IUT_A4_AT + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_noac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ) + ) + ) + ))) { + tc_noac.stop; + log("*** " & testcasename() & ": FAIL: that IUT shall not send secured DENMs"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_noac.timeout { + log("*** " & testcasename() & ": PASS: No DENM received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_DENM_18_BV + + } // End of group denmProfile + + /** + * @desc Sending behaviour test cases for DENM profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.6 Generic signed message profile + */ + group genericSignedMessageProfile { + + /** + * @desc Check that IUT sends the secured message using signedData container. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing content + * containing signedData + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_01_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.3 + */ + testcase TC_SEC_ITSS_SND_GENMSG_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: The GN message is secured ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_01_BV + + /** + * @desc Check that the sent Secured Message contains HeaderField its_aid that is set to other value then AID_CAM and AID_DENM. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing psid + * indicating 'AID_GNMGMT' + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_02_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.3 + */ + testcase TC_SEC_ITSS_SND_GENMSG_02_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: The GN message is secured ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_02_BV + + /** + * @desc Check that IUT sends the secured GeoNetworking message with the headerInfo containing generationTime. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing generationTime + * and not containing expiryTime + * and not containing generationLocation, + * and not containing encryptionKey + * and not containing p2pcdLearningRequest + * and not containing missingCrlIdentifier + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_03_BV + * @reference ETSI TS 103 097 [1] Clauses 5.2 & 7.1.3 + */ + testcase TC_SEC_ITSS_SND_GENMSG_03_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: The GN message is secured ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_03_BV + + /** + * @desc Check that IUT sends the secured GeoNetworking message containing certificate or digest as a signer. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * } then { + * the IUT sends a Ieee1609Dot2Data + * containing content + * containing signedData + * containing signer + * containing digest + * or containing certificate + * containing toBeSigned + * containing appPermissions + * containing the item of type PsidSsp + * containing psid + * indicating AID_GNMGMT + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_04_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.3 + * @reference IEEE 1609.2 [2] Clause 6.3.4 + */ + testcase TC_SEC_ITSS_SND_GENMSG_04_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Correct secured packet received, containing digest ***"); + repeat; + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_certificate( // or containing certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + { *, mw_appPermissions(c_its_aid_GN), * } + ) + ) + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_04_BV + + /** + * @desc Check that IUT sends the secured GeoNetworking message containing generation time + * and this time is inside the validity period of the signing certificate; + * Check that message generation time value is realistic. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * containing certificate + * } then { + * the IUT sends a SecuredMessage of type EtsiTs103097Data + * containing headerInfo + * containing generationTime + * indicating TIME_1 (CUR_TIME - 10min <= TIME_1 <= CUR_TIME + 10min) + * and containing signer + * containing certificate + * containing toBeSigned + * containing validityPeriod + * containing start + * indicating value X_START_VALIDITY (X_START_VALIDITY <= GEN_TIME) + * and containing duration + * indicating value > GEN_TIME - X_START_VALIDITY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_05_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.3 + * @reference IEEE 1609.2 [2] Clause 6.3.4 + */ + testcase TC_SEC_ITSS_SND_GENMSG_05_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + const integer c_timeLimit := 10 * 60 * 1000000; // us + var LongPosVector v_longPosVectorIut; + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var Time64 v_generationTime; + var Time64 v_curTime; + var SignerIdentifier v_signerIdentifier; + var ValidityPeriod v_validityPeriod; + var Certificate v_cert; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_certificate // containing certificate + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: Initial conditions: First GN message with certificate received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: GN message with certificate not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } // End of 'alt' statement + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_certificate // containing certificate + ) + ) + ))) -> value v_geoNwInd { + tc_ac.stop; + f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo); + v_generationTime := v_headerInfo.generationTime; + v_curTime := f_getCurrentTime(); + v_curTime := v_curTime * 1000; // Time64 is in microseconds + log("v_curTime (us)=", v_curTime); + // Check generation time + if (not match(v_generationTime, Time64:(v_curTime - c_timeLimit, v_curTime + c_timeLimit))) { + log("*** " & testcasename() & ": FAIL: GN generation time is not in 5 min range"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + // Check certificate validity period + f_getMsgSignerIdentifier (f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier); + if (not match(v_signerIdentifier.certificate[0].toBeSigned.validityPeriod.start_, Time32:(v_curTime - c_timeLimit / 1000000, v_curTime + c_timeLimit / 1000000))) /*In seconds*/{ + log("*** " & testcasename() & ": FAIL: GN certificate validity period is not in 5 min range"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": PASS: Generation of GN messages including certificate was successful ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_05_BV + + /** + * @desc Check that IUT sends the secured message using the 'data' field in signed data payload, + * containing the EtsiTs103097Data of type unsecured, + * containing the data payload or using the extDataHash field containing the SHA256 hash of data payload. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * } then { + * the IUT sends a message of type EtsiTs103097Data + * contains content + * contains signedData + * containing tbsData + * containing payload + * containing data + * containing content + * containing unsecuredData + * containing not-empty data + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_06_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.3 + */ + testcase TC_SEC_ITSS_SND_GENMSG_06_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload( + mw_ieee1609Dot2Data( + mw_ieee1609Dot2Data_unsecured + )), + mw_headerInfo_gn + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: GN received with a well formated payload ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_06_BV + + /** + * @desc Check that the IUT sends the secured messages signed with the certificate + * containing appPermisions allowing to sign these messages. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured Beacon + * } then { + * the IUT sends a message of type EtsiTs103097Data + * contains content + * contains signedData + * containing tbsData + * containing payload + * containing data + * containing content + * containing unsecuredData + * containing not-empty data + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_07_BV + * @reference ETSI TS 103 097 [1] Clauses 7.1.3 + * @reference IEEE 1609.2 [2] Clause 5.2.3.2.2 + */ + testcase TC_SEC_ITSS_SND_GENMSG_07_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Correct secured packet received, containing digest ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload( + mw_ieee1609Dot2Data( + mw_ieee1609Dot2Data_unsecured + )), + mw_headerInfo_gn + ) + ) + ) + ))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: received with a well formated payload ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_07_BV + + /** + * @desc Check that IUT sends the secured GeoNetworking message containing signature; + * Check that the signature is calculated over the right fields and using right + * hash algorythm by cryptographically verifying the signature. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * } + * ensure that { + * when { + * the IUT is requested to send a secured beacon + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing signedData + * containing signer + * containing digest + * referencing the certificate X_CERTIFICATE + * or containing certificate + * indicating X_CERTIFICATE + * and containing signature + * containing X_SIGNATURE + * verifiable using KEY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_GENMSG_08_BV + * @reference ETSI TS 103 097 [1], Clauses 5.2 & 7.1.3 + * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 + */ + testcase TC_SEC_ITSS_SND_GENMSG_08_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var LongPosVector v_longPosVectorIut; + var EtsiTs103097Certificate v_certificate; + var Signature v_signature; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ITS_AID_OTHER)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ITS_AID_OTHER' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + v_longPosVectorIut := f_getPosition(c_compIut); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_readCertificate(vc_hashedId8ToBeUsed, v_certificate); + f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); // Authorize the TA to forward the received beacons + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_digest( // containing digest referencing the certificate X_CERTIFICATE + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].issuer + ) + ) + ) + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: GN message with digest received ***"); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].hashAlgorithm, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_gn + ), + mw_signerIdentifier_certificate( // or containing containing certificate indicating X_CERTIFICATE + v_certificate + ) + ) + ) + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": INFO: GN message with certificate received ***"); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_acTriggerEvent(m_stopPassBeaconing); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_GENMSG_08_BV + + } // End of group genericSignedMessageProfile + + /** + * @desc Sending behaviour test cases for certificates profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7 Encrypted messages profile + */ + group encryptedMessagesProfile { + + /** + * @desc Check that the IUT can generate encrypted message. + *
+ * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send an encrypted message + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing encryptedData + * containing recipients + * containing at least one item of type RecipientInfo + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_01_BV + * @reference ETSI TS 103 097 [1], Clauses 5.3 + */ + testcase TC_SEC_ITSS_SND_ENC_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_encrypted( + mw_encryptedData( + -, + mw_SymmetricCiphertext_aes128ccm + ))))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_ENC_01_BV + + /** + * @desc Check that the IUT can generate encrypted message. + *
+ * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send an encrypted message + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing encryptedData + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_02_BV + * @reference IEEE 1609.2 [2] Clause 6.3.31 + */ + testcase TC_SEC_ITSS_SND_ENC_02_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_encrypted( + mw_encryptedData( + -, + mw_SymmetricCiphertext_aes128ccm + ))))) -> value v_geoNwInd { + tc_ac.stop; + if (lengthof(f_getSecuredMessage(v_geoNwInd.msgIn).content.encryptedData.recipients) >= 1) { + log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: RecipientInfo list is empty ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_ENC_02_BV + + /** + * @desc Check that the IUT can generate encrypted message. + *
+ * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send an encrypted message + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing encryptedData + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_03_BV + * @reference IEEE 1609.2 [2] Clause 6.3.31 + */ + testcase TC_SEC_ITSS_SND_ENC_03_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_encrypted( + mw_encryptedData( + { + mw_recipientInfo_certRecipInfo( + mw_pKRecipientInfo( + -, + mw_encryptedDataEncryptionKey_eciesNistP256( + mw_evciesP256EncryptedKey + ) + ) + ) + }, + mw_SymmetricCiphertext_aes128ccm + ))))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_encrypted( + mw_encryptedData( + { + mw_recipientInfo_certRecipInfo( + mw_pKRecipientInfo( + -, + mw_encryptedDataEncryptionKey_eciesBrainpoolP256r1( + mw_evciesP256EncryptedKey + ) + ) + ) + }, + mw_SymmetricCiphertext_aes128ccm + ))))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: IUT sends encrypted data successfully ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_ENC_03_BV + + /** + * @desc Check that the ciphertext of encrypted message contains encrypted EtsiTs103097Data structure. + *
+ * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send an encrypted message + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing encryptedData + * containing ciphertext + * containing encrypted data + * containing COER encoded data + * containing structure of type EtsiTs103097Data + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_04_BV + * @reference IEEE 1609.2 [2], clauses 6.3.31 + * @reference ETSI TS 103 097 [1] Clause 7.1.4 + */ + testcase TC_SEC_ITSS_SND_ENC_04_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var Oct16 v_aes_sym_enc_key; + var EtsiTs103097Data v_decryptedMsg; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_encrypted( + mw_encryptedData( + -, + mw_SymmetricCiphertext_aes128ccm( + mw_aesCcmCiphertext + )))))) -> value v_geoNwInd { + tc_ac.stop; + + if (f_decrypt(vc_encryptPrivateKey, f_getSecuredMessage(v_geoNwInd.msgIn), ''O, v_decryptedMsg, v_aes_sym_enc_key) == false) { // No salt value + log("*** " & testcasename() & ": FAIL: Unable to process encryption data ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else if (match(v_decryptedMsg, mw_etsiTs103097Data) == false) { + log("*** " & testcasename() & ": FAIL: Unable to parse EtsiTs103097Data data ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": PASS: IUT sends signed and encrypted message ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_ENC_04_BV + + /** + * @desc Check that when the IUT sends SignedAndEncrypted message then it sends the + * EtsiTs103097Data-Encrypted message containing the EtsiTs103097Data-Signed + * structure as the ToBeSignedDataContent. + *
+ * Pics Selection: PICS_GN_SECURITY AND PICS_SEC_ENCRYPTION_SUPPORT + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT) + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send an encrypted and signed message + * } then { + * the IUT sends a message of type EtsiTs103097Data + * containing encryptedData + * containing ciphertext + * containing encrypted data + * containing COER encoded data + * containing structure of type EtsiTs103097Data + * containing signedData + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_ENC_05_BV + * @reference IEEE 1609.2 [2], clauses 6.3.31 + * @reference ETSI TS 103 097 [1] Clause 7.1.5 + */ + testcase TC_SEC_ITSS_SND_ENC_05_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var Oct16 v_aes_sym_enc_key; + var EtsiTs103097Data v_decryptedMsg; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_ENCRYPTION_SUPPORT)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_ENCRYPTION_SUPPORT' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_encrypted( + mw_encryptedData( + -, + mw_SymmetricCiphertext_aes128ccm( + mw_aesCcmCiphertext + )))))) -> value v_geoNwInd { + tc_ac.stop; + + if (f_decrypt(vc_encryptPrivateKey, f_getSecuredMessage(v_geoNwInd.msgIn), ''O, v_decryptedMsg, v_aes_sym_enc_key) == false) { // No salt value + log("*** " & testcasename() & ": FAIL: Unable to process encryption data ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else if (match(v_decryptedMsg, mw_etsiTs103097Data_signed) == false) { + log("*** " & testcasename() & ": FAIL: Unable to parse signed data ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + // TODO Check signature? + log("*** " & testcasename() & ": PASS: IUT sends signed and encrypted message ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_ENC_05_BV + + } // End of group encryptedMessagesProfile + + /** + * @desc Sending behaviour test cases for certificates profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.8 Profiles for certificates + */ + group profileForCertificates { + + /** + * @desc Check that IUT certificate is explicit and has version 3. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the 'authorized' state + * } + * Expected behaviour: + * ensure that { + * when { + * the AA is issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing version + * indicating 3 + * and containing type + * indicating 'explicit' + * and containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_01_BV + * @reference ETSI TS 103 097 [1], Clauses 6 + * @reference IEEE 1609.2 [2] Clause 6.4.3 + */ + testcase TC_SEC_ITSS_SND_CERT_01_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askForCertificateChain(f_generateDefaultCam()); // TODO Rename f_askForCertificateChain into f_askForCertificateAA + tc_ac.stop; + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + -, + mw_ieee1609Dot2_headerInfo_request_certificate( + -, + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_aa + )))))))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Security protocol version set to 3 ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_01_BV + + /** + * @desc Check that IUT certificate is conformed to ETSI TS 103 097 clause 6. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT being in the 'authorized' state + * } + * Expected behaviour: + * ensure that { + * when { + * the AA is issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing id + * indicating 'none' + * or indicating 'name' + * and containing cracaId + * indicating '000000'H + * and containing crlSeries + * indicating '0'D + * and not containing certRequestPermissions + * and not containing canRequestRollover + * and containing signature + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_02_BV + * @reference ETSI TS 103 097 [1], Clauses 6 + */ + testcase TC_SEC_ITSS_SND_CERT_02_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askForCertificateChain(f_generateDefaultCam()); + tc_ac.stop; + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + -, + mw_ieee1609Dot2_headerInfo_request_certificate( + -, + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_aa( + mw_certificateId_name + ))))))))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: AA certificate is conformed to ETSI TS 103 097 clause 6, with named id ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + -, + mw_ieee1609Dot2_headerInfo_request_certificate( + -, + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_aa( + mw_certificateId_none + ))))))))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: AA certificate is conformed to ETSI TS 103 097 clause 6, with none id ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_02_BV + + /** + * @desc Check that the certificate issuer of certificates is referenced using digest; + * Check that right digest field is used to reference to the certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * } + * ensure that { + * when { + * the CA is issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing signedData + * containing self + * or containing X_DIGEST + * indicating last 8 bytes of the hash of the certificate calculated using X_ALGORITHM + * referenced to certificate + * containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_03_BV + * @reference ETSI TS 103 097 [1], Clauses 5.2 & 7.1.3 + * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 + */ + testcase TC_SEC_ITSS_SND_CERT_03_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var EtsiTs103097Certificate v_ca_certificate; + var EtsiTs103097Certificate v_aa_certificate; + var EtsiTs103097Certificate v_at_certificate; + var HashedId8 v_ca_hashedId8; + var HashedId8 v_aa_hashedId8; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + + // Test adapter configuration + + // Preamble + f_readCertificate(cc_taCert_CA1, v_ca_certificate); // TODO Use PIXIT as array of strings to change + // certificates to be checked + f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); + f_readCertificate(cc_iutCert_A, v_at_certificate); + f_getCertificateDigest(cc_taCert_CC_AA, v_ca_hashedId8); + f_getCertificateDigest(cc_taCert_CC_AA, v_aa_hashedId8); + + // Test Body + // 1. Check certificate format + if (match( + v_ca_certificate, + mw_etsiTs103097Certificate( + mw_issuerIdentifier_self, + mw_toBeSignedCertificate_ca + )) == true) { + log("*** " & testcasename() & ": INFO: CA certificate are well formatted ***"); + } else { + log("*** " & testcasename() & ": FAIL: Invalid CA certificate ***"); + setverdict(fail); + } // End of 'alt' statement + if (match( + v_aa_certificate, + mw_etsiTs103097Certificate( + ?, + mw_toBeSignedCertificate_aa + )) == true) { + log("*** " & testcasename() & ": INFO: AA certificate are well formatted ***"); + } else { + log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); + setverdict(fail); + } // End of 'alt' statement + if (match( + v_at_certificate, + mw_etsiTs103097Certificate( + ?, + mw_toBeSignedCertificate_at + )) == true) { + log("*** " & testcasename() & ": INFO: AT sertificate are well formatted ***"); + } else { + log("*** " & testcasename() & ": Invalid AT certificate ***"); + setverdict(fail); + } // End of 'alt' statement + // 2. Check issuers + if (v_ca_certificate.issuer.self_ == sha256) { + if (match(v_ca_hashedId8, v_aa_certificate.issuer.sha256AndDigest) == true) { + log("*** " & testcasename() & ": INFO: AA certificate is issued from CA certificate ***"); + } else { + log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); + setverdict(fail); + } // End of 'alt' statement + if (match(v_aa_hashedId8, v_at_certificate.issuer.sha256AndDigest) == true) { + log("*** " & testcasename() & ": INFO: AT certificate is issued from CA certificate ***"); + setverdict(pass, "Certificates are well-formated and issuer chain is correct"); + } else { + log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); + setverdict(fail); + } // End of 'alt' statement + } else if (v_ca_certificate.issuer.self_ == sha384) { + if (match(v_ca_hashedId8, v_aa_certificate.issuer.sha384AndDigest) == true) { + log("*** " & testcasename() & ": INFO: AA certificate is issued from CA certificate ***"); + } else { + log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); + setverdict(fail); + } // End of 'alt' statement + if (match(v_aa_hashedId8, v_at_certificate.issuer.sha384AndDigest) == true) { + log("*** " & testcasename() & ": INFO: AT certificate is issued from CA certificate ***"); + setverdict(pass, "Certificates are well-formated and issuer chain is correct"); + } else { + log("*** " & testcasename() & ": FAIL: Invalid AA certificate ***"); + setverdict(fail); + } // End of 'alt' statement + } else { + log("*** " & testcasename() & ": FAIL: Invalid CA certificate issuer ***"); + setverdict(fail); + } + + // Postamble + + } // End of testcase TC_SEC_ITSS_SND_CERT_03_BV + + /** + * @desc Check that the rectangular certificate validity region of the subordinate certificate is well formed + * and inside the validity region of the issuing certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION + * Config Id: CF01 + * Initial conditions: + * with { + * the CA is authorized with AA certificate + * containing toBeSigned + * containing region + * indicating REGION + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the AT certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing region + * containing rectangularRegion + * containing items of type RectangularRegion + * containing northwest + * indicating a point inside the REGION + * and containing southeast + * indicating a point on the south from northwest + * and inside the REGION + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_04_BV + * @reference ETSI TS 103 097 [1], Clauses 6 + */ + testcase TC_SEC_ITSS_SND_CERT_04_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_RECTANGULAR_REGION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, + mw_geographicRegion_rectangular + )))))))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_areRectanglesInside(v_signerIdentifier.certificate[v_counter].toBeSigned.region.rectangularRegion, v_aa_certificate[0].toBeSigned.region.rectangularRegion) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_04_BV + + /** + * @desc Check that the IUT supports at least 8 entries in the rectangular certificate validity + * region in the AT certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_C_AT_8) + * containing toBeSigned + * containing region + * containing rectangularRegion + * containing 8 entries + * containing one entry (ENTRY) + * containing current IUT position + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing headerInfo + * containing generationLocation + * indicating position inside the ENTRY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_05_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.17 + */ + testcase TC_SEC_ITSS_SND_CERT_05_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_cert; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_RECTANGULAR_REGION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_RECTANGULAR_REGION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := cc_iutCert_A; // FIXME Review certificate to be used + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, + mw_geographicRegion_rectangular + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_05_BV + + /** + * @desc Check that the rectangular certificate validity region of the subordinate certificate is well formed + * and inside the validity region of the issuing certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION + * Config Id: CF01 + * Initial conditions: + * with { + * the CA is authorized with AA certificate + * containing toBeSigned + * containing region + * indicating REGION + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the AT certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing region + * containing polygonalRegion + * containing more than 2 items of type TwoDLocation + * indicating points inside the REGION + * and indicating unintercepting segments + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_06_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.21, 6.4.17,5.1.2.4 + */ + testcase TC_SEC_ITSS_SND_CERT_06_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_POLYGONAL_REGION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + // Wait for the message with the certificate to retrieve the AA digest. + // Ask for the chain, containing AT and AA certificate + // Check AA Certificate + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, + mw_geographicRegion_polygonal + )))))))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_arePolygonsInside(v_signerIdentifier.certificate[v_counter].toBeSigned.region.polygonalRegion, v_aa_certificate[0].toBeSigned.region.polygonalRegion) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_06_BV + + /** + * @desc Check that the IUT supports at least 8 entries in the polygonal certificate validity + * region in the AT certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_D_AT_8) + * containing toBeSigned + * containing region + * containing polygonalRegion + * containing 8 entries + * indicating polygon P + * and the IUT’s position is inside the polygon P + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing headerInfo + * containing generationLocation + * indicating position inside the P + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_07_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.17 + */ + testcase TC_SEC_ITSS_SND_CERT_07_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_cert; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_POLYGONAL_REGION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_POLYGONAL_REGION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := cc_iutCert_A; // FIXME Review certificate to be used + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + ?, + mw_toBeSignedCertificate_at( + -, -, -, + mw_geographicRegion_polygonal + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_07_BV + + /** + * @desc Check that the identified certificate validity region contains values that correspond + * to numeric country codes as defined by United Nations Statistics Division [6] in October 2013. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT issued the certificate + * containing toBeSigned + * containing region + * containing identifiedRegion + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the AT certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing region + * containing identifiedRegion + * containing 1 entry of type IdentifiedRegion + * containing countryOnly + * indicating integer representation of the identifier of country or area + * or containing countryAndRegions + * containing countryOnly + * indicating integer representation of the identifier of country or area + * or containing countryAndSubregions + * containing country + * indicating integer representation of the identifier of country or area + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_08_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.23 + */ + testcase TC_SEC_ITSS_SND_CERT_08_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_IDENTIFIED_REGION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, + mw_geographicRegion_identified + )))))))) -> value v_geoNwInd { + tc_ac.stop; + // FIXME To be continued + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_08_BV + + /** + * @desc Check that the IUT supports at least 8 points in the polygonal certificate validity region + * in the AT certificate. + *
+ * Pics Selection: PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_E_AT_8) + * containing toBeSigned + * containing region + * containing polygonalRegion + * containing 8 entries + * containing one of the items (I) + * containing current IUT position + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured DENM + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing headerInfo + * containing generationLocation + * indicating position inside I + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_09_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.17 + */ + testcase TC_SEC_ITSS_SND_CERT_09_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var GeoNetworkingInd v_geoNwInd; + var HeaderInfo v_headerInfo; + var SignerIdentifier v_signerIdentifier; + var Certificate v_cert; + var ItsDenm v_denmComponent; + + // Test control + if (not(PICS_GN_SECURITY) or not(PICS_SEC_IDENTIFIED_REGION)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_SEC_IDENTIFIED_REGION' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := cc_iutCert_A; // FIXME Review certificate to be used + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + v_denmComponent := f_triggerDenmEvent(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + ?, + mw_toBeSignedCertificate_at( + -, -, -, + mw_geographicRegion_polygonal + ) + ) + ) + ) + ), + mw_geoNwBroadcastPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgHeaderInfo(f_getSecuredMessage(v_geoNwInd.msgIn), v_headerInfo) and f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var ThreeDLocation v_location := { v_headerInfo.generationLocation.latitude, v_headerInfo.generationLocation.longitude, v_headerInfo.generationLocation.elevation }; + var integer v_counter; + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate); v_counter := v_counter + 1) { + if (f_isLocationInsideRegion(v_signerIdentifier.certificate[v_counter].toBeSigned.region, v_location) == false) { + break; + } + } // End of of for statement + if (v_counter == lengthof(v_signerIdentifier.certificate)) { + log("*** " & testcasename() & ": PASS: AT certificate is inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: AT certificate is not inside the validity region of the issuing certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_denm + ), + mw_signerIdentifier_digest // containing digest + ) + ), + mw_geoNwBroadcastPacket + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_cancelDenmEvent(v_denmComponent); + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_09_BV + + // TODO TP_SEC_ITSS_SND_CERT_10_BV + + /** + * @desc Check that the validityPeriod of the subordinate certificate is inside the validityPeriod + * of the issuing certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the CA is authorized with AA certificate + * containing toBeSigned + * containing validityPeriod + * containing start + * indicating X_START_VALIDITY_AA + * and containing duration + * indicating X_START_DURATION_AA + * } + * ensure that { + * when { + * the IUT issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing signedData + * containing validityPeriod + * containing start + * indicating X_START_VALIDITY_AT ( X_START_VALIDITY_AT >= X_START_VALIDITY_AA ) + * and containing duration + * X_DURATION_AT <= X_START_VALIDITY_AA + X_DURATION_AA + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_11_BV + * @reference ETSI TS 103 097 [1], Clauses 5.2 & 7.1.3 + * @reference IEEE 1609.2 [2], Clauses 5.3.1, 6.3.4, 6.3.29, 6.3.30, 6.3.31 + */ + testcase TC_SEC_ITSS_SND_CERT_11_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var EtsiTs103097Certificate v_aa_certificate; + var EtsiTs103097Certificate v_at_certificate; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + + // Test adapter configuration + + // Preamble + f_readCertificate(cc_taCert_CC_AA, v_aa_certificate); // TODO Use PIXIT as array of strings to change + // certificates to be checked + f_readCertificate(cc_iutCert_A, v_at_certificate); + + // Test Body + // 1. Check certificate format + if ( + (v_aa_certificate.toBeSigned.validityPeriod.start_ >= v_at_certificate.toBeSigned.validityPeriod.start_) and + (f_duration2time(v_at_certificate.toBeSigned.validityPeriod.duration) <= (v_aa_certificate.toBeSigned.validityPeriod.start_ + f_duration2time(v_aa_certificate.toBeSigned.validityPeriod.duration))) + ) { + log("*** " & testcasename() & ": PASS: Validity periods are correct ***"); + setverdict(pass); + } else { + log("*** " & testcasename() & ": FAIL: Invalid validity period ***"); + setverdict(fail); + } // End of 'alt' statement + + // Postamble + + } // End of testcase TC_SEC_ITSS_SND_CERT_11_BV + + /** + * @desc Check that the certificate signature contains ECC point of type set to + * either compressed_lsb_y_0, compressed_lsb_y_1 or x_coordinate_only. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (X_CERTIFICATE) + * } + * ensure that { + * when { + * the IUT issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing signature + * containing X_SIGNATURE + * containing rSig + * containing x-only + * or containing compressed-y-0 + * or containing compressed-y-1 + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_12_BV + * @reference IEEE 1609.2 [2], Clauses 6.3.29, 6.3.30, 6.3.31 + */ + testcase TC_SEC_ITSS_SND_CERT_12_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaNistP256( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_x_only + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaNistP256( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaNistP256( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP256r1( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_x_only + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP256r1( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP256r1( + mw_ecdsaP256Signature( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP384r1( + mw_ecdsaP384Signature( + mw_eccP384CurvePoint_x_only + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP384r1( + mw_ecdsaP384Signature( + mw_eccP384CurvePoint_compressed_y_0 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + -, + mw_signature_ecdsaBrainpoolP384r1( + mw_ecdsaP384Signature( + mw_eccP384CurvePoint_compressed_y_1 + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Message with wrong signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CERT_12_BV + + /** + * @desc Check that the certificate verification key contains ECC point of type set to either + * compressed_lsb_y_0, compressed_lsb_y_1 or uncompressed. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * + * } + * ensure that { + * when { + * the IUT issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * containing uncompressed + * or containing compressed-y-0 + * or containing compressed-y-1 + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_13_BV + * @reference IEEE 1609.2 [2], Clauses 6.3.29, 6.3.30, 6.3.31 + */ + testcase TC_SEC_ITSS_SND_CERT_13_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaNistP256( + mw_eccP256CurvePoint_uncompressed + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaNistP256( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaNistP256( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaBrainpoolP256r1( + mw_eccP256CurvePoint_uncompressed + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaBrainpoolP256r1( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaBrainpoolP256r1( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaBrainpoolP384r1( + mw_eccP384CurvePoint_uncompressed + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaBrainpoolP384r1( + mw_eccP384CurvePoint_compressed_y_0 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P384R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, + mw_verificationKeyIndicator_verificationKey( + mw_publicVerificationKey_ecdsaBrainpoolP384r1( + mw_eccP384CurvePoint_compressed_y_1 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ) + ) + ))))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Message with wrong signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CERT_13_BV + + /** + * @desc Check that the certificate encryption key contains ECC point of type set to + * either compressed_lsb_y_0, compressed_lsb_y_1 or uncompressed. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * + * } + * ensure that { + * when { + * the IUT issued the certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing encryptionKey + * containing publicKey + * containing uncompressed + * or containing compressed-y-0 + * or containing compressed-y-1 + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_14_BV + * @reference IEEE 1609.2 [2], Clauses 6.4.38 + */ + testcase TC_SEC_ITSS_SND_CERT_14_BV() runs on ItsGeoNetworking system ItsSecSystem { + // Local variables + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, -, -, + mw_encryptionKey( + -, + mw_publicEncryptionKey_eciesNistP256( + mw_eccP256CurvePoint_uncompressed + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, -, -, + mw_encryptionKey( + -, + mw_publicEncryptionKey_eciesNistP256( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_NIST_P256 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, -, -, + mw_encryptionKey( + -, + mw_publicEncryptionKey_eciesNistP256( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, -, -, + mw_encryptionKey( + -, + mw_publicEncryptionKey_eciesBrainpoolP256r1( + mw_eccP256CurvePoint_uncompressed + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, -, -, + mw_encryptionKey( + -, + mw_publicEncryptionKey_eciesBrainpoolP256r1( + mw_eccP256CurvePoint_compressed_y_0 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [PICS_SEC_BRAINPOOL_P256R1 == true] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at( + -, -, -, -, -, + mw_encryptionKey( + -, + mw_publicEncryptionKey_eciesBrainpoolP256r1( + mw_eccP256CurvePoint_compressed_y_1 + ) + ) + ) + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Message with well-formated signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ) + ) + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Message with wrong signature received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest + ) + ), + mw_geoNwShbPacket + ))) -> value v_geoNwInd { + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Message with certificate not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + } // End of testcase TC_SEC_ITSS_SND_CERT_14_BV + + /** + * @desc Check the certificate signature. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the CA is authorized with AA certificate + * containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the AT certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing issuer + * referencing the certificate + * containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * indicating KEY + * and containing signature + * containing X_SIGNATURE + * verifiable using KEY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_15_BV + * @reference ETSI TS 103 097 [1], Clauses 6 + */ + testcase TC_SEC_ITSS_SND_CERT_15_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // Get the AT certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ))))))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + if (f_verifyCertificateSignatureWithIssuingCertificate(v_signerIdentifier.certificate[0], v_aa_certificate[0]) == true) { + log("*** " & testcasename() & ": PASS: AT certificate is signed by AA certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: AT/AA certificate signature mismatch ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_15_BV + + /** + * @desc Check the certificate signature. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the CA is authorized with AA certificate + * containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the AT certificate + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing issuer + * referencing the certificate + * containing toBeSigned + * containing verifyKeyIndicator + * containing verificationKey + * containing X_KEY + * indicating KEY + * and containing signature + * containing X_SIGNATURE + * verifiable using KEY + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_16_BV + * @reference ETSI TS 103 097 [1], Clauses 6 + */ + testcase TC_SEC_ITSS_SND_CERT_16_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // Get the AT certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ))))))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var integer v_counter; + var charstring v_psid; + var template charstring v_found_pattern; // Used in regex to verify that 'v_psid' was not found before + + // Check in AA certificate + var charstring v_psid_found_aa := ";"; // Used to build the list of the Psid already processed + + for (v_counter := 0; v_counter < lengthof(v_aa_certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { + v_psid := int2str(v_aa_certificate[0].toBeSigned.appPermissions[v_counter].psid); + v_found_pattern := pattern "*({v_psid})*"; + if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { + break; // v_psid exist at least 2 times, uniqueness is not verified + } + v_psid_found_aa := v_psid_found_aa & v_psid & ";"; + } // End of 'for' statement + if (v_counter == lengthof(v_aa_certificate[0].toBeSigned.appPermissions)) { + var charstring v_psid_found_at := ";"; // Used to build the list of the Psid already processed + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { + v_psid := int2str(v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].psid); + v_found_pattern := pattern "*({v_psid})*"; + if (regexp(v_psid_found_at, v_found_pattern, 0) == v_psid) { + log("*** " & testcasename() & ": FAIL: AT certificate contains duplicated Psid ***"); + break; // v_psid exist at least 2 times, uniqueness is not verified + } else if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { + log("*** " & testcasename() & ": FAIL: AT certificate contains a Psid not contained in AA certificate ***"); + break; + } + v_psid_found_at := v_psid_found_at & v_psid & ";"; + } // End of 'for' statement + if (v_counter == lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions)) { + log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: AA certificate contains duplicated Psid ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_16_BV + + /** + * @desc Check that IUT supports at least 8 items in the appPermissions component of the certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT_A8) + * containing toBeSigned + * containing appPermissions + * containing 8 entries + * indicating the last item + * containing psid + * indicating the ‘AID_CAM’ + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing psid + * indicating 'AID_CAM' + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_17_BV + * @reference ETSI TS 103 097 [1], Clauses 6 + */ + testcase TC_SEC_ITSS_SND_CERT_17_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; // FIXME + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ))))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: ATS_AID was received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_17_BV + + /** + * @desc Check that all PSID entries of the certIssuePermissions component of the certificate are unique. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the certificate + * containing toBeSigned + * containing certIssuePermissions + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing toBeSigned + * containing certIssuePermissions + * containing items of type PsidGroupPermissions + * and containing subjectPermissions + * containing explicit + * containing items of type PsidSspRange + * containing psid + * indicating unique values in this sequence + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_18_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.28 & 5.1.2.4 + */ + testcase TC_SEC_ITSS_SND_CERT_18_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var integer v_counter; + var integer v_counter1; + var charstring v_psid; + var charstring v_psid_found_aa := ";"; // Used to build the list of the Psid already processed + var template charstring v_found_pattern; // Used in regex to verify that 'v_psid' was not found before + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + if (not(ispresent(v_aa_certificate[0].toBeSigned.certIssuePermissions))) { + log("*** " & testcasename() & ": FAIL: PsidGroupPermissions required in AA certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + for (v_counter := 0; v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions); v_counter := v_counter + 1) { + if (match(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter], mw_psidGroupPermissions(mw_subjectPermissions_explicit)) == false){ + break; + } + for (v_counter1 := 0; v_counter1 < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit); v_counter1 := v_counter1 + 1) { + v_psid := int2str(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit[v_counter1].psid); + v_found_pattern := pattern "*({v_psid})*"; + if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { + break; // v_psid exist at least 2 times, uniqueness is not verified + } + v_psid_found_aa := v_psid_found_aa & v_psid & ";"; + } // End of 'for' statement + if (v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit)) { + break; + } + } // End of 'for' statement + if (v_counter == lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions)) { + log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": FAIL: Wrong PsidGroupPermissions in AA certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_18_BV + + /** + * @desc Check that IUT supports at least 8 items in the certIssuePermissions component of the certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * the IUT is authorized with AT certificate (CERT_IUT_A_AT_A8) + * containing appPermissions + * conformed to the certIssuePermissions + * issued by AA certificate (CERT_IUT_A_AA_C8) + * containing toBeSigned + * containing certIssuePermissions + * containing 8 entries + * indicating the last item + * containing psid + * indicating the ‘AID_CAM’ + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT is requested to send a secured CAM + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing containing content + * containing signedData + * containing tbsData + * containing headerInfo + * containing psid + * indicating 'AID_CAM' + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_19_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.8 + */ + testcase TC_SEC_ITSS_SND_CERT_19_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + vc_hashedId8ToBeUsed := PICS_CERTFICATES_FOI[PICS_CERTFICATES_VAR].certificate_id; // FIXME + f_cf01Up(); + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ) + ))))) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: ATS_AID was received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_19_BV + + /** + * @desc Check that all PSID entries of the appPermissions component of the certificate are also + * contained in the certIssuePermissions component in the issuing certificate. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the certificate + * containing toBeSigned + * containing certIssuePermissions + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing issuer + * referenced to the certificate + * containing toBeSigned + * containing certIssuePermissions + * containing items of type PsidGroupPermissions + * containing eeType + * indicating app(0) + * and containing subjectPermissions + * containing explicit + * containing items of type PsidSspRange + * indicating X_PSID_RANGE_LIST + * or containing all + * and containing toBeSigned + * containing appPermissions + * containing items of type PsidSsp + * containing psid + * contained in the X_PSID_RANGE_LIST + * as a psid + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_20_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.28 & 5.1.2.4 + */ + testcase TC_SEC_ITSS_SND_CERT_20_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // Get the AT certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ))))))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + var integer v_counter; + var integer v_counter1; + var charstring v_psid; + var charstring v_psid_found_aa := ";"; // Used to build the list of the Psid already processed + var template charstring v_found_pattern; // Used in regex to verify that 'v_psid' was not found before + + // Check in AA certificate + if (not(ispresent(v_aa_certificate[0].toBeSigned.certIssuePermissions))) { + log("*** " & testcasename() & ": FAIL: PsidGroupPermissions required in AA certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + for (v_counter := 0; v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions); v_counter := v_counter + 1) { + if (match(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter], mw_psidGroupPermissions(mw_subjectPermissions_explicit)) == false){ + break; + } + for (v_counter1 := 0; v_counter1 < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit); v_counter1 := v_counter1 + 1) { + v_psid := int2str(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit[v_counter1].psid); + v_found_pattern := pattern "*({v_psid})*"; + if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { + break; // v_psid exist at least 2 times, uniqueness is not verified + } + v_psid_found_aa := v_psid_found_aa & v_psid & ";"; + } // End of 'for' statement + if (v_counter < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter].subjectPermissions.explicit)) { + break; + } + } // End of 'for' statement + if (v_counter == lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions)) { + /*var charstring v_psid_found_at := ";"; // Used to build the list of the Psid already processed + + for (v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { + v_psid := int2str(v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].psid); + v_found_pattern := pattern "*({v_psid})*"; + if (regexp(v_psid_found_at, v_found_pattern, 0) == v_psid) { + log("*** " & testcasename() & ": FAIL: AT certificate contains duplicated Psid ***"); + break; // v_psid exist at least 2 times, uniqueness is not verified + } else if (regexp(v_psid_found_aa, v_found_pattern, 0) == v_psid) { + log("*** " & testcasename() & ": FAIL: AT certificate contains a Psid not contained in AA certificate ***"); + break; + } + v_psid_found_at := v_psid_found_at & v_psid & ";"; + } // End of 'for' statement + if (v_counter == lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions)) { + log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + }*/ + + + + + + + + + + + + + + + + + log("*** " & testcasename() & ": PASS: Psid are unique in certificates ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": FAIL: Wrong PsidGroupPermissions in AA certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_20_BV + + /** + * @desc Check that SSP field in each entry of the appPermissions component of the AT certificate is + * equal to or a subset of the SSP Range in the corresponding issuing entry. + *
+ * Pics Selection: PICS_GN_SECURITY + * Config Id: CF01 + * Initial conditions: + * with { + * + * } + * Expected behaviour: + * ensure that { + * when { + * the IUT issued the certificate + * containing toBeSigned + * containing certIssuePermissions + * } then { + * this certificate is of type EtsiTs103097Certificate + * containing issuer + * referenced to the certificate + * containing toBeSigned + * containing certIssuePermissions + * containing items of type PsidGroupPermissions + * containing eeType + * indicating app(0) + * and containing explicit + * containing psid + * indicating X_PSID_AA + * and containing sspRange + * indicating X_SSP_AA [ X_PSID_AA ] + * or containing all + * and containing toBeSigned + * containing appPermissions + * containing items of type PsidSsp + * containing psid + * indicating value equal to X_PSID_AA + * and containing ssp + * indicating value permitted by X_SSP_AA [ X_PSID_AA ] + * } + * } + *+ * + * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_21_BV + * @reference ETSI TS 103 097 [1], Clauses 6.4.28 & 5.1.2.4 + */ + testcase TC_SEC_ITSS_SND_CERT_21_BV() runs on ItsGeoNetworking system ItsSecSystem { + + // Local variables + var SequenceOfCertificate v_aa_certificate; + var SignerIdentifier v_signerIdentifier; + var GeoNetworkingInd v_geoNwInd; + + // Test control + if (not(PICS_GN_SECURITY)) { + log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); + stop; + } + + // Test component configuration + f_cf01Up(); // Initialise IUT with CERT_IUT_A_AT signed with CERT_IUT_A_AA + + // Test adapter configuration + + // Preamble + f_prNeighbour(); + log("*** " & testcasename() & ": INFO: Wait for certificate and ask for AA certificate ***"); + tc_ac.start; + f_askAndWaitForCertificateChain(v_aa_certificate, f_generateDefaultCam()); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_certificate( // Get the AT certificate + mw_etsiTs103097Certificate( + -, + mw_toBeSignedCertificate_at + ))))))) -> value v_geoNwInd { + tc_ac.stop; + if (f_getMsgSignerIdentifier(f_getSecuredMessage(v_geoNwInd.msgIn), v_signerIdentifier)) { + // Check in AA certificate + if (not(ispresent(v_aa_certificate[0].toBeSigned.certIssuePermissions))) { + log("*** " & testcasename() & ": FAIL: PsidGroupPermissions required in AA certificate ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { // Parse AT SSP and compared it in AA + for (var integer v_counter := 0; v_counter < lengthof(v_signerIdentifier.certificate[0].toBeSigned.appPermissions); v_counter := v_counter + 1) { + var Psid v_psid := v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].psid; + var ServiceSpecificPermissions v_ssp := v_signerIdentifier.certificate[0].toBeSigned.appPermissions[v_counter].ssp; + for (var integer v_counter1 := 0; v_counter1 < lengthof(v_aa_certificate[0].toBeSigned.certIssuePermissions); v_counter1 := v_counter1 + 1) { + var SequenceOfPsidSspRange v_psidSsps; + var integer v_counter2; + if (match(v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter], mw_psidGroupPermissions(mw_subjectPermissions_explicit)) == false){ + log("*** " & testcasename() & ": FAIL: AA certificate field certIssuePermissions does not match ***"); + f_setVerdict(e_error); + break; + } + v_psidSsps := v_aa_certificate[0].toBeSigned.certIssuePermissions[v_counter1].subjectPermissions.explicit; + for (v_counter2 := 0; v_counter2 < lengthof(v_psidSsps); v_counter2 := v_counter2 + 1) { + if (v_psidSsps[v_counter2].psid == v_psid) { + if (ispresent(v_psidSsps[v_counter2].sspRange)) { + var SspRange v_sspRange := v_psidSsps[v_counter2].sspRange; + // Compare SSps + log(" Compare '", v_sspRange, "' with '", v_ssp, "'"); + if (not(ischosen(v_sspRange.all_))) { + if (ischosen(v_sspRange.opaque) and ischosen(v_ssp.opaque)) { + // TODO How to compare values? + } else if (ischosen(v_sspRange.bitmapSspRange) and ischosen(v_ssp.bitmapSsp)) { + // TODO How to compare values? + } else { + log("*** " & testcasename() & ": FAIL: SSPs do not match ***"); + f_setVerdict(e_error); + break; + } + } // else All rights are sey, nothing to check + } else { + log("*** " & testcasename() & ": FAIL: AA certificate field SspRange field is missging ***"); + f_setVerdict(e_error); + break; + } + break; + } + } // End of 'for' statement + if (v_counter2 == lengthof(v_psidSsps)) { // Psid not found + log("*** " & testcasename() & ": FAIL: psid ", v_psid, " not found in AT certificate ***"); + f_setVerdict(e_error); + break; + } + } // End of 'for' statement + } // End of 'for' statement + if (getverdict == fail) { + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } else { + log("*** " & testcasename() & ": PASS: SSP rage are well configured ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + } else { + log("*** " & testcasename() & ": FAIL: IMPOSSIBLE!!! CAM generation location or certificate region restriction header field does not exist ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); + } + } + [] geoNetworkingPort.receive( + mw_geoNwInd( + mw_geoNwSecPdu( + mw_etsiTs103097Data_signed( + mw_signedData( + -, + mw_toBeSignedData( + mw_signedDataPayload, + mw_headerInfo_cam + ), + mw_signerIdentifier_digest // containing digest + ) + ) + ))) { + log("*** " & testcasename() & ": INFO: Generation of CAM messages including digest ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); + } + } // End of 'alt' statement + + // Postamble + f_poNeighbour(); + f_cf01Down(); + + } // End of testcase TC_SEC_ITSS_SND_CERT_21_BV + +// /** +// * @desc Sending behaviour test cases for AA certificate profil +// * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7.7 AA certificate profile +// */ +// group AA_Certificates { +// +// /** +// * @desc Check that the subject_type of the AA certificate is set to authorization_authority +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] +// * containing subject_info.subject_type +// * indicating 'authorization_authority' (2) +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_01_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.4 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// if (not match(v_chain[lengthof(v_chain) - 2], mw_aa_certificate)) { +// log("*** " & testcasename() & ": FAIL: AA certificate not found in the chain[last-1] ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: AA certificate was found in the chain ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_01_01_BV +// +// /** +// * @desc Check that the AA certificsate subject_name variable-length vector contains 32 bytes maximum +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] +// * containing subject_info.subject_name +// * indicating length <= 32 bytes +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_02_01_BV +// * @reference ETSI TS 103 097 [1] Clause 6.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_02_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// // Verified automatically on decoding +// if (lengthof(v_chain[lengthof(v_chain) - 2].subject_info.subject_name) > 32 ) { +// log("*** " & testcasename() & ": FAIL: Subject name of the AA certificate is too long ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: Subject name of the AA certificate is good ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_02_01_BV +// +// /** +// * @desc Check that signer_info type of AA certificates is set to 'certificate_digest_with_sha256' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] +// * containing signer_info +// * containing type +// * indicating 'certificate_digest_with_sha256' +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_03_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.4 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_03_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// if (not match(v_aa_cert, mw_aa_certificate(mw_signerIdentifier_digest))) { +// log("*** " & testcasename() & ": FAIL: AA certificate not signed by digest ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: AA certificate is signed by digest ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_03_01_BV +// +// /** +// * @desc Check that AA certificate is signed by Root CA or other authority +// * @remark There is no clear specification that AA cert shall be signed by the Root CA only +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates +// * containing certificates[last-1] +// * containing signer_info +// * containing type +// * indicating 'certificate_digest_with_ecdsap256' +// * and containing digest +// * referencing to the trusted certificate +// * containing subject_info.subject_type +// * indicating 'root_ca' +// * or indicating 'authorisation_authority' +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_04_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 6.3 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_04_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert, v_ca_cert; +// var SignerInfo v_si; +// var HashedId8 v_ca_digest; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// // Process signerInfo field +// if ( true != f_getCertificateSignerInfo(v_aa_cert, v_si)) { +// log("*** " & testcasename() & ": FAIL: AA certificate must contain SignerInfo fields ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// if (v_si.type_ == e_certificate_digest_with_sha256) { +// log("*** " & testcasename() & ": FAIL: AA certificate must contain SignerInfo field containing a certificate_digest_with_ecdsap256 ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// f_readCertificate(cc_taCert_CA, v_ca_cert); +// v_ca_digest := f_calculateDigestFromCertificate(v_ca_cert); +// +// if (not match(v_aa_cert, mw_aa_certificate(mw_signerIdentifier_digest(v_ca_digest)))) { +// log("*** " & testcasename() & ": FAIL: AA certificate signer info doesn't reference the CA certificate from the chain ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if (not f_verifyCertificateSignatureWithIssuingCertificate(v_aa_cert, v_ca_cert)) { +// log("*** " & testcasename() & ": FAIL: AT certificate signature verification failed ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// log("*** " & testcasename() & ": PASS: AA certificate was signed by the CA certificate from the given chain ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_04_01_BV +// +// /** +// * @desc Check that all neccesary subject attributes are present and arranged in accesing order +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] +// * containing subject_attributes [0..N] +// * indicating subject_attributes[n].type < subject_attributes[n+ 1].type +// * containing subject_attributes['verification_key'] +// * containing subject_attributes['assurance_level'] +// * containing subject_attributes['its_aid_list'] +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_05_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 6.1, 7.4.1 and 7.4.4 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_05_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var SubjectAttributes v_attrs; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// if (not match(v_chain[lengthof(v_chain) - 2], +// mw_aa_certificate(?, +// superset(mw_subject_attribute_verification_key, +// mw_subject_attribute_assurance_level, +// mw_subject_attribute_its_aid_list))) +// ) { +// log("*** " & testcasename() & ": FAIL: Required subject attribute of AA certificate is not found ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// v_attrs := v_chain[lengthof(v_chain) - 2].subject_attributes; +// for (var integer v_counter := 1; v_counter < lengthof(v_attrs); v_counter := v_counter + 1 ) { +// if (v_attrs[v_counter].type_ <= v_attrs[v_counter-1].type_) { +// log("*** " & testcasename() & ": FAIL: AA certificate subject attributes are not arranged in accening order ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } +// +// log("*** " & testcasename() & ": PASS: All required AA certificate subject attributes are presents ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_05_01_BV +// +// /** +// * @desc Check that all AIDs containing in the its_aid_list in AA certificate are unique +// * Check that AID list contains not more then 31 items +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] +// * containing subject_attributes['its_aid_list'] +// * containing its_aid_list[0..N] +// * containing no more then 31 unique item +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_08_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 7.4.4 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_08_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert; +// var SubjectAttribute v_sa; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// if (f_getCertificateSubjectAttribute(v_aa_cert, e_its_aid_list, v_sa)) { +// +// if (lengthof(v_sa.attribute.its_aid_list) > 31) { +// log("*** " & testcasename() & ": FAIL: ITS-AID list contains " & int2str(lengthof(v_sa.attribute.its_aid_list)) & " items (>31) ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// for (var integer v_counter :=0; v_counter < lengthof(v_sa.attribute.its_aid_list); v_counter := v_counter + 1) { +// for (var integer j :=0; j < lengthof(v_sa.attribute.its_aid_list); j := j + 1) { +// if (v_counter != j and v_sa.attribute.its_aid_list[v_counter] == v_sa.attribute.its_aid_list[j]) { +// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_sa.attribute.its_aid_list[j]) & " is duplicated in AA certificate ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } +// } // End of 'for' statement +// } else { +// log("*** " & testcasename() & ": FAIL: AA certificate does not contain its_aid_list subject attribute ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// log("*** " & testcasename() & ": PASS: Time validity restriction of the AA certificate is good ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_08_01_BV +// +// /** +// * @desc Check that all mandatory validity restrictions are present and arranged in ascending order +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates +// * containing certificates[last-1] +// * containing validity_restrictions[0..N] +// * indicating validity_restrictions[n].type < validity_restrictions[n+1].type +// * and containing validity_restrictions['time_start_and_end'] +// * and not containing validity_restrictions['time_end'] +// * and not containing validity_restrictions['time_start_and_duration'] +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_10_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 6.1, 6.7 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_10_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var SequenceOfCertificate v_chain; +// var Certificate v_cert; +// var integer v_previousValidityRestrictionType; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// +// // Test Body +// // Process certificate[last - 1] +// v_cert := v_chain[lengthof(v_chain) - 2]; +// if (match( +// v_cert.validity_restrictions, +// superset( +// mw_validity_restriction_time_end, +// mw_validity_restriction_time_start_and_duration +// ) +// )) { +// log("*** " & testcasename() & ": FAIL: certificate[last-2] must not contain time_end and time_start_and_duration restrictions ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// for (var integer v_counter := 1; v_counter < lengthof(v_cert.validity_restrictions); v_counter := v_counter + 1) { +// // Check forbidden header +// if (v_cert.validity_restrictions[v_counter].type_ != e_time_start_and_end) { // FIXME To be reviewed +// log("*** " & testcasename() & ": FAIL: Forbidden header present"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if (v_counter > 1 ) { +// // Check that headers are ordered +// if (enum2int(v_cert.validity_restrictions[v_counter].type_) <= v_previousValidityRestrictionType) { +// // Check that header is duplicated +// if (enum2int(v_cert.validity_restrictions[v_counter].type_) == v_previousValidityRestrictionType) { +// log("*** " & testcasename() & ": FAIL: multiple instances of same header"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } else { +// log("*** " & testcasename() & ": FAIL: headers not in correct order"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } +// } +// v_previousValidityRestrictionType := enum2int(v_cert.validity_restrictions[v_counter].type_); +// } // End of 'for' statement +// +// log("*** " & testcasename() & ": PASS: Time validity restriction of the certificate[last-2] is good ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_10_01_BV +// +// /** +// * @desc Check that time_start_and_end is included in the AA certificate validation restrictions; +// * Check that end_validity is greater than start_validity +// * Check that validity restriction of AA certificate is inside the validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] { +// * containing validity_restrictions +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_AA_VALIDITY +// * containing end_validity +// * indicating END_AA_VALIDITY >=START_AA_VALIDITY +// * and containing signer_info +// * containing digest +// * referenced to the trusted certificate +// * containing validity_restrictions['time_end'] +// * containing end_validity +// * indicating value > AA_END_VALIDITY +// * or containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating value <= AA_START_VALIDITY +// * and containing end_validity +// * indicating value > AA_END_VALIDITY +// * or containing validity_restrictions['time_start_and_duration'] +// * containing start_validity +// * indicating X_START_VALIDITY <= AA_START_VALIDITY +// * and containing duration +// * indicating value > AA_END_VALIDITY - X_START_VALIDITY +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AA_11_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 7.4.4 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AA_11_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert; +// var ValidityRestriction v_vr; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// if (match (v_aa_cert.validity_restrictions, superset(mw_validity_restriction_time_end, +// mw_validity_restriction_time_start_and_duration)) +// ) { +// log("*** " & testcasename() & ": FAIL: AA certificate must not contain time_end and time_start_and_duration restrictions ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if ( true != f_getCertificateValidityRestriction(v_aa_cert, e_time_start_and_end, v_vr)) { +// log("*** " & testcasename() & ": FAIL: AA certificate must contain time_start_and_end restrictions ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if (v_vr.validity.time_start_and_end.start_validity > v_vr.validity.time_start_and_end.end_validity ) { +// log("*** " & testcasename() & ": FAIL: start validity mus not be greater then end validity in the validity restrictions of AA certificate ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// log("*** " & testcasename() & ": PASS: Time validity restriction of the AA certificate is good ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AA_11_01_BV +// +// } // End of group AA_Certificates +// +// /** +// * @desc Sending behaviour test cases for AT certificate profil +// * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7.8 AT certificate profile +// */ +// group AT_Certificates { +// +// /** +// * @desc Check that the subject_type of the AT certificate is set to 'authorization_ticket' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificate +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (1) +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_01_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var Certificate v_at_cert; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); +// tc_ac.start; +// if (not f_waitForCertificate(v_at_cert)) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (not match(v_at_cert, mw_at_certificate)) { +// log("*** " & testcasename() & ": FAIL: Message wasn't signed by AT certificate ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: AT certificate has the 'authorization_ticket' subject_type ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_01_01_BV +// +// /** +// * @desc Check that the subject_name variable-length vector is empty for AT certificates +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificates +// * containing subject_info.subject_name +// * indicating length = 0 +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_02_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_02_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var Certificate v_at_cert; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); +// tc_ac.start; +// if (not f_waitForCertificate(v_at_cert)) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (0 != lengthof(v_at_cert.subject_info.subject_name)) { +// log("*** " & testcasename() & ": FAIL: Subject name of the AT certificate is not empty ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: Subject name of the AT certificate is empty ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_02_01_BV +// +// /** +// * @desc Check that signer_info type of AT certificates is set to 'certificate_digest_with_sha256' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificate +// * containing signer_info +// * containing type +// * indicating 'certificate_digest_with_sha256' +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_03_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_03_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var Certificate v_at_cert; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); +// tc_ac.start; +// if (not f_waitForCertificate(v_at_cert)) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if ( +// not match(v_at_cert, mw_certificate(mw_signerIdentifier_digest)) +// ) { +// log("*** " & testcasename() & ": FAIL: AT certificate doesn't contain a digest of issuing cert ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: The signer info of AT certificate is a digest ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_03_01_BV +// +// /** +// * @desc Check that subject attributes are present and arranged in ascending order +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * containing certificate +// * containing subject_attributes [0..N] +// * indicating subject_attributes[n].type < subject_attributes[n+ 1].type +// * containing subject_attributes['verification_key'] +// * containing subject_attributes['assurance_level'] +// * containing subject_attributes['its_aid_ssp_list'] +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_04_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 7.4.1 and 7.4.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_04_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var Certificate v_at_cert; +// var SubjectAttributes v_attrs; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); +// tc_ac.start; +// if (not f_waitForCertificate(v_at_cert)) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (not match( +// v_at_cert, +// mw_at_certificate( +// ?, +// superset( +// mw_subject_attribute_verification_key, +// mw_subject_attribute_assurance_level, +// mw_subject_attribute_its_aid_ssp_list +// )))) { +// log("*** " & testcasename() & ": FAIL: Required subject attribute of AT certificate is not found ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// v_attrs := v_at_cert.subject_attributes; +// for (var integer v_counter := 1; v_counter < lengthof(v_attrs); v_counter := v_counter + 1 ) { +// if (v_attrs[v_counter].type_ <= v_attrs[v_counter-1].type_) { +// log("*** " & testcasename() & ": FAIL: AT certificate subject attributes are not arranged in ascending order ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } // End of 'for' statement +// +// log("*** " & testcasename() & ": PASS: All required AT certificate subject attributes are presents and arranged in ascending order ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_04_01_BV +// +// /** +// * @desc Check that time_start_and_end is included in the AT certificate validation restrictions +// * Check that time_start_and_end is inside the AA certificate time restrictions +// * Check that validity restriction of AT certificate is inside the validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last] +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (1) +// * not containing validity_restrictions['time_end'] +// * and not containing validity_restrictions['time_start_and_duration'] +// * and containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_AT_VALIDITY +// * and containing end_validity +// * indicating END_AT_VALIDITY +// * and containing certificates[last-1] +// * containing validity_restrictions['time_end'] +// * containing end_validity +// * indicating value > AT_END_VALIDITY +// * or containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating value <= AT_START_VALIDITY +// * containing end_validity +// * indicating value > AT_END_VALIDITY +// * or containing validity_restrictions['time_start_and_duration'] +// * containing start_validity +// * indicating X_START_VALIDITY <= AT_START_VALIDITY +// * and containing duration +// * indicating value > AT_END_VALIDITY - X_START_VALIDITY +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_05_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_05_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert, v_at_cert; +// var ValidityRestriction v_vr, v_aa_vr; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// v_at_cert := v_chain[lengthof(v_chain) - 1]; +// if (match ( +// v_at_cert.validity_restrictions, +// +// superset( +// mw_validity_restriction_time_end, +// mw_validity_restriction_time_start_and_duration +// ) +// )) { +// log("*** " & testcasename() & ": FAIL: AT certificate must not contain time_end and time_start_and_duration restrictions ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if ( true != f_getCertificateValidityRestriction(v_at_cert, e_time_start_and_end, v_vr)) { +// log("*** " & testcasename() & ": FAIL: AT certificate must contain time_start_and_end restrictions ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if (v_vr.validity.time_start_and_end.start_validity > v_vr.validity.time_start_and_end.end_validity ) { +// log("*** " & testcasename() & ": FAIL: start validity must not be greater then end validity in the validity restrictions of AT certificate ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if (true == f_getCertificateValidityRestriction(v_aa_cert, e_time_start_and_end, v_aa_vr)) { +// if ( +// (v_vr.validity.time_start_and_end.start_validity < v_aa_vr.validity.time_start_and_end.start_validity) or +// (v_vr.validity.time_start_and_end.end_validity > v_aa_vr.validity.time_start_and_end.end_validity) +// ) { +// log("*** " & testcasename() & ": FAIL: AT certificate time validity restriction must be inside the AA certificate time validity restriction ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } else if (true == f_getCertificateValidityRestriction(v_aa_cert, e_time_end, v_aa_vr)) { +// if (v_vr.validity.time_start_and_end.end_validity > v_aa_vr.validity.end_validity) { +// log("*** " & testcasename() & ": FAIL: AT certificate time validity restriction must be inside the AA certificate time validity restriction ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } else if (true == f_getCertificateValidityRestriction(v_aa_cert, e_time_start_and_duration, v_aa_vr)) { +// var Time64 v_end := v_aa_vr.validity.time_start_and_duration.start_validity + f_duration2time(v_aa_vr.validity.time_start_and_duration.duration_); +// if ( +// (v_vr.validity.time_start_and_end.start_validity < v_aa_vr.validity.time_start_and_duration.start_validity) or +// (v_vr.validity.time_start_and_end.end_validity > v_end) +// ) { +// log("*** " & testcasename() & ": FAIL: AT certificate time validity restriction must be inside the AA certificate time validity restriction ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } else { +// log("*** " & testcasename() & ": FAIL: Wrong AA certificate time restrictions ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// log("*** " & testcasename() & ": PASS: Time validity restriction of the AT certificate is good ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_05_01_BV +// +// /** +// * @desc Check that all AIDs containing in the its_aid_ssp_list in AT certificate are unique +// * Check that all AIDs containing in the its_aid_ssp_list in AT certificate are also containing in the +// * its_aid_list in the correspondent AA certificate +// * Check that the length of SSP of each AID is 31 octet maximum +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] +// * containing subject_info.subject_type +// * indicating 'authorization_authority' (2) +// * containing subject_attributes['its_aid_list'] +// * containing its_aid_list[0..N] +// * indicating ITS_AID_LIST_AA +// * containing certificates[last] +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (1) +// * containing subject_attributes['its_aid_ssp_list'] +// * containing its_aid_ssp_list[0..N] +// * containing its_aid_ssp_list[n] +// * containing its_aid +// * indicating unique value containing in the ITS_AID_LIST_AA +// * containing service_specific_permissions +// * indicating length <= 31 octet +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_07_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 6.9 and 7.4.2 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_07_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert, v_at_cert; +// var SubjectAttribute v_sa; +// var IntXs v_aid_list; +// var ItsAidSsps v_aid_ssp_list; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// v_at_cert := v_chain[lengthof(v_chain) - 1]; +// if (not f_getCertificateSubjectAttribute(v_aa_cert, e_its_aid_list, v_sa)) { +// log("*** " & testcasename() & ": FAIL: AA certificate does not contain its_aid_list subject attribute ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aid_list := v_sa.attribute.its_aid_list; +// +// if (not f_getCertificateSubjectAttribute(v_at_cert, e_its_aid_ssp_list, v_sa)) { +// log("*** " & testcasename() & ": FAIL: AA certificate does not contain its_aid_list subject attribute ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_aid_ssp_list := v_sa.attribute.its_aid_ssp_list; +// +// for (var integer v_counter :=0; v_counter < lengthof(v_aid_ssp_list); v_counter := v_counter + 1) { +// // Check unique +// for (var integer j :=0; j < lengthof(v_aid_ssp_list); j := j + 1) { +// if (v_counter != j and v_aid_ssp_list[v_counter].its_aid == v_aid_ssp_list[j].its_aid) { +// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_aid_ssp_list[v_counter].its_aid) & " is duplicated in AT certificate ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } // End of 'for' statement +//// if (not match(v_aid_ssp_list[v_counter], (all from v_aid_list))) { +//// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_aid_ssp_list[v_counter].its_aid) & " is not exist in AA certificate ***"); +//// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +//// } +// // TODO Not possible due to typing To be removed +//// if (lengthof(v_aid_ssp_list[v_counter].service_specific_permissions.sspContainer) > 31) { +//// log("*** " & testcasename() & ": FAIL: ITS-AID " & int2str(v_aid_ssp_list[v_counter].its_aid) & " has too long service_specific_permissions ***"); +//// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +//// } +// } // End of 'for' statement +// +// log("*** " & testcasename() & ": PASS: The ITS_AID_SSP list of the AT certificate is good ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_07_01_BV +// +// /** +// * @desc Check that AT certificate is signed by AA cert +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate chain in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * containing certificates[last-1] (CERT_AA) +// * containing subject_info.subject_type +// * indicating 'authorization_authority' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * containing certificates[last] +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (1) +// * and containing signer_info[0] +// * containing type +// * indicating 'certificate_digest_with_sha256' +// * containing digest +// * referencing to CERT_AA +// * and containing signature +// * verifiable using KEY +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_08_01_BV +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_08_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var SequenceOfCertificate v_chain; +// var Certificate v_aa_cert, v_at_cert; +// var HashedId8 v_aa_digest; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Request and waiting for the message containing certificate chain ***"); +// tc_ac.start; +// if (not f_askAndWaitForCertificateChain(v_chain, f_generateDefaultCam())) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (lengthof(v_chain) < 2) { +// log("*** " & testcasename() & ": FAIL: Certificate chain is too short ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_at_cert := v_chain[lengthof(v_chain) - 1]; +// v_aa_cert := v_chain[lengthof(v_chain) - 2]; +// v_aa_digest := f_calculateDigestFromCertificate(v_aa_cert); +// +// if (not match(v_at_cert, mw_at_certificate(mw_signerIdentifier_digest(v_aa_digest)))) { +// log("*** " & testcasename() & ": FAIL: AT certificate signer info doesn't reference the AA certificate from the chain ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// if (not f_verifyCertificateSignatureWithIssuingCertificate(v_at_cert, v_aa_cert)) { +// log("*** " & testcasename() & ": FAIL: AT certificate signature verification failed ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// log("*** " & testcasename() & ": PASS: AT certificate was signed by the AA certificate from the given chain ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_08_01_BV +// +// /** +// * @desc Check that all necessary validity restrictions are present and arranged in ascending order +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * with { +// * the IUT being in the 'authorized' state +// * the IUT being requested to include certificate in the next CAM +// * } ensure that { +// * when { +// * the IUT is requested to send a CAM +// * } then { +// * the IUT sends a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * containing certificate +// * containing subject_attributes [0..N] +// * indicating subject_attributes[n].type < subject_attributes[n+ 1].type +// * containing subject_attributes['verification_key'] +// * containing subject_attributes['assurance_level'] +// * containing subject_attributes['its_aid_ssp_list'] +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_SND_CERT_AT_10_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 6.1 +// */ +// testcase TC_SEC_ITSS_SND_CERT_AT_10_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// var Certificate v_at_cert; +// var ValidityRestriction v_vr; +// var ValidityRestrictions v_vrs; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// log("*** " & testcasename() & ": INFO: Waiting for the message containing certificate ***"); +// tc_ac.start; +// if (not f_waitForCertificate(v_at_cert)) { +// log("*** " & testcasename() & ": INCONC: Expected message not received ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); +// } +// tc_ac.stop; +// if (not match( +// v_at_cert, +// mw_at_certificate( +// mw_signerIdentifier_certificate +// ))) { +// } +// +// if (true != f_getCertificateValidityRestriction(v_at_cert.signer_info.signerInfo.certificate, e_time_start_and_end, v_vr)) { +// log("*** " & testcasename() & ": FAIL: Required 'time_start_and_end' validity_restriction attribute of AT certificate is not found ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// v_vrs := v_at_cert.signer_info.signerInfo.certificate.validity_restrictions; +// for (var integer v_counter := 1; v_counter < lengthof(v_vrs); v_counter := v_counter + 1 ) { +// if (v_vrs[v_counter].type_ <= v_vrs[v_counter-1].type_) { +// log("*** " & testcasename() & ": FAIL: AT certificate subject attributes are not arranged in ascending order ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// } // End of 'for' statement +// +// log("*** " & testcasename() & ": PASS: All required AT certificate subject attributes are presents and arranged in ascending order ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_SND_CERT_AT_10_01_BV +// +// } // End of group AT_Certificates + + } // End of group profileForCertificates + + } // End of group sendingBehavior + + /** + * @desc Receiver behaviour test cases + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3 Receiver behaviour + */ + group receiverBehavior { + + /** + * @desc Receiving behaviour test cases for CAM profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.2 CAM Profile + */ + group recvCamProfile { + +// /** +// * @desc Check that IUT accepts a well-formed Secured CAM containing certificate in signer_info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_AT_A) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields[2] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing any other header fields +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing CAM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_01_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert_A, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_01_01_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured CAM containing certificate digest of the known certificate in signer_info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * and the IUT already sent a Secured message containing certificate (CERT_TS_A_AT) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * indicating 'certificate_digest_with_sha256' +// * and containing digest +// * referencing to certificate (CERT_TS_A_AT) +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields[2] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing any other header fields +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing CAM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_01_02_BV +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_01_02_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert_A, omit, e_certificate_digest_with_sha256); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_01_02_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured CAM containing certificate chain in signer_info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates +// * containing certificate (CERT_TS_A_AA) at index 0 +// * containing subject_info.subject_type +// * indicating 'authorization_authority' +// * and containing subject_attributes['verification key'] (KEY_TS_AA) +// * and containing certificate (CERT_TS_A_AT) at index 1 +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' +// * and containing signer_info +// * containing type +// * indicating 'certificate_digest_with_sha256' +// * containing digest +// * referencing to the CERT_TS_A_AA +// * and containing signature +// * verifiable using KEY_TS_AA +// * and containing subject_attributes['verification key'] (KEY_TS_AT) +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields[2] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing any other header fields +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing CAM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY_TC_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_01_03_BV +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_01_03_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert_A, -, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_01_03_BV +// +// /** +// * @desc Check that IUT discards a Secured CAM containing protocol version set to a value less then 2 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing protocol_version +// * indicating 1 +// * } then { +// * the IUT discards a Ieee1609Dot2Data +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_02_01_BO +// * @reference ETSI TS 103 097 [1] Clause 5.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_02_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_02_01_BO +// +// /** +// * @desc Check that IUT discards a Secured CAM containing protocol version set to a value greater then 2 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing protocol_version +// * indicating 3 +// * } then { +// * the IUT discards a Ieee1609Dot2Data +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_02_02_BO +// * @reference ETSI TS 103 097 [1] Clause 5.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_02_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); // Change PX_WRONG_PROTOCOL_VERSION to 3 +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_02_02_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contains more than one element of header field type: signer_info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'signer_info' +// * and containing header_fields[2].type +// * indicating 'generation_time' +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_signer_info( +// m_signerIdentifier_certificate( +// vc_atCertificate +// )), +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_01_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields does not contain the header field type: signer_info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'generation_time' +// * and containing header_fields[1] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// if (PICS_DEBUG_ADDON) { +// f_sendCertificateAndWaitForCertificateChainRequest(cc_taCert_F, f_generateDefaultCam()); +// } +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_02_BO +// +// /** +// * @desc Check that IUT is able to receive a secured CAM if the signer_info header field is not encoded first +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[2].type +// * indicating 'signer_info' +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM, +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )) +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_03_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields doesn't contain the element of header field of type: generation_time +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_04_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields does not contain the header field type: generation_time +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_05_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contain more than one element of header field of type: its_aid +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[2] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_DENM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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_its_aid_CAM, +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_06_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contain more than one element of header field of type: its_aid +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_06a_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_06a_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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 +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_06a_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header fields are not in the ascending order according to the numbering of the enumeration +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and containing header_fields[2].type +// * indicating 'generation_time' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_07_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_its_aid_CAM, +// m_header_info_generation_time(1000 * f_getCurrentTime()) // In us +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_07_BO +// +// /** +// * @desc Check that IUT ignores the HeaderInfo generation_time_standard_deviation of received Secured CAM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * indicating TIME_1 inside the validity period of the signer certificate +// * and containing header_fields[2].type +// * indicating 'generation_time_with_standard_deviation' +// * indicating TIME_2 inside the validity period of the signer certificate +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_08_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_08_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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_generation_time_with_standard_deviation( +// m_time64WithStandardDeviation( +// 1000, // In us +// 0 +// )), +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_08_BO +// +// /** +// * @desc Check that IUT ignores the HeaderInfo generation_time_standard_deviation of received Secured CAM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * indicating TIME_1 outside the validity period of the signer certificate +// * and containing header_fields[2].type +// * indicating 'generation_time_with_standard_deviation' +// * indicating TIME_2 inside the validity period of the signer certificate +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_09_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_09_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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_generation_time_with_standard_deviation( +// m_time64WithStandardDeviation( +// 1000 * f_getCurrentTime(), // In us +// 0 +// )), +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_09_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing the expiry_time HeaderInfo +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * indicating CURRENT_TIME +// * and containing header_fields[2] +// * containing type +// * indicating 'expiration' +// * and containing expiry_time +// * indicating CURRENT_TIME + 1h +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_10_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_10_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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( +// f_getCurrentTime() - 3600/*1h*/ +// ), +// m_header_info_its_aid_CAM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_10_BO +// +// /** +// * @desc Check that IUT ignores the HeaderInfo generation_location of received Secured CAM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * indicating certificate +// * and containing certificate (CERT_TS_AT_B) +// * containing validity_restrictions['region'] +// * containing region (X_CERT_REGION) +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[2] +// * containing type +// * indicating 'generation_location' +// * and containing generation_location +// * indicating position outside of the validity restriction of X_CERT_REGION +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_11_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_11_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_B, +// { +// m_header_info_generation_time(1000 * (f_getCurrentTime())), // In us +// m_header_info_generation_location( +// m_threeDLocation( +// PX_WGSLONGITUDE, +// PX_WGSLATITUDE, +// int2oct(0, 2) +// ) +// ), +// m_header_info_its_aid_CAM +// }, +// e_certificate, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_11_BO +// +// /** +// * @desc Check that IUT accepts the Secured CAM containing additional non-standard HeaderInfo +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[2].type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and containing header_fields[3] +// * containing type +// * indicating non-standard header field type (200) +// * and containing other_header +// * indicating non-empty data +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_12_BV +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_12_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_B, +// { +// m_header_info_generation_time(1000 * (f_getCurrentTime())), // In us +// m_header_info_generation_location( +// m_threeDLocation( +// PX_WGSLONGITUDE, +// PX_WGSLATITUDE, +// int2oct(0, 2) +// ) +// ), +// m_header_info_its_aid_CAM, +// m_header_info_unspecify +// }, +// e_certificate_digest_with_sha256, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_12_BV +// +// /** +// * @desc Check that IUT discards the Secured CAM containing the header field 'encryption_parameter and recipient_info' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[2].type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_CAM' +// * and containing header_fields[3] +// * 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 +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_04_13_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_04_13_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var Certificate v_iutATCertificate; +// var SubjectAttribute v_encryption_key; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// if ( +// (f_readCertificate(cc_iutCert_A, v_iutATCertificate) == false) or +// (f_getCertificateSubjectAttribute(v_iutATCertificate, e_encryption_key, v_encryption_key) == false) +// ) { +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout); // Set verdict to inconc +// } else { +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_B, +// { +// m_header_info_generation_time(1000 * (f_getCurrentTime())), // In us +// m_header_info_generation_location( +// m_threeDLocation( +// PX_WGSLONGITUDE, +// PX_WGSLATITUDE, +// int2oct(0, 2) +// ) +// ), +// m_header_info_its_aid_CAM, // containing header_fields[2].type +// // indicating 'its_aid' +// 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, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_04_13_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type 'self' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'self' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_05_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// if (PICS_DEBUG_ADDON) { +// f_sendCertificate(cc_taCert_F, f_generateDefaultCam()); +// } +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_signerIdentifier_self +// ), +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_self, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_01_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type certificate_digest_with_other_algorithm +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_02) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'certificate_digest_with_other_algorithm' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_05_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// if (PICS_DEBUG_ADDON) { +// f_sendCertificate(cc_taCert_F, f_generateDefaultCam()); +// } +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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_its_aid_CAM +// }, +// e_certificate_digest_with_other_algorithm, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_02_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type certificate_chain and the chain is empty +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_02) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'certificate_chain' +// * and containing certificates +// * indicating length = 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_05_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// if (PICS_DEBUG_ADDON) { +// f_sendCertificate(cc_taCert_F, f_generateDefaultCam()); +// } +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_signerIdentifier_certificates( +// { } +// )), +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate_chain, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_03_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer of type certificate_chain and the chain contains only one certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_03) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'certificate_chain' +// * and containing certificates +// * indicating length = 1 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_05_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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_its_aid_CAM +// }, +// e_certificate_chain, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_04_BO +// +// /** +// * @desc Check that IUT discards a secured CAM if the header_fields contains a signer info of unknown or reserved type +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_02) +// * containing header_fields['signer_info'] +// * containing signer.type +// * indicating X_UNKNOWN_SIGNERINFO_TYPE +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_05_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_05_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// 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_its_aid_CAM +// }, +// e_unknown, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_05_05_BO +// +// /** +// * @desc Check that IUT discards message containing generation_time before the certificate validity period +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * and containing header_fields['signer_info'].signer +// * 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 < START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_06_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var ValidityRestriction v_timeValidity; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_timeValidity); +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert0601_BO, +// { +// m_header_info_generation_time( +// (v_timeValidity.validity.time_start_and_end.start_validity - 3600) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_01_BO +// +// /** +// * @desc Check that IUT discards message containing generation_time after the certificate validity period +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * and containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_06_02_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 > END_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_06_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var ValidityRestriction v_timeValidity; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_timeValidity); +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert0602_BO, +// { +// m_header_info_generation_time( +// (v_timeValidity.validity.time_start_and_end.end_validity + 3600) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_02_BO +// +// /** +// * @desc Check that IUT discards Secured CAM if the generation_time is more than 5 minute in the past (C2C only) +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * containing header_fields ['generation_time'] +// * containing generation_time +// * indicating GEN_TIME ( CURRENT_TIME - 302sec ) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_06_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_generation_time( +// (1000 * f_getCurrentTime() - 302) * 1000 +// ) // In us +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_03_BO +// +// /** +// * @desc Check that IUT discards Secured CAM if the generation_time is more than 5 minute in the future(C2C only) +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * containing header_fields ['generation_time'] +// * containing generation_time +// * indicating GEN_TIME ( CURRENT_TIME + 302sec ) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_06_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_06_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_generation_time( +// (1000 * f_getCurrentTime() + 302) * 1000 +// ) // In us +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_06_04_BO +// +// /** +// * @desc Check that IUT discards secured CAM when its_aid value is not AID_CAM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields['its_aid'] +// * indicating AID_DENM +// * and containing payload_field { +// * containing type +// * indicating 'signed' +// * containing data +// * containing CAM payload +// * } +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_07_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_07_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_07_01_BO +// +// /** +// * @desc Check that IUT discards secured CAM when its_aid value is undefined +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields['its_aid'] +// * indicating 'AID_UNDEFINED' +// * and containing payload_field { +// * containing type +// * indicating 'signed' +// * containing data +// * containing CAM payload +// * } +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_07_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_07_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// { +// m_header_info_its_aid_Other +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_07_02_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing empty payload of type 'signed'. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing payload_field +// * containing type +// * indicating 'signed' +// * and containing data +// * indicating length 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_09_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_camReq( +// m_camMsg_vehicle_HF_BV( +// f_getTsStationId(), +// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime +// LibItsCam_Templates.m_tsPosition +// )))))); +// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); +// f_buildGnSecuredCam( +// v_securedMessage, +// m_payload_signed( +// ''O +// ) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_02_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing non-empty payload of type 'unsecured' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing payload_field +// * containing type +// * indicating 'unsecured' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_09_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_camReq( +// m_camMsg_vehicle_HF_BV( +// f_getTsStationId(), +// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime +// LibItsCam_Templates.m_tsPosition +// )))))); +// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); +// f_buildGnSecuredCam( +// v_securedMessage, +// m_payload_unsecured( +// v_gnPayload +// ) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_03_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing non-empty payload of type 'encrypted' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * and containing payload_field +// * containing type +// * indicating 'encrypted' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_09_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_camReq( +// m_camMsg_vehicle_HF_BV( +// f_getTsStationId(), +// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime +// LibItsCam_Templates.m_tsPosition +// )))))); +// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); +// f_buildGnSecuredCam( +// v_securedMessage, +// m_payload_encrypted( +// v_gnPayload +// ) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_04_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing exactly one non-empty payload of type 'signed_external' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing payload_field +// * containing type +// * indicating 'signed_external' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_09_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_camReq( +// m_camMsg_vehicle_HF_BV( +// f_getTsStationId(), +// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime +// LibItsCam_Templates.m_tsPosition +// )))))); +// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); +// f_buildGnSecuredCam( +// v_securedMessage, +// m_payload_signed_external( +// v_gnPayload +// ) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_05_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing non-empty payload of type 'signed_and_encrypted' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing payload_field +// * containing type +// * indicating 'signed_and_encrypted' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_09_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_camReq( +// m_camMsg_vehicle_HF_BV( +// f_getTsStationId(), +// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime +// LibItsCam_Templates.m_tsPosition +// )))))); +// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); +// f_buildGnSecuredCam( +// v_securedMessage, +// m_payload_signed_and_encrypted( +// v_gnPayload +// ) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_06_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing non-empty payload of unknown type +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing payload_field +// * containing type +// * indicating X_UNKNOWN_PAYLOAD_TYPE +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_09_07_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_09_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof(m_geoNwShbPacket(f_getPosition(c_compNodeC))); +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_camReq( +// m_camMsg_vehicle_HF_BV( +// f_getTsStationId(), +// f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime +// LibItsCam_Templates.m_tsPosition +// )))))); +// v_gnPayload := bit2oct(encvalue(v_gnNonSecuredPacket)); +// f_buildGnSecuredCam( +// v_securedMessage, +// m_payload_unknown( +// v_gnPayload +// ) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_09_07_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM doesn't containing the TrailerField of type 'signature' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing trailer_fields +// * not containing any instance of type TrailerField +// * containing type +// * indicating 'signature' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_10_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_10_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, -, 0); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if(i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_10_01_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing more then one instance of TrailerField of type 'signature' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing trailer_fields[0].type +// * containing type +// * indicating 'signature' +// * and containing trailer_fields[1].type +// * containing type +// * indicating 'signature' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_10_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_10_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam_Bo(cc_taCert_A, -, 2); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if(i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_10_02_BO +// +// /** +// * @desc Check that the IUT discards Secured message containing signature that is not verified using the +// * verification key from the certificate contained in the message's signer info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing header_fields ['signer_info'] +// * containing certificate +// * containing subject_attributes['verification key'] (KEY) +// * and containing trailer_fields[0] +// * containing type +// * indicating 'signature' +// * and containing signature +// * NOT verifiable using KEY +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_11_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_11_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam_Bo( +// cc_taCert_A, +// -, +// 1, +// -, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if(i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_11_01_BO +// +// /** +// * @desc Check that the IUT discards Secured message containing signature that is not verified using the +// * verification key from the certificate, referenced by the digest contained in the message's signer info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_02) +// * containing header_fields ['signer_info'].signer +// * containing digest +// * referencing to the certificate (CERT_TS_AT_A) +// * containing subject_attributes['verification key'] (KEY) +// * and containing trailer_fields[0] +// * containing type +// * indicating 'signature' +// * and containing signature +// * NOT verifiable using KEY +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_11_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_11_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_A, +// omit, +// e_certificate_digest_with_sha256 +// ); +// v_securedGnPdu.gnPacket.securedMsg.trailer_fields[0].trailerField.signature_.signature_.ecdsa_signature.s +// := not4b(v_securedGnPdu.gnPacket.securedMsg.trailer_fields[0].trailerField.signature_.signature_.ecdsa_signature.s); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if(i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_11_02_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM if the message contains trailer field of type 'signature' with reserved public key algorythms +// * @remark Values to be provided as X_RESERVED_PK_ALGORYTHM are: 240, 255 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_CAM_01) +// * containing an instance of type trailer_field +// * containing type +// * indicating 'signature' +// * and containing signature.algorithm +// * indicating X_RESERVED_PK_ALGORYTHM +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_11_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_11_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam_Bo( +// cc_taCert_A, +// -, +// 3 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if(i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_11_03_BO +// +// /** +// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'enrolment_credential' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * Expected behaviour: +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_EC_A) +// * containing subject_info.subject_type +// * indicating 'enrolment_credentials' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_12_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_EC, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_01_BO +// +// /** +// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'authorization_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * Expected behaviour: +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_AA_A) +// * containing subject_info.subject_type +// * indicating 'authorization_authority' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_12_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_AA, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_02_BO +// +// /** +// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'enrolment_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * Expected behaviour: +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * and certificate (CERT_TS_EA_A) +// * containing subject_info.subject_type +// * indicating 'enrolment_authority' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_03_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_12_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_EA, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_03_BO +// +// /** +// * @desc Check that IUT discards a Secured CAM if the signer certificate of the message contains the subject type 'root_ca' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * Expected behaviour: +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * and certificate (CERT_TS_ROOT) +// * containing subject_info.subject_type +// * indicating 'root_ca' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_12_04_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam( +// cc_taCert_CA, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_CAM +// }, +// e_certificate, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_12_04_BO +// +// /** +// * @desc Check that IUT discards secured CAM signed with the not yet valid certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_MSG_13_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_01_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AT > CURRENT_TIME +// * and containing end_validity +// * indicating END_VALIDITY_AT > START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1301_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_01_BO +// +// /** +// * @desc Check that IUT discards secured CAM signed with the expired certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_MSG_13_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_02_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AT < CURRENT_TIME +// * and containing end_validity +// * indicating END_VALIDITY_AT < START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1302_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_02_BO +// +// /** +// * @desc Check that IUT discards secured CAM when IUT location is outside the circular validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_MSG_13_03_BO_AT +// * and the IUT current location is set to CURRENT_IUT_LOCATION +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_03_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1303_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_03_BO +// +// /** +// * @desc Check that IUT discards secured CAM when IUT location is outside the rectangular validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_MSG_13_04_BO_AT +// * and the IUT current location is set to CURRENT_IUT_LOCATION +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_04_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectanglar_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_13_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1304_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_04_BO +// +// /** +// * @desc Check that IUT discards secured CAM when IUT location is outside the polygonal validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_MSG_13_05_BO_AT +// * and the IUT current location is set to CURRENT_IUT_LOCATION +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_05_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_13_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1305_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_05_BO +// +// /** +// * @desc Check that IUT discards secured CAM when IUT location is outside the identified validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_MSG_13_06_BO_AT +// * and the IUT current location is set to CURRENT_IUT_LOCATION +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_CAM_01) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_06_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CAM_13_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.1 +// */ +// testcase TC_SEC_ITSS_RCV_CAM_13_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCertMsg1306_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CAM_13_06_BO + + } // End of group recvCamProfile + + /** + * @desc Receiving behaviour test cases for DENM profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.3 DENM Profile + */ + group recvDenmProfile { + +// /** +// * @desc Check that IUT accepts a well-formed Secured DENM signed with the certificate without region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_AT_A) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and not containing validity_restrictions['region'] +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * containing generation_location +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_DENM' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing DENM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_01_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_A, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_01_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a circular region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_B_AT +// * and the IUT current location is inside the region validity period of CERT_TS_B_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer { +// * containing type +// * containing certificate +// * and containing certificate (CERT_AT_B) { +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['region'] { +// * containing region{ +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * } +// * } +// * } +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * containing generation_location +// * indicating position inside the REGION +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_DENM' +// * and not containing any other header_fields +// * and containing payload_fields { +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing DENM payload +// * } +// * and containing trailer_fields { +// * containing single instance of type TrailerField { +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } +// * } +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_02_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_01_02_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_B, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_02_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a rectangular region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected Behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_C_AT +// * and the IUT current location is inside the region validity period of CERT_TS_C_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_AT_C) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_regions +// * indicating REGIONS +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * containing generation_location +// * indicating position inside the REGION +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_DENM' +// * and not containing any other header_fields +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing DENM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_03_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_01_03_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_C, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_03_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a polygonal region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected Behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_D_AT +// * and the IUT current location is inside the region validity period of CERT_TS_D_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_AT_D) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * containing generation_location +// * indicating position inside the REGION +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_DENM' +// * and not containing any other header_fields +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing DENM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_04_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_01_04_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_D, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_04_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured DENM signe with the certificate with a identified region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_DENM_A’. Only differences to this snippet are mentioned in subsequent test purposes. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected Behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_D_AT +// * and the IUT current location is inside the region validity period of CERT_TS_D_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_AT_E) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'id_region' +// * and containing identified_region +// * indicating REGION +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * containing generation_location +// * indicating position inside the REGION +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_DENM' +// * and not containing any other header_fields +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * containing DENM payload +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_01_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_01_05_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_D, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_01_05_BV +// +// /** +// * @desc Check that IUT discards a Secured DENM containing protocol version set to a value less then 2 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing protocol_version +// * indicating 1 +// * } then { +// * the IUT discards a Ieee1609Dot2Data +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_02_01_BO +// * @reference ETSI TS 103 097 [1] Clause 5.1 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_02_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_02_01_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM containing protocol version set to a value greater then 2 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing protocol_version +// * indicating 3 +// * } then { +// * the IUT discards a Ieee1609Dot2Data +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_02_02_BO +// * @reference ETSI TS 103 097 [1] Clause 5.1 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_02_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, PX_WRONG_PROTOCOL_VERSION); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_02_02_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'signer_info' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'signer_info' +// * and containing header_fields[2].type +// * indicating 'generation_time' +// * and containing header_fields[3].type +// * indicating 'generation_location' +// * and containing header_fields[4].type +// * indicating 'its_aid' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_signer_info( +// m_signerIdentifier_certificate( +// vc_aaCertificate +// )), +// 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_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_01_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'signer_info' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'generation_time' +// * and containing header_fields[1].type +// * indicating 'generation_location' +// * and containing header_fields[2].type +// * indicating 'its_aid' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// 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_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_02_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM if the signer_info header field is not encoded first +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'generation_time' +// * and containing header_fields[1].type +// * indicating 'generation_location' +// * and containing header_fields[2].type +// * containing its_aid +// * and containing header_fields[3].type +// * indicating 'signer_info' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// 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_DENM, +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )) +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_03_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'generation_time' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_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_time' +// * and containing header_fields[3].type +// * indicating 'generation_location' +// * and containing header_fields[4].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_generation_time(1000 * f_getCurrentTime() - 1), // In us +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_04_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'generation_time' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_location' +// * and containing header_fields[2].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_05_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'its_aid' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_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 +// * containing its_aid +// * and containing header_fields[4].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM, +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_06_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'its_aid' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_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 +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_06a_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_06a_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_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_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_06a_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message contains more than one header field of type 'generation_location' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_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 +// * containing 'generation_location' +// * and containing header_fields[4].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_07_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0100'O +// )) +// ), +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_07_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the message does not contain the header field of type 'generation_location' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[2].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_08_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_08_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_08_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the header fields are not in the ascending order according to the numbering of the enumeration +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * containing its_aid +// * and containing header_fields[2].type +// * indicating 'generation_time' +// * and containing header_fields[3].type +// * indicating 'generation_location' +// * and containing header_fields[4].type +// * containing 'generation_location' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_09_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_09_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_its_aid_DENM, +// 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_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_09_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM containing header field of type 'generation_time_standard_deviation' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing time +// * indicating CURRENT_TIME +// * and containing header_fields[2] +// * containing type +// * indicating 'generation_time_standard_deviation' +// * and containing log_std_dev +// * indicating 255 +// * and containing header_fields[3].type +// * indicating 'generation_location' +// * and containing header_fields[4].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_10_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_10_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_generation_time_with_standard_deviation( +// m_time64WithStandardDeviation( +// 1000 * f_getCurrentTime(), +// 255 +// ) +// ), +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_10_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing the header fields of type 'expiry_time' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing time +// * indicating CURRENT_TIME +// * and containing header_fields[2] +// * containing type +// * indicating 'expiration' +// * and containing expiry_time +// * indicating CURRENT_TIME + 1 h +// * and containing header_fields[3].type +// * indicating 'generation_location' +// * and containing header_fields[4].type +// * containing its_aid +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_11_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_11_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_11_BO +// +// /** +// * @desc Check that IUT accepts the Secured DENM containing additional non-standard HeaderInfo +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[3].type +// * containing its_aid +// * and containing header_fields[4] +// * containing type +// * indicating non-standard header field type (200) +// * and containing other_header +// * indicating non-empty data +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_12_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_12_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM, +// m_header_info_unspecify +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_12_BO +// +// /** +// * @desc Check that IUT discards the Secured CAM containing the header field 'encryption_parameter and recipient_info' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing header_fields[3].type +// * containing 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 +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_13_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_13_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var Certificate v_iutATCertificate; +// var SubjectAttribute v_encryption_key; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// 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_prepareSecuredDenm( +// 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_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM, +// 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_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_13_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing the header fields of type 'request_unrecognized_certificate' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * and containing header_fields[1].type +// * indicating 'generation_time' +// * and containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields[2].type +// * indicating 'request_unrecognized_certificate' +// * and containing digests[0] +// * indicating the digest of X_IUT_AT_CERT +// * and containing header_fields[3].type +// * indicating 'generation_location' +// * and containing header_fields[4].type +// * indicating 'its_aid' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_04_14_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_04_14_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var Certificate v_iutATCertificate; +// var SignerInfo v_signerIdentifier; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// if ( +// (f_readCertificate(cc_iutCert_A, v_iutATCertificate) == false) or +// (f_getCertificateSignerInfo(v_iutATCertificate, v_signerIdentifier) == false) +// ) { +// f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_timeout); // Set verdict to inconc +// } else { +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_unrecognised_certificate( +// f_hashedId3FromHashedId8( +// f_calculateDigestFromCertificate( +// v_signerIdentifier.signerInfo.certificate +// ) +// ) +// ), +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_DENM +// }, +// e_certificate_digest_with_sha256, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_04_14_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the header_fields contains a signer of type 'self' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'self' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_05_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_DENM +// }, +// e_self, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_01_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the header_fields contains a signer of type 'certificate_digest_with_other_algorithm' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'certificate_digest_with_other_algorithm' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_05_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_DENM +// }, +// e_certificate_digest_with_other_algorithm, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_02_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the header_fields contains a signer of type certificate_chain +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating 'certificate_digest_with_other_algorithm' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_05_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_signer_info( +// m_signerIdentifier_certificates( +// { vc_aaCertificate, 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_DENM +// }, +// e_certificate_chain, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_03_BO +// +// /** +// * @desc Check that IUT discards a secured DENM if the header_fields contains a signer info of unknown or reserved type +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing signer.type +// * indicating X_UNKNOWN_SIGNERINFO_TYPE +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_05_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_05_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// 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_DENM +// }, +// e_unknown, +// false +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_05_04_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM containing generation_time before the certificate validity period +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields['signer_info'].signer +// * 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 < START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_06_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var ValidityRestriction v_timeValidity; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_timeValidity); +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert0601_BO, +// { +// m_header_info_generation_time( +// (v_timeValidity.validity.time_start_and_end.start_validity - 3600) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_01_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM containing generation_time before the certificate validity period +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_06_02_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 > END_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_06_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var ValidityRestriction v_validity; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// f_getCertificateValidityRestriction(vc_atCertificate, e_time_start_and_end, v_validity); +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert0602_BO, +// { +// m_header_info_generation_time( +// (v_validity.validity.time_start_and_end.end_validity + 3600) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_02_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the generation_time is more than 10 minute in the past (C2C only) +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields ['generation_time'] +// * containing generation_time +// * indicating GEN_TIME ( CURRENT_TIME - 11min ) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_03_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_06_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_generation_time( +// (1000 * f_getCurrentTime() - 660) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_03_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the generation_time is more than 10 minute in the future(C2C only) +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing header_fields ['generation_time'] +// * containing generation_time +// * indicating GEN_TIME ( CURRENT_TIME + 11min ) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_06_04_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 and 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_06_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_generation_time( +// (1000 * f_getCurrentTime() + 660) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_06_04_BO +// +// /** +// * @desc Check that IUT discards secured DENM when its_aid value is not equal to AID_DENM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['its_aid'] +// * indicating 'AID_CAM' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * containing DENM payload +// * } then { +// * the IUT discards the DENM +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_07_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_07_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_its_aid_CAM +// } +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_07_01_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM when its_aid value is undefined +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['its_aid'] +// * indicating 'AID_UNDEFINED' +// * and containing payload_field { +// * containing type +// * indicating 'signed' +// * containing data +// * containing DENM payload +// * } then { +// * the IUT discards the DENM +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_07_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_07_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_its_aid_Other +// } +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_07_02_BO +// +// /** +// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the circular validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is requested to send DENM +// * } then { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].type +// * containing certificate +// * and containing header_fields ['signer_info'].certificate (CERT_AT_B) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * containing generation_location +// * indicating position outside the REGION +// * and containing header_fields['its_aid'] +// * indicating 'AID_DENM' +// * } then { +// * the IUT discards the DENM +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_08_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_B_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_01_BO +// +// /** +// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the rectangilar validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is requested to send DENM +// * } then { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].type +// * containing certificate +// * and containing header_fields ['signer_info'].certificate (CERT_AT_C) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_regions +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * containing generation_location +// * indicating position outside the REGION +// * and containing header_fields['its_aid'] +// * indicating 'AID_DENM' +// * } then { +// * the IUT discards the DENM +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_08_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_C_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_02_BO +// +// /** +// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the polygonal validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is requested to send DENM +// * } then { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].type +// * containing certificate +// * and containing header_fields ['signer_info'].certificate (CERT_AT_D) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * containing generation_location +// * indicating position outside the REGION +// * and containing header_fields['its_aid'] +// * indicating 'AID_DENM' +// * } then { +// * the IUT discards the DENM +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_08_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_D_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_03_BO +// +// /** +// * @desc Check that IUT discards Secured DENM if the HeaderInfo generation_location is outside of the identified validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is requested to send DENM +// * } then { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].type +// * containing certificate +// * and containing header_fields ['signer_info'].certificate (CERT_AT_E) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'id_region' +// * and containing identified_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * containing generation_location +// * indicating position outside the REGION +// * and containing header_fields['its_aid'] +// * indicating 'AID_DENM' +// * } then { +// * the IUT discards the DENM +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_08_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert_E_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_04_BO +// +// /** +// * @desc Check that IUT accepts a Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is 29.9 km (C2C only) +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields[generation_location].type +// * indicating 'generation_location' +// * and containing generation_location +// * indicating position in 29.9 km from the current position of IUT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_08_05_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var Int32 v_latitude; +// var Int32 v_longitude; +// +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// fx_computePositionUsingDistance( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// 29900.0, +// 0, +// v_latitude, +// v_longitude +// ); +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_latitude, +// v_longitude, +// '0000'O +// )) +// ) +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: DEN message was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_05_BV +// +// /** +// * @desc Check that IUT discards Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is more than 30 km +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields[generation_location].type +// * indicating 'generation_location' +// * and containing generation_location +// * indicating position in 31 km from the current position of IUT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_08_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_08_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var Int32 v_latitude; +// var Int32 v_longitude; +// +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// fx_computePositionUsingDistance( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// 31000.0, +// 0, +// v_latitude, +// v_longitude +// ); +// v_securedGnPdu := f_prepareSecuredDenm( +// cc_taCert_A, +// { +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_latitude, +// v_longitude, +// '0000'O +// )) +// ) +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_08_06_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing empty payload of type 'signed' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing payload_field +// * containing type +// * indicating 'signed' +// * and containing data +// * indicating length 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_09_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// // Add the DENM payload +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_denmReq( +// m_denmPdu( +// m_denm( +// m_denmMgmtCon( +// m_tsActionId +// ), +// v_situation, +// m_denmLocation_zeroDelta +// ))))))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredDenm( +// v_securedMessage, +// m_payload_signed( +// ''O +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_02_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing payload of type 'unsecured' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing payload_field +// * containing type +// * indicating 'unsecured' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_09_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// // Add the DENM payload +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_denmReq( +// m_denmPdu( +// m_denm( +// m_denmMgmtCon( +// m_tsActionId +// ), +// v_situation, +// m_denmLocation_zeroDelta +// ))))))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredDenm( +// v_securedMessage, +// m_payload_unsecured( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_03_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing payload of type 'encrypted' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing payload_field +// * containing type +// * indicating 'encrypted' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_09_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// // Add the DENM payload +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_denmReq( +// m_denmPdu( +// m_denm( +// m_denmMgmtCon( +// m_tsActionId +// ), +// v_situation, +// m_denmLocation_zeroDelta +// ))))))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredDenm( +// v_securedMessage, +// m_payload_encrypted( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_04_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing payload of type 'signed_external' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing payload_field +// * containing type +// * indicating 'signed_external' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_09_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// // Add the DENM payload +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_denmReq( +// m_denmPdu( +// m_denm( +// m_denmMgmtCon( +// m_tsActionId +// ), +// v_situation, +// m_denmLocation_zeroDelta +// ))))))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredDenm( +// v_securedMessage, +// m_payload_signed_external( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_05_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing exactly one non-empty payload of type 'signed_and_encrypted' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_DENM_A) +// * containing payload_field +// * containing type +// * indicating 'signed_and_encrypted' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_09_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_09_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_); +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// // Add the DENM payload +// v_gnNonSecuredPacket.payload := valueof( +// valueof( +// bit2oct( +// encvalue( +// m_denmReq( +// m_denmPdu( +// m_denm( +// m_denmMgmtCon( +// m_tsActionId +// ), +// v_situation, +// m_denmLocation_zeroDelta +// ))))))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredDenm( +// v_securedMessage, +// m_payload_signed_and_encrypted( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } // End of 'for' statement +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_09_06_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM if the message does not contain the trailer field of type signature +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing trailer_fields +// * not containing any instance of type TrailerField +// * containing type +// * indicating 'signature' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_10_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_10_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, -, 0); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_10_01_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM containing more than one instance of TrailerField of type 'signature' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing trailer_fields[0].type +// * containing type +// * indicating 'signature' +// * and containing trailer_fields[1].type +// * containing type +// * indicating 'signature' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_10_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_10_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm_Bo(cc_taCert_A, -, 2); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_10_02_BO +// +// /** +// * @desc Check that the IUT discards Secured DENM containing signature that is not verified using the verification key from the certificate contained in the message's signer info +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields ['signer_info'] +// * containing certificate (CERT_TS_A_AT) +// * containing subject_attributes['verification key'] (KEY) +// * and containing trailer_fields[0] +// * containing type +// * indicating 'signature' +// * and containing signature +// * NOT verifiable using KEY +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_11_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_11_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm_Bo( +// cc_taCert_A, +// -, +// 1, +// -, +// e_certificate +// ); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_11_01_BO +// +// /** +// * @desc Check that IUT discards the Secured DENM if the message contains trailer field of type 'signature' with reserved public key algorythms +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing trailer_fields +// * containing an instance of type TrailerField +// * containing type +// * indicating 'signature' +// * and containing signature.algorithm +// * indicating X_RESERVED_PK_ALGORYTHM +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_11_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_11_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm_Bo( +// cc_taCert_A, +// -, +// 3 +// ); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_11_02_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'enrolment_credential' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_EC_A) +// * containing subject_info.subject_type +// * indicating 'enrolment_credentials' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_01_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_12_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm( +// cc_taCert_EC, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_DENM +// }, +// e_certificate +// ); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_01_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type "authorization_authority" +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_A_AA) +// * containing subject_info.subject_type +// * indicating 'authorization_authority' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_02_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_12_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm( +// cc_taCert_AA, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_DENM +// }, +// e_certificate +// ); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_02_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'enrolment_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * and certificate (CERT_TS_EA_A) +// * containing subject_info.subject_type +// * indicating 'enrolment_authority' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_03_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_12_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm( +// cc_taCert_EA, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_DENM +// }, +// e_certificate +// ); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_03_BO +// +// /** +// * @desc Check that IUT discards a Secured DENM if the signer certificate of the message contains the subject type 'root_ca' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * and certificate (CERT_TS_ROOT) +// * containing subject_info.subject_type +// * indicating 'root_ca' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_12_04_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm( +// cc_taCert_CA, +// { +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_its_aid_DENM +// }, +// e_certificate +// ); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_12_04_BO +// +// /** +// * @desc Check that IUT discards secured DENM signed with the not yet valid certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_01_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AT > CURRENT_TIME +// * and containing end_validity +// * indicating END_VALIDITY_AT > START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1301_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_01_BO +// +// /** +// * @desc Check that IUT discards secured DENM signed with the expired certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_02_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AT < CURRENT_TIME +// * and containing end_validity +// * indicating END_VALIDITY_AT < START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1302_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_02_BO +// +// /** +// * @desc Check that IUT discards secured DENM when IUT location is outside the circular validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_03_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1303_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_03_BO +// +// /** +// * @desc Check that IUT discards secured DENM when IUT location is outside the rectangular validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_04_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_13_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1304_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_04_BO +// +// /** +// * @desc Check that IUT discards secured DENM when IUT location is outside the polygonal validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_05_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectanglar_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_13_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1305_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_05_BO +// +// /** +// * @desc Check that IUT discards secured DENM when IUT location is outside the identified validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_DENM_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_06_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_DENM_13_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_DENM_13_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test control +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCertMsg1306_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_DENM_13_06_BO + + } // End of group recvDenmProfile + + /** + * @desc Receiving behaviour test cases for Other profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.4 Generic Signed Message Profile + */ + group recvOtherProfile { + + /** + * @desc Function used to verify the IUT has forwarded or discarded the received secured message sent by the TA + */ + group commonFunctions { + +// /** +// * @desc Behavior function for NodeD in case of forwarding is expected +// * @see TC_GEONW_PON_GBC_BV_01 +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD() runs on ItsGeoNetworking { +// +// // Local variables +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// tc_ac.start; +// alt { +// [] geoNetworkingPort.receive( +// mw_geoNwInd( +// mw_geoNwSecPdu( +// mw_ieee1609Dot2Data_dummy, +// mw_geoNwBroadcastPacketWithArea( +// mw_longPosVectorPosition( +// v_longPosVectorNodeB +// ), +// ?, +// f_getGeoBroadcastArea(c_area1) +// )))) { +// tc_ac.stop; +// log("*** " & testcasename() & ": PASS: Beacon message was forwarded ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// [] geoNetworkingPort.receive( +// mw_geoNwInd( +// mw_geoNwSecPdu( +// mw_ieee1609Dot2Data_dummy +// ))) { +// // Do not restart tc_ac timer +// log("*** " & testcasename() & ": INFO: Unexpected GN message ignored ***"); +// repeat; +// } +// [] tc_ac.timeout { +// log("*** " & testcasename() & ": FAIL: GBC message not received ***"); +// f_selfOrClientSyncAndVerdict(c_tbDone, e_error); +// } +// } +// +// // Postamble +// f_poNeighbour(); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD +// +// /** +// * @desc Behavior function for NodeD in case of forwarding is not expected +// * @see TC_GEONW_PON_GBC_BV_01 +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD() runs on ItsGeoNetworking { +// +// // Local variables +// var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut); +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// tc_noac.start; +// alt { +// [] geoNetworkingPort.receive( +// mw_geoNwInd( +// mw_geoNwSecPdu( +// mw_ieee1609Dot2Data_dummy, +// mw_geoNwBroadcastPacketWithArea( +// mw_longPosVectorPosition( +// v_longPosVectorIut +// ), +// ?, +// f_getGeoBroadcastArea(c_area1) +// )))) { +// tc_noac.stop; +// log("*** " & testcasename() & ": FAIL: Beacon message shall ot be forwarded ***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// [] geoNetworkingPort.receive( +// mw_geoNwInd( +// mw_geoNwSecPdu( +// mw_ieee1609Dot2Data_dummy +// ))) { +// // Do not restart tc_ac timer +// log("*** " & testcasename() & ": INFO: Unexpected GN message ignored ***"); +// repeat; +// } +// [] tc_noac.timeout { +// log("*** " & testcasename() & ": PASS: Secured message was discarded ***"); +// f_selfOrClientSyncAndVerdict(c_tbDone, e_success); +// } +// } +// +// // Postamble +// f_poNeighbour(); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_xxx_BO_nodeD + + } // End of goup commonFunctions + +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate without region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_AT_A) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['time_start_and_end'] +// * indicating CERT_TS_AT_TIME_VALIDITY +// * and not containing validity_restrictions['region'] +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * inside CERT_TS_AT_TIME_VALIDITY +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * containing generation_location +// * and containing generation_location +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * and containing its_aid +// * indicating 'AID_BEACON' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_01_01_BV() runs on ItsMtc system ItsSecSystem { +// +// // Local variables +// var ItsGeoNetworking v_nodeB; +// var ItsGeoNetworking v_nodeD; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); +// setverdict(inconc); +// stop; +// } +// +// // Test component configuration +// f_cf02Up(); +// +// // Preamble +// +// // Start components +// v_nodeB := f_getComponent(c_compNodeB); +// v_nodeD := f_getComponent(c_compNodeD); +// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_A)); +// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); +// +// // Synchronization +// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); +// +// // Cleanup +// f_cf02Down(); +// +// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_01_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a circular region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_B_AT +// * and the IUT current location is inside the region validity period of CERT_TS_B_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_B_AT) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['time_start_and_end'] +// * indicating CERT_TS_AT_TIME_VALIDITY +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * and containing generation_location +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * and containing its_aid +// * indicating 'AID_BEACON' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_02_BV +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_01_02_BV() runs on ItsMtc system ItsSecSystem { +// +// // Local variables +// var ItsGeoNetworking v_nodeB; +// var ItsGeoNetworking v_nodeD; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); +// setverdict(inconc); +// stop; +// } +// +// // Test component configuration +// f_cf02Up(); +// +// // Preamble +// +// // Start components +// v_nodeB := f_getComponent(c_compNodeB); +// v_nodeD := f_getComponent(c_compNodeD); +// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_B)); +// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); +// +// // Synchronization +// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); +// +// // Cleanup +// f_cf02Down(); +// +// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_02_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_C_AT +// * and the IUT current location is inside the region validity period of CERT_TS_C_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_C_AT) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['time_start_and_end'] +// * indicating CERT_TS_AT_TIME_VALIDITY +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region +// * indicating REGION +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * and containing generation_location +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * and containing its_aid +// * indicating 'AID_BEACON' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_03_BV +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_01_03_BV() runs on ItsMtc system ItsSecSystem { +// +// // Local variables +// var ItsGeoNetworking v_nodeB; +// var ItsGeoNetworking v_nodeD; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); +// setverdict(inconc); +// stop; +// } +// +// // Test component configuration +// f_cf02Up(); +// +// // Preamble +// +// // Start components +// v_nodeB := f_getComponent(c_compNodeB); +// v_nodeD := f_getComponent(c_compNodeD); +// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_C)); +// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); +// +// // Synchronization +// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); +// +// // Cleanup +// f_cf02Down(); +// +// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_03_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_D_AT +// * and the IUT current location is inside the region validity period of CERT_TS_D_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_D_AT) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['time_start_and_end'] +// * indicating CERT_TS_AT_TIME_VALIDITY +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * and containing generation_location +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * and containing its_aid +// * indicating 'AID_BEACON' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_04_BV +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_01_04_BV() runs on ItsMtc system ItsSecSystem { +// +// // Local variables +// var ItsGeoNetworking v_nodeB; +// var ItsGeoNetworking v_nodeD; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); +// setverdict(inconc); +// stop; +// } +// +// // Test component configuration +// f_cf02Up(); +// +// // Preamble +// +// // Start components +// v_nodeB := f_getComponent(c_compNodeB); +// v_nodeD := f_getComponent(c_compNodeD); +// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_D)); +// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); +// +// // Synchronization +// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); +// +// // Cleanup +// f_cf02Down(); +// +// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_04_BV +// +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Beacon signed with the certificate with a rectangular region validity restriction +// * @remark The message defined in this test purpose is used in the subsequent test purposes with the snippet name ‘MSG_SEC_RCV_GENMSG_C’. Only differences to this snippet are mentioned in subsequent test purposes +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_E_AT +// * and the IUT current location is inside the region validity period of CERT_TS_E_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating value '2' +// * and containing header_fields[0] +// * containing type +// * indicating 'signer_info' +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_E_AT) +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' (2) +// * and containing subject_attributes['verification key'] (KEY) +// * and containing validity_restrictions['time_start_and_end'] +// * indicating CERT_TS_AT_TIME_VALIDITY +// * and containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'id_region' +// * and containing id_region +// * indicating REGION +// * and containing header_fields [1] +// * containing type +// * indicating 'generation_time' +// * containing generation_time +// * indicating CURRENT_TIME +// * and containing header_fields [2] +// * containing type +// * indicating 'generation_location' +// * and containing generation_location +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * and containing its_aid +// * indicating 'AID_BEACON' +// * and containing payload_field +// * containing type +// * indicating 'signed' +// * containing data +// * indicating length > 0 +// * and containing trailer_fields +// * containing single instance of type TrailerField +// * containing type +// * indicating 'signature' +// * containing signature +// * verifiable using KEY +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_01_05_BV() runs on ItsMtc system ItsSecSystem { +// +// // Local variables +// var ItsGeoNetworking v_nodeB; +// var ItsGeoNetworking v_nodeD; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC' required for executing the TC ***"); +// setverdict(inconc); +// stop; +// } +// +// // Test component configuration +// f_cf02Up(); +// +// // Preamble +// +// // Start components +// v_nodeB := f_getComponent(c_compNodeB); +// v_nodeD := f_getComponent(c_compNodeD); +// v_nodeB.start(f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB(cc_taCert_E)); +// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); +// +// // Synchronization +// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); +// +// // Cleanup +// f_cf02Down(); +// +// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_01_05_BV +// +// group g_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB( +// in charstring p_taCert +// ) runs on ItsGeoNetworking { +// +// // Local variables +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredBeacon(p_taCert, omit, e_certificate); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_selfOrClientSyncAndVerdict(c_poDone, e_success); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV_nodeB +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_01_0x_BV +// +// /** +// * @desc Check that IUT discards a Secured GN Message containing protocol version set to a value less than 2 +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating 1 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_02_01_BO +// * @reference ETSI TS 103 097 [1] Clause 5.1 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_02_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_02_0x_BO_nodeB(PX_WRONG_PROTOCOL_VERSION)); +// 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_02_01_BO +// +// /** +// * @desc Check that IUT discards a Secured GN Message containing protocol version set to a value greater than 2 +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing protocol_version +// * indicating 3 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_02_02_BO +// * @reference ETSI TS 103 097 [1] Clause 5.1 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_02_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_02_0x_BO_nodeB(PX_WRONG_PROTOCOL_VERSION)); +// 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_02_02_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_02_0x_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_02_0x_BO_nodeB( +// in UInt8 p_protocolVersion +// ) runs on ItsGeoNetworking { +// +// // Local variables +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredBeacon_Bo(cc_taCert_A, p_protocolVersion); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_selfOrClientSyncAndVerdict(c_poDone, e_success); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_02_0x_BO_nodeB +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_02_0x_BV +// +// /** +// * @desc Check that IUT discards a secured GN Message if the header_fields contains more than one header field of type 'signer_info' +// *
+// * 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 'signer_info' +// * and containing header_fields[2].type +// * indicating 'generation_time' +// * and containing header_fields[3].type +// * indicating ''generation_location'' +// * and containing header_fields[4].type +// * containing its_aid +// * indicating 'AID_BEACON' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_01_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_04_01_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_signer_info( +// m_signerIdentifier_certificate( +// vc_aaCertificate +// )), +// 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_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_01_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_01_BO +// +// /** +// * @desc Check that IUT discards a secured GN Message if the header_fields does not contain the header field of type 'signer_info' +// *
+// * 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) +// * and containing header_fields[0].type +// * indicating 'generation_time' +// * and containing header_fields[1].type +// * indicating 'generation_location' +// * and containing header_fields[2].type +// * indicating 'signer_info' +// * and containing header_fields[3].type +// * containing its_aid +// * indicating 'AID_BEACON' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_02_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_04_02_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_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_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_02_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_02_BO +// +// /** +// * @desc Check that IUT is able to receive a secured GN Message if the signer_info header field is not encoded first. +// *
+// * 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) +// * and containing header_fields[0].type +// * indicating 'generation_time' +// * and containing header_fields[1].type +// * indicating 'generation_location' +// * and containing header_fields[2].type +// * containing its_aid +// * indicating 'AID_BEACON' +// * and containing header_fields[3].type +// * indicating 'signer_info' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_03_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_04_03_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_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, +// m_header_info_signer_info( +// m_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )) +// }, +// 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_03_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_03_BO +// +// /** +// * @desc Check that IUT discards a secured GN Message if the message contains more than one header field of type 'generation_time' +// *
+// * 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 +// * indicating 'generation_time' +// * and containing header_fields[3].type +// * indicating 'generation_time' +// * and containing header_fields[4].type +// * containing its_aid +// * indicating 'AID_BEACON' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_04_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_04_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_04_04_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_04_04_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_04_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_issuerIdentifier_sha256AndDigest( +// vc_atCertificate.signer_info.signerInfo.digest +// )), +// m_header_info_generation_time(1000 * f_getCurrentTime()), // In us +// m_header_info_generation_time(1000 * f_getCurrentTime() - 1), // 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_04_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_04_BO +// +// /** +// * @desc Check that IUT discards a secured GN Message if the message does not contain the header field of type 'generation_time' +// *
+// * 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 +// * containing its_aid +// * indicating 'AID_BEACON' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_04_05_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_05_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_05_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_04_05_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_04_05_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_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_05_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_04_05_BO +// +// /** +// * @desc Check that IUT discards a Secured GN Message if the message contains more than one header field of type 'its_aid' +// *
+// * 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 +// * indicating 'generation_location' +// * and containing header_fields[3] +// * containing type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_BEACON' +// * and containing header_fields[4].type +// * containing its_aid +// * indicating 'AID_BEACON' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_04_06_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_06_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_06_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_04_06_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_04_06_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_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_its_aid_Other, +// 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_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' +// *
+// * 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 +// * indicating 'generation_location' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @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_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_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_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' +// *
+// * 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 +// * 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 +// * } +// * } +// *+// * +// * @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_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_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ), +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0100'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_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' +// *
+// * 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[4].type +// * indicating 'its_aid' +// * containing its_aid +// * indicating 'AID_BEACON' +// * and not containing other header fields +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @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_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_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_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 +// *
+// * 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 +// * } +// * } +// *+// * +// * @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_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' +// *
+// * 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 +// * } +// * } +// *+// * +// * @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 +// *
+// * 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 +// * } +// * } +// *+// * +// * @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 +// *
+// * 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 +// * } +// * } +// *+// * +// * @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' +// *
+// * 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 +// * } +// * } +// *+// * +// * @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' +// *
+// * 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 +// * } +// * } +// *+// * +// * @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' +// *
+// * 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 +// * } +// * } +// *+// * +// * @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 +// *
+// * 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 +// * } +// * } +// *+// * +// * @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 +// *
+// * 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 +// * } +// * } +// *+// * +// * @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( +// 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_06_01_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_01_BO +// +// /** +// * @desc Check that IUT discards the secured GN Message containing generation_time after the message signing certificate validity period +// *
+// * 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_02_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_E_ATND +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 5.4 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_02_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_06_02_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_06_02_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_taCert0602_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.end_validity + 3600) * 1000 +// ), // 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_06_02_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_02_BO +// +// /** +// * @desc Check that IUT discards Secured GN Message if the generation_time is more than 10 minute in the past (C2C only) +// *
+// * 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 ['generation_time'] +// * containing generation_time +// * indicating TIME_1 (TIME_1 < CUR_TIME - 10min) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_03_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_06_03_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_06_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_generation_time( +// (1000 * f_getCurrentTime() - 600) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// 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_06_03_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_03_BO +// +// /** +// * @desc Check that IUT discards Secured GN Message if the generation_time is more than 10 minute in the future(C2C only) +// *
+// * 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 ['generation_time'] +// * containing generation_time +// * indicating TIME_1 (TIME_1 > CUR_TIME + 10min) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_06_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_06_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_06_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_06_04_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_06_04_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_06_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_generation_time( +// (1000 * f_getCurrentTime() + 600) * 1000 +// ) // In us +// }, +// e_certificate +// ); +// 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_06_04_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_04_BO +// +// /** +// * @desc Check that IUT discards Ieee1609Dot2Data when its_aid value is undefined +// *
+// * 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['its_aid'] +// * indicating indicating 'AID_UNDEFINED' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_07_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_07_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_07_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_07_01_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_07_01_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_07_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_its_aid_Other +// }, +// e_certificate_digest_with_sha256 +// ); +// 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_07_01_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_07_01_BO +// +// /** +// * @desc Check that IUT discards Secured GN Message if the HeaderInfo generation_location is outside of the circular validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRCand PICS_USE_CIRCULAR_REGION +// * 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_B_AT +// * and the IUT current location is inside the validity region of CERT_TS_B_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_B)) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing certificate (CERT_TS_B_AT) +// * containing validity_restrictions ['region'] +// * containing region +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * indicating location outside of the REGION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_08_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) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_CIRCULAR_REGION' 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_08_xx_BO(cc_taCert_B)); +// 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_08_01_BO +// +// /** +// * @desc Check that IUT discards Secured GN Message if the HeaderInfo generation_location is outside of the rectangular validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_RECTANGULAR_REGION +// * 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_C_AT +// * and the IUT current location is inside the validity region of CERT_TS_C_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_C)) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing certificate (CERT_TS_C_AT) +// * containing validity_restrictions ['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectanglar_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * indicating location outside of the REGION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_08_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) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_RECTANGULAR_REGION' 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_08_xx_BO(cc_taCert_C)); +// 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_08_02_BO +// +// /** +// * @desc Check that IUT discards Secured GN Message if the HeaderInfo generation_location is outside of the rectangular validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_POLYGONAL_REGION +// * 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_D_AT +// * and the IUT current location is inside the validity region of CERT_TS_D_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_D)) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing certificate (CERT_TS_D_AT) +// * containing validity_restrictions ['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * indicating location outside of the REGION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_08_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) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_POLYGONAL_REGION' 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_08_xx_BO(cc_taCert_D)); +// 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_08_03_BO +// +// /** +// * @desc Check that IUT discards Secured GN Message if the optional HeaderInfo generation_location is outside of the identified validity region of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_IDENTIFIED_REGION +// * 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_E_AT +// * and the IUT current location is inside the validity region of CERT_TS_E_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data ((MSG_SEC_RCV_GENMSG_E)) +// * containing header_fields[0].type +// * indicating 'signer_info' +// * containing certificate (CERT_TS_E_AT) +// * containing validity_restrictions ['region'] +// * containing region +// * containing region_type +// * indicating 'id_region' +// * and containing identified_region +// * indicating REGION +// * and containing header_fields ['generation_location'] +// * indicating location outside of the REGION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_08_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_08_xx_BO(cc_taCert_E)); +// 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_08_04_BO +// +// /** +// * @desc Check that IUT accepts a Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is 29.9 km (C2C only) +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields[generation_location].type +// * indicating 'generation_location' +// * and containing generation_location +// * indicating position in 29.9 km from the current position of IUT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_08_05_BV() runs on ItsMtc system ItsSecSystem { +// +// // Local variables +// var ItsGeoNetworking v_nodeB; +// var ItsGeoNetworking v_nodeD; +// +// // Test control +// if (not(PICS_GN_SECURITY) or not(PICS_GN_GBC_SRC) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ": 'PICS_GN_SECURITY and PICS_GN_GBC_SRC and PICS_USE_IDENTIFIED_REGION' 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_08_05_BV()); +// v_nodeD.start(f_TC_SEC_ITSS_RCV_GENMSG_xxx_BV_nodeD()); +// +// // Synchronization +// f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone}); +// +// // Cleanup +// f_cf02Down(); +// +// } // End of testcase TC_SEC_ITSS_RCV_GENMSG_08_05_BV +// +// /** +// * @desc Check that IUT discards Secured DENM if the distance between the current position of IUT and the value of optional HeaderInfo generation_location is more than 30 km +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields[generation_location].type +// * indicating 'generation_location' +// * and containing generation_location +// * indicating position in 31 km from the current position of IUT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_08_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.2 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_08_06_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_08_06_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_08_06_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_08_xx_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_08_xx_BO( +// in charstring p_taCert +// ) 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( +// p_taCert, +// { +// 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_generation_location( +// valueof(m_threeDLocation( +// PX_WGSLATITUDE, +// PX_WGSLONGITUDE, +// '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_08_xx_BO +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_08_05_BV() runs on ItsGeoNetworking { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var Int32 v_latitude; +// var Int32 v_longitude; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// fx_computePositionUsingDistance( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// 29900.0, +// 0, +// v_latitude, +// v_longitude +// ); +// v_securedGnPdu := f_prepareSecuredBeacon( +// cc_taCert_A, +// { +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_latitude, +// v_longitude, +// '0000'O +// )) +// ) +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_08_05_BV +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_08_06_BO() runs on ItsGeoNetworking { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var Int32 v_latitude; +// var Int32 v_longitude; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// fx_computePositionUsingDistance( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// 31000.0, +// 0, +// v_latitude, +// v_longitude +// ); +// v_securedGnPdu := f_prepareSecuredBeacon( +// cc_taCert_A, +// { +// m_header_info_generation_location( +// valueof(m_threeDLocation( +// v_latitude, +// v_longitude, +// '0000'O +// )) +// ) +// }, +// e_certificate_digest_with_sha256 +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_08_06_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_08_xx_BO +// +// /** +// * @desc Check that IUT discards the Secured GN Message containing empty payload of type 'signed' +// *
+// * 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 payload_field +// * containing type +// * indicating 'signed' +// * and containing data +// * indicating length 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_09_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_09_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_09_02_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_09_02_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_09_02_BO() runs on ItsGeoNetworking { +// +// // Local variables +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredOtherMessage( +// v_securedMessage, +// m_payload_signed( +// ''O +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// 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_09_02_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_02_BO +// +// /** +// * @desc Check that IUT discards the Secured GN Message containing payload element of type 'unsecured' +// *
+// * 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 payload_field +// * containing type +// * indicating 'unsecured' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_09_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_09_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_09_03_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_09_03_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_09_03_BO() runs on ItsGeoNetworking { +// +// // Local variables +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredOtherMessage( +// v_securedMessage, +// m_payload_unsecured( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// 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_09_03_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_03_BO +// +// /** +// * @desc Check that IUT discards the Secured GN Message containing payload element of type 'encrypted' +// *
+// * 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 payload_field +// * containing type +// * indicating 'encrypted' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_09_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_09_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_09_04_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_09_04_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_09_04_BO() runs on ItsGeoNetworking { +// +// // Local variables +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredOtherMessage( +// v_securedMessage, +// m_payload_encrypted( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// 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_09_04_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_04_BO +// +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Message containing payload of type signed_external +// *
+// * 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 payload_field +// * containing type +// * indicating 'signed_external' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_09_05_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_09_05_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_09_05_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_09_05_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_09_05_BO() runs on ItsGeoNetworking { +// +// // Local variables +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredOtherMessage( +// v_securedMessage, +// m_payload_signed_external( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// 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_09_05_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_05_BO +// +// /** +// * @desc Check that IUT accepts a well-formed Secured GN Message containing payload of type signed_and_encrypted +// *
+// * 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 payload_field +// * containing type +// * indicating 'signed_and_encrypted' +// * and containing data +// * indicating length > 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_09_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_09_06_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_09_06_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_09_06_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_09_06_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_09_06_BO() runs on ItsGeoNetworking { +// +// // Local variables +// var GnNonSecuredPacket v_gnNonSecuredPacket; +// var octetstring v_gnPayload; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// var template (value) Ieee1609Dot2Data v_securedMessage; +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_gnNonSecuredPacket := valueof( +// m_geoNwBroadcastPacket( +// v_longPosVectorNodeB, +// vc_localSeqNumber, +// f_getGeoBroadcastArea( +// c_area1 // Select area1 (see ETSI TS 102 871-2 Clause 4.2 Configuration 1) +// ))); +// +// // Encode it +// v_gnPayload := bit2oct( +// encvalue( +// v_gnNonSecuredPacket +// ) +// ); +// f_buildGnSecuredOtherMessage( +// v_securedMessage, +// m_payload_signed_and_encrypted( +// v_gnPayload +// ), +// e_certificate_digest_with_sha256, +// valueof(m_threeDLocation( +// v_longPosVectorNodeB.latitude, +// v_longPosVectorNodeB.longitude, +// '0000'O +// )) +// ); +// v_securedGnPdu := valueof(m_geoNwSecPdu(v_gnNonSecuredPacket, v_securedMessage)); +// 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_09_06_BO +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_09_06_BO +// +// /** +// * @desc Check that IUT discards the Secured GN Message if the message does not contain the trailer field of type 'signature' +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing trailer_fields +// * not containing trailer_fields['signature'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_10_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_10_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_10_0x_BO_nodeB(0)); +// 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_10_01_BO +// +// /** +// * @desc Check that IUT discards the Secured GN Message containing more than one instance of TrailerField of type 'signature' +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing trailer_fields[0] +// * containing type +// * indicating 'signature' +// * and containing trailer_fields[1] +// * containing type +// * indicating 'signature' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_10_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_10_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_10_0x_BO_nodeB(2)); +// 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_10_02_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_10_0x_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_10_0x_BO_nodeB( +// in integer p_trailerStatus +// ) runs on ItsGeoNetworking { +// +// // Local variables +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Preamble +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredBeacon_Bo(cc_taCert_A, -, p_trailerStatus); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_selfOrClientSyncAndVerdict(c_poDone, e_success); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_10_0x_BO_nodeB +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_10_0x_BV +// +// /** +// * @desc Check that the IUT discards Secured GN Message containing signature that is not verified using the verification key from the certificate contained in the message's signer info +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields ['signer_info'] +// * containing certificate +// * containing subject_attributes['verification key'] +// * containing key (KEY) +// * and containing trailer_fields[0] +// * containing type +// * indicating 'signature' +// * and containing signature +// * NOT verifiable using KEY +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_11_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_11_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_11_0x_BO_nodeB(1)); +// 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_11_01_BO +// +// /** +// * @desc Check that IUT discards the Secured Message if the message contains trailer field of type 'signature' with reserved public key algorythms +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing trailer_fields +// * containing an instance of type TrailerField +// * containing type +// * indicating 'signature' +// * and containing signature +// * indicating X_RESERVED_PK_ALGORYTHM +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_11_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.2 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_11_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_11_0x_BO_nodeB(3)); +// 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_11_02_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_11_0x_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_11_0x_BO_nodeB( +// in integer p_trailerStatus +// ) runs on ItsGeoNetworking { +// +// // Local variables +// var GeoNetworkingPdu v_securedGnPdu; +// +// // Preamble +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredBeacon_Bo( +// cc_taCert_A, +// -, +// p_trailerStatus, +// -, +// e_certificate +// ); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_selfOrClientSyncAndVerdict(c_poDone, e_success); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_11_0x_BO_nodeB +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_11_0x_BV +// +// /** +// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'enrolment_credential' +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_EC_A) +// * containing subject_info.subject_type +// * indicating 'enrolment_credentials' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_EC)); +// 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_12_01_BO +// +// /** +// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'authorization_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_A_AA) +// * containing subject_info.subject_type +// * indicating 'enrolment_credentials' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_AA)); +// 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_12_02_BO +// +// /** +// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'enrolment_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_A_EA) +// * containing subject_info.subject_type +// * indicating 'enrolment_credentials' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_03_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_EA)); +// 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_12_03_BO +// +// /** +// * @desc Check that IUT discards a Secured GN Message if the signer certificate of the message contains the subject type 'root_ca' +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'] +// * containing signer +// * containing type +// * containing certificate +// * containing certificate (CERT_TS_A_CA) +// * containing subject_info.subject_type +// * indicating 'enrolment_credentials' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_12_04_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.3 & 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_12_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_12_0x_BO_nodeB(cc_taCert_CA)); +// 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_12_04_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_12_0x_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_12_0x_BO_nodeB( +// in charstring p_taCert +// ) runs on ItsGeoNetworking { +// +// // Local variables +// var GeoNetworkingPdu v_securedGnPdu; +// var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB); // Use NodeB +// +// // Preamble +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredBeacon( +// p_taCert, +// { +// 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_generation_location( +// valueof(m_threeDLocation( +// PX_WGSLATITUDE, +// PX_WGSLONGITUDE, +// '0000'O +// )) +// ), +// m_header_info_its_aid_Other +// }, +// e_certificate, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_selfOrClientSyncAndVerdict(c_poDone, e_success); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_12_0x_BO_nodeB +// +// } // End of group g_TC_SEC_ITSS_RCV_GENMSG_12_0x_BV +// +// /** +// * @desc Check that IUT discards secured message signed with the not yet valid certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_01_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AT > CURRENT_TIME +// * and containing end_validity +// * indicating END_VALIDITY_AT > START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1301_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_13_01_BO +// +// /** +// * @desc Check that IUT discards secured message signed with the expired certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_02_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AT < CURRENT_TIME +// * and containing end_validity +// * indicating END_VALIDITY_AT < START_VALIDITY_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1302_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_13_02_BO +// +// /** +// * @desc Check that IUT discards secured message when IUT location is outside the circular validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_03_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1303_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_13_03_BO +// +// /** +// * @desc Check that IUT discards secured message when IUT location is outside the rectangular validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_04_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_13_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_13_0x_BO_nodeB(cc_taCertMsg1304_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_13_04_BO +// +// /** +// * @desc Check that IUT discards secured message when IUT location is outside the polygonal validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_05_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'rectangle' +// * and containing rectanglar_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_05_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_13_05_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_13_0x_BO_nodeB(cc_taCertMsg1305_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_13_05_BO +// +// /** +// * @desc Check that IUT discards secured message when IUT location is outside the identified validity restriction of the signing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC +// * Config Id: CF01 +// * Expected behavior: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is inside the time validity period of CERT_TS_A_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data (MSG_SEC_RCV_GENMSG_A) +// * containing header_fields['signer_info'].signer +// * containing certificate (CERT_TS_MSG_13_06_BO_AT) +// * containing validity_restrictions['region'] +// * containing region +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * indicating REGION +// * not containing the CURRENT_IUT_LOCATION +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_13_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.3 +// */ +// testcase TC_SEC_ITSS_RCV_GENMSG_13_06_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_13_0x_BO_nodeB(cc_taCertMsg1306_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_13_06_BO +// +// group g_TC_SEC_ITSS_RCV_GENMSG_13_0x_BO { +// +// /** +// * @desc Behavior function for NodeB (TC_GEONW_PON_GBC_BV_01) +// */ +// function f_TC_SEC_ITSS_RCV_GENMSG_13_0x_BO_nodeB( +// in charstring p_taCert +// ) runs on ItsGeoNetworking { +// +// // Local variables +// f_cf01Up(); +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdict(c_prDone, e_success); +// +// // Test Body +// f_sendSecuredBeacon(p_taCert, omit, e_certificate); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// +// // Postamble +// f_selfOrClientSyncAndVerdict(c_poDone, e_success); +// +// } // End of function f_TC_SEC_ITSS_RCV_GENMSG_13_0x_BO_nodeB + + } // End of group g_TC_SEC_ITSS_RCV_GENMSG_13_0x_BV + + } // End of group recvOtherProfile + + /** + * @desc Receiving behaviour test cases for certificates profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.3.5 Profiles for certificates + */ + group recvCertificatesProfile { + +// /** +// * @desc Check that IUT discards the AT certificate with version 3 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_01_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_01_01_BO_AT) +// * containing version +// * indicating '3' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_01_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0101_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_01_BO +// +// /** +// * @desc Check that IUT discards the AT certificate with version 1 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_01_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_01_02_BO_AT) +// * containing version +// * indicating '1' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_01_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0102_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_02_BO +// +// /** +// * @desc Check that IUT discards the AA certificate with version 3 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_01_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificate[0] (CERT_TS_01_03_BO_AA) +// * containing version +// * indicating '3' +// * and containing certificate[1] (CERT_TS_01_03_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_digest_with_sha256' +// * and containing signer_info.digest +// * referencing to CERT_TS_01_03_BO_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_03_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_01_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0103_BO, -, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_03_BO +// +// /** +// * @desc Check that IUT discards the AA certificate with version 1 +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_01_04_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificate[0] (CERT_TS_01_04_BO_AA) +// * containing version +// * indicating '1' +// * and containing certificate[1] (CERT_TS_01_04_BO_AT) +// * and containing signer_info.digest +// * referencing to CERT_TS_01_04_BO_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_01_04_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.1 & 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_01_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// if (PICS_DEBUG_ADDON) { +// f_sendCertificateAndWaitForCertificateChainRequest(cc_taCert_F, f_generateDefaultCam()); +// } +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0104_BO, -, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_01_04_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization ticket certificate contains the subject type 'enrolment_credential' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_02_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_02_01_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_digest_with_sha256' +// * and containing signer_info.digest +// * referencing to certificate (CERT_TS_A_EC) +// * containing subject_info.subject_type +// * indicating 'enrolment_credential' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_01_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_02_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0201_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_01_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization authority certificate contains the subject type 'enrolment_credential' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_02_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates[0] (CERT_TS_02_02_BO_AA) +// * containing signer_info.digest +// * referencing to certificate CERT_TS_A_EC +// * containing subject_info.subject_type +// * indicating 'enrolment_credential' +// * and containing certificates[1] (CERT_TS_02_02_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_02_02_BO_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_02_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_02_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0202_BO, omit, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_02_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization ticket certificate contains the subject type 'enrolment_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_02_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_02_03_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_digest_with_sha256' +// * and containing signer_info.digest +// * referencing to certificate (CERT_TS_A_EA) +// * containing subject_info.subject_type +// * indicating 'enrolment_authority' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_03_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_02_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0203_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_03_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization authority certificate contains the subject type 'enrolment_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_02_04_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates[0] (CERT_TS_02_04_BO_AA) +// * containing signer_info.digest +// * referencing to certificate CERT_TS_A_EA +// * containing subject_info.subject_type +// * indicating 'enrolment_authority' +// * and containing certificates[1] (CERT_TS_02_04_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_02_04_BO_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_02_04_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_02_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0204_BO, omit, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_02_04_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization ticket certificate contains the subject type 'authorization_ticket' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_03_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer +// * containing certificate (CERT_TS_03_01_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_03_BO_CA +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_03_01_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_03_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0301_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_03_01_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the authorization authority certificate contains the subject type 'authorization_ticket' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_03_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates[0] (CERT_TS_03_02_BO_AA) +// * containing signer_info.digest +// * referencing to CERT_TS_03_BO_CA +// * containing subject_info.subject_type +// * indicating 'authorization_ticket' +// * and containing certificates[1] (CERT_TS_03_02_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_03_02_BO_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_03_02_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_03_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0302_BO, omit, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_03_02_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the issuer certificate of the AA certificate contains the subject type 'authorization_authority' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_04_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates[0] (CERT_TS_04_01_BO_AA) +// * containing signer_info.digest +// * referencing to CERT_TS_A_AA +// * and containing certificates[1] (CERT_TS_04_01_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_04_01_BO_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_04_01_BO +// * @reference ETSI TS 103 097 [1] Clause 6.3 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_04_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0401_BO, omit, e_certificate_chain); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_04_01_BO +// +// /** +// * @desc Check that IUT discards the message when signing AT certificate has an invalid signature +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * containing header_fields ['signer_info'].signer +// * containing type +// * containing certificate +// * and containing certificates (CERT_TS_A_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_A_AA +// * and containing signature +// * NOT verifiable with CERT_TS_A_AA.subject_attributes['verification_key'].key +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_05_01_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.1 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_05_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam_Bo( +// cc_taCert_A, +// -, +// 1, +// -, +// e_certificate, +// true, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_05_01_BO +// +// /** +// * @desc Check that IUT discards the message when the issuing AA certificate of the signing AT certificate has an invalid signature +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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 +// * containing header_fields ['signer_info'].signer +// * containing type +// * indicating 'certificate_chain' +// * and containing certificates[0] (CERT_TS_A_AT) +// * containing signer_info.digest +// * referencing to CERT_ROOT +// * and containing signature +// * NOT verifiable with CERT_ROOT.subject_attributes['verification_key'].key +// * and containing certificates[1] (CERT_TS_A_AT) +// * containing signer_info.digest +// * referencing to a CERT_TS_A_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_05_02_BO +// * @reference ETSI TS 103 097 [1] Clauses 6.1 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_05_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_prepareSecuredCam_Bo( +// cc_taCert_A, +// -, +// 1, +// -, +// e_certificate_chain, +// true, +// false, +// true +// ); +// f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu))); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(valueof(v_securedGnPdu.gnPacket.packet.payload)); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_05_02_BO +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the same circular region validity restriction as its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_01_BV_AT +// * and the IUT current location is inside the CURCULAR_REGION_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_01_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_B_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AA +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0601_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_01_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the circular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_02_BV_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_02_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_B_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AA +// * fully covering CURCULAR_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_02_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_02_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0602_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_02_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the rectangular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_03_BV_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_03_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_C_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * fully covering CURCULAR_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_03_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_03_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0603_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_03_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_04_BV_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_04_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating POLYGON_REGION_AA +// * fully covering CURCULAR_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_04_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_04_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0604_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_04_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the circular region validity restriction which is fully inside in the identified region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_05_BV_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_05_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing local_region +// * indicating 0 +// * and containing region_identifier +// * indicating ID_REGION_AT +// * fully covering CURCULAR_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_05_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0605_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_05_BV +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the circular region validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_06_BO_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_06_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_B_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0606_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_06_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message contains circular region validity restriction which is outside of the circular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_07_BO_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_07_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_06_07_BO_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AA_OUTSIDE +// * not including CURCULAR_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_07_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0607_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_07_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message contains circular region validity restriction which is not fully covered by the the circular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION +// * 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_06_08_BO_AT +// * and the IUT current location is inside the CURCULAR_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_06_08_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * containing circular_region +// * indicating CURCULAR_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_06_08_BO_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AA_INTERSECT +// * including partially CURCULAR_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_06_08_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_06_08_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_RECTANGULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_RECTANGULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0608_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_06_08_BO +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the same rectangular region validity restriction as its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_01_BV_AT +// * and the IUT current location is inside the RECT_REGION_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_01_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_C_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0701_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_01_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the rectangular region validity restriction which is fully inside in the circular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_02_BV_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_02_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_B_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AA +// fully covering the RECT_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_02_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_02_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0702_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_02_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the validity restriction with rectangular region which is fully inside in the rectangular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_03_BV_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_03_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_B_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region +// * indicating RECT_REGION_AA +// fully covering RECT_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_03_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_03_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0703_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_03_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the rectangular region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_04_BV_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_04_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating POLYGON_REGION_AA +// fully covering RECT_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_04_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_04_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0704_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_04_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the rectangular region validity restriction which is fully inside in the identified region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_05_BV_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_05_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing local_region +// * indicating 0 +// * and containing region_identifier +// * indicating ID_REGION_AT +// fully covering RECT_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_05_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0705_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_05_BV +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the rectangular region validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_06_BO_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_06_BO_AT) +// * not containing validity_restrictions['region'] +// * and containing signer_info.digest +// * referencing to a CERT_TS_C_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0706_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_06_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message contains rectangular region validity restriction which is outside of the rectangular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_07_BO_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_07_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_07_07_BO_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region[0] +// * indicating RECT_REGION_AA_OUTSIDE +// * not including RECT_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_07_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0707_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_07_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message contains rectangular region validity restriction which is not fully covered by the the rectangular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION +// * 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_07_08_BO_AT +// * and the IUT current location is inside the RECT_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_07_08_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * containing rectangular_region[0] +// * indicating RECT_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_07_08_BO_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region[0] +// * indicating RECT_REGION_AA_INTERSECT +// * not partialy RECT_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_07_08_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_07_08_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_CIRCULAR_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_CIRCULAR_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0708_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_07_08_BO +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the same polygonal region validity restriction as its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_01_BV_AT +// * and the IUT current location is inside the POLYGON_REGION_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_01_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AA +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating POLYGON_REGION_AA +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_01_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0801_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_01_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the circular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_02_BV_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_02_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_B_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * indicating CURCULAR_REGION_AA +// * fully including POLYGON_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_02_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_02_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0802_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_02_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the rectangular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_03_BV_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_03_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_C_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region[0] +// * indicating RECT_REGION_AA +// * fully including POLYGON_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_03_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_03_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0803_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_03_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_04_BV_AT +// * and the IUT current location is inside the POLYGON_REGION_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_04_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region[0] +// * indicating POLYGON_REGION_AA +// * fully including POLYGON_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_04_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_04_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0804_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_04_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the identified region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_05_BV_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_05_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing local_region +// * indicating 0 +// * and containing region_identifier +// * indicating ID_REGION_AT +// * fully including POLYGON_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_05_BV +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_05_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0805_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_05_BV +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the polygonal region validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_06_BO_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_06_BO_AT) +// * not containing validity_restrictions['region'] +// * and containing signer_info.digest +// * referencing to a CERT_TS_C_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_06_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0806_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_06_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the polygonal region validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_07_BO_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_07_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region (POLYGON_REGION_08_04_BO) +// * indicating length = 2 +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating POLYGON_REGION_AA +// * fully covering all points of POLYGON_REGION_08_04_BO +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_07_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0807_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_07_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message contains polygonal region validity restriction which is outside of the polygonal region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_08_BO_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_08_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_D_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating POLYGON_REGION_AA_OUTSIDE +// * not including POLYGON_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_08_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_08_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0808_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_08_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message contains polygonal region validity restriction which is not fully covered by the the polygonal region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION +// * 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_08_09_BO_AT +// * and the IUT current location is inside the POLYGON_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_08_09_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * containing polygonal_region +// * indicating POLYGON_REGION_AT +// * and containing signer_info.digest +// * referencing to a CERT_TS_08_08_BO_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * indicating POLYGON_REGION_AA_INTERSECT +// * including partialy POLYGON_REGION_AT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_08_09_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_08_09_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_POLYGONAL_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_POLYGONAL_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0809_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_08_09_BO +// +// /** +// * @desc Check that the IUT accepts a message when its signing certificate contains the identified region validity restriction with the same identified region as the issuing certificate and without local area definition +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_01_BV_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_01_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_01_BV +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_01_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0901_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_01_BV +// +// /** +// * @desc Check that the IUT accepts a message when its signing certificate contains the identified region validity restriction with the same identified region as the issuing certificate and with local area definition +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_02_BV_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_02_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating ID_LOCAL_REGION_1 +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_02_BV +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_02_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0902_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_02_BV +// +// /** +// * @desc Check that the IUT accepts a message when its signing certificate contains the identified region validity restriction fully containing in the circular validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_03_BV_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_03_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_09_03_BV_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'circle' +// * and containing circular_region +// * fully covering ID_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_03_BV +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_03_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0903_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_03_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the rectangular region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_04_BV_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_04_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'rectangle' +// * and containing rectangular_region[0] +// * fully covering ID_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_04_BV +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_04_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0904_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_04_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of this message contains the polygonal region validity restriction which is fully inside in the polygonal region validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_05_BV_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_05_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'polygon' +// * and containing polygonal_region +// * fully covering ID_REGION_AT +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_05_BV +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_05_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0905_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_05_BV +// +// /** +// * @desc Check that the IUT accepts a message when the signing certificate of the message contains the identified region validity restriction with the identified region which is fully covered by the identified region of the validity restriction of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_06_BV_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_06_BV_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'un_stats' +// * and containing region_identifier +// * indicating ID_REGION_AA_UNSTATS +// * which includes ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * } then { +// * the IUT accepts the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_06_BV +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_06_BV() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0906_BV, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": PASS: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// else { +// log("*** " & testcasename() & ": FAIL: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_06_BV +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate of this message does not contain the region validity restriction but its issuing certificate contains the identified region validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_07_BO_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_07_BO_AT) +// * not containing validity_restrictions['region'] +// * and containing signer_info.digest +// * referencing to a CERT_TS_E_AA +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_07_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_07_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0907_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_07_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing certificate and its issuing certificate are both containing the identified region validity restrictions with the same region id but different local regions +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_08_BO_AT +// * and the IUT current location is inside the ID_REGION_AA, local region 1 +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_08_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating ID_LOCAL_REGION_1 +// * and containing signer_info.digest +// * referencing to a CERT_TS_09_08_BO_AA +// * containing validity_restrictions['region'] +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AA +// * and containing local_region +// * indicating ID_LOCAL_REGION_2 +// * not equal to ID_LOCAL_REGION_1 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_08_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_08_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0908_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_08_BO +// +// /** +// * @desc Check that the IUT discards a message when the identified region of the validity restriction of its signing certificate is different and not fully covered by the one in the issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_09_BO_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_09_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_09_09_BO_AA +// * containing validity_restrictions['region'] +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AA_OTHER +// * other than ID_REGION_AT +// * and containing local_region +// * indicating 0 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_09_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_09_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0909_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_09_BO +// +// /** +// * @desc Check that the IUT discards a message when the identified region validity restriction of its signing certificate contains unknown area code +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_10_BO_AT +// * and the IUT current location is inside the ID_REGION_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_10_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_UNKNOWN +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_A_AA +// * not containing validity_restrictions['region'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_10_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_10_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0910_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_10_BO +// +// /** +// * @desc Check that the IUT discards a message when the validity restriction of its signing certificate contains the identified region of type iso-3166-1 but region code is from the UN-Stats dictionary +// *
+// * Pics Selection: PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION +// * 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_09_11_BO_AT +// * and the IUT current location is inside the ID_REGION_AA_UNSTATS +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_09_11_BO_AT) +// * containing validity_restrictions['region'] +// * containing region_type +// * indicating 'id' +// * and containing id_region +// * containing region_dictionary +// * indicating 'iso_3166_1' +// * and containing region_identifier +// * indicating ID_REGION_AA_UNSTATS +// * and containing local_region +// * indicating 0 +// * and containing signer_info.digest +// * referencing to a CERT_TS_A_AA +// * not containing validity_restrictions['region'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_09_11_BO +// * @reference ETSI TS 103 097 [1] Clauses 4.2.26 and 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_09_11_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY) or not(PICS_USE_IDENTIFIED_REGION)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY and PICS_USE_IDENTIFIED_REGION' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert0911_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_09_11_BO +// +// /** +// * @desc Check that the IUT discards a message when its signing certificate does not contain the time validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_10_01_BO_AT +// * and the IUT current location is inside the CERT_TS_10_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_10_01_BO_AT) +// * containing validity_restrictions['time_start_and_end'] +// * and not containing validity_restrictions['time_end'] +// * and not containing validity_restrictions['time_start_and_duration'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_10_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1001_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_01_BO +// +// /** +// * @desc Check that the IUT discards a message when the issuing certificate of the message signing certificate does not contain the time validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current location is inside the CERT_TS_10_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_10_02_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_10_02_BO_AA +// * containing validity_restrictions['time_start_and_end'] +// * and not containing validity_restrictions['time_end'] +// * and not containing validity_restrictions['time_start_and_duration'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_10_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1002_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_02_BO +// +// /** +// * @desc Check that the IUT discards a message when its signing certificate contains 'time_end' validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is less then time_end validity restricyion of CERT_TS_10_03_BO_AT +// * and the IUT current location is inside the CERT_TS_10_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_10_03_BO_AT) +// * containing validity_restrictions['time_end'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_03_BO +// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_10_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1003_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_03_BO +// +// /** +// * @desc Check that the IUT discards a message when its signing certificate contains 'time_start_and_duration' validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_10_04_BO_AT +// * and the IUT current location is inside the CERT_TS_10_04_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_10_04_BO_AT) +// * containing validity_restrictions['time_start_and_duration'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_04_BO +// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_10_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1004_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_04_BO +// +// /** +// * @desc Check that the IUT discards a message when the issuing certificate of the message signing certificate contains 'time_end' validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is less then time_end validity restricyion of CERT_TS_10_05_BO_AT +// * and the IUT current location is inside the CERT_TS_10_05_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_10_05_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_10_05_BO_AA +// * containing validity_restrictions['time_end'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_05_BO +// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_10_05_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1005_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_05_BO +// +// /** +// * @desc Check that the IUT discards a message when its signing certificate contains 'time_start_and_duration' validity restriction +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is less then time_end validity restricyion of CERT_TS_10_06_BO_AT +// * and the IUT current location is inside the CERT_TS_10_06_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields['signer_info'] +// * and containing signer +// * containing type +// * containing certificate +// * and containing certificate (CERT_TS_10_06_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_10_06_BO_AA +// * containing validity_restrictions['time_start_and_duration'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_10_06_BO +// * @reference ETSI TS 103 097 [1] Clauses 7.4.2 & 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_10_06_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1006_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_10_06_BO +// +// /** +// * @desc Check that the IUT discards a message when the validity period of the signing certificate ends after the validity period of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_01_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_A_AA +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA +// * and containing end_validity +// * indicating END_VALIDITY_AA +// * and containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA +// * and containing end_validity +// * indicating END_VALIDITY_AA + 1d +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_11_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1101_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_01_BO +// +// /** +// * @desc Check that the IUT discards a message when the validity period of its signing certificate starts before the validity period of the issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_02_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_A_AA +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA +// * and containing end_validity +// * indicating END_VALIDITY_AA +// * and containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA - 1d +// * and containing end_validity +// * indicating END_VALIDITY_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_11_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1102_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_02_BO +// +// /** +// * @desc Check that the IUT discards a message when the issuing certificate of signing certificate is expired but the signing certificate is not expired yet. +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_03_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_A_AA +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA - 365d +// * and containing end_validity +// * indicating END_VALIDITY_AA - 1d +// * and containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA - 365d +// * and containing end_validity +// * indicating END_VALIDITY_AA +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_11_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1103_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_03_BO +// +// /** +// * @desc Check that the IUT discards a message when the validity period of the signing certificate is after the validity period of its issuing certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_11_04_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_A_AA +// * containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA +// * and containing end_validity +// * indicating END_VALIDITY_AA + 365d +// * and containing validity_restrictions['time_start_and_end'] +// * containing start_validity +// * indicating START_VALIDITY_AA +// * and containing end_validity +// * indicating END_VALIDITY_AA + 365d +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_11_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_11_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1104_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_11_04_BO +// +// /** +// * @desc Check that the IUT discards a message when its signing certificate does not contain the SSP-AID subject attribute +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_12_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Ieee1609Dot2Data +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_12_01_BO_AT) +// * not containing subject_attributes['its_aid_ssp_list'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_12_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1201_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_01_BO +// +// /** +// * @desc Check that the IUT discards a Secured CAM when its signing certificate does not contain a record with AID_CAM in the its_aid_ssp_list subject attribute +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_12_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['its_aid'] +// * containing its_aid +// * indicating 'AID_CAM' +// * and containing header_fields ['signer_info'] +// * containing signer +// * containing certificate +// * indicating CERT_TS_12_02_BO_AT +// * containing subject_attributes['its_aid_ssp_list'] +// * not containing an item +// * containing its_aid +// * indicating 'AID_CAM' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_12_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1202_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_02_BO +// +// /** +// * @desc Check that the IUT discards a Secured DENM when its signing certificate does not contain a record with AID_DENM in the its_aid_ssp_list subject attribute +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_12_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured DENM (MSG_SEC_RCV_DENM_A) +// * containing header_fields ['its_aid'] +// * containing its_aid +// * indicating 'AID_DENM' +// * and containing header_fields ['signer_info'] +// * containing signer +// * containing certificate +// * indicating CERT_TS_12_03_BO_AT +// * containing subject_attributes['its_aid_ssp_list'] +// * not containing an item +// * containing its_aid +// * indicating 'AID_DENM' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_12_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert1203_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_03_BO +// +// /** +// * @desc Check that the IUT discards a Secured CAM when its signing certificate contains two records with AID_CAM in the its_aid_ssp_list subject attribute +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * and the IUT current time is greater than START_VALIDITY_AA and less than END_VALIDITY_AA +// * and the IUT current location is inside the CERT_TS_12_04_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['its_aid'] +// * containing its_aid +// * indicating 'AID_CAM' +// * and containing header_fields ['signer_info'] +// * containing signer +// * containing certificate +// * indicating CERT_TS_12_04_BO_AT +// * containing subject_attributes['its_aid_ssp_list'] +// * containing item [0].its_aid +// * indicating 'AID_CAM' +// * and containing item [1].its_aid +// * indicating 'AID_CAM' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_12_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_12_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1204_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_12_04_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing AT certificate contains a CAM AID-SSP record whereas the issuing AA certificate does not contain the record with AID_CAM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_13_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_13_01_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_13_01_BO_AA +// * containing validity_restrictions['its_aid_list'] +// * not containing 'AID_CAM' +// * and containing validity_restrictions['its_aid_ssp_list'] +// * containing a record +// * containing its_aid +// * indicating 'AID_CAM' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_13_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_13_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1301_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_13_01_BO +// +// /** +// * @desc Check that the IUT discards a message when the signing AT certificate contains a DENM AID-SSP record whereas the issuing AA certificate does not contain the AID record with AID_DENM +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_13_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured DENM (MSG_SEC_RCV_DENM_A) +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_13_02_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_13_02_BO_AA +// * containing validity_restrictions['its_aid_list'] +// * not containing 'AID_DENM' +// * and containing validity_restrictions['its_aid_ssp_list'] +// * containing a record +// * containing its_aid +// * indicating 'AID_DENM' +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_13_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_13_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert1302_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_13_02_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the AA certificate does not contain a subject_attribute of type its_aid_list +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_13_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_13_03_BO_AT) +// * containing signer_info.digest +// * referencing to CERT_TS_13_03_BO_AA +// * not containing validity_restrictions['its_aid_list'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_13_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_13_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredDenm(cc_taCert1303_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_13_03_BO +// +// /** +// * @desc Check that IUT discards the AT certificate with signer info of type 'certificate' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_14_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_14_01_BO_AT) +// * containing signer_info.type +// * containing certificate +// * and containing certificate +// * indicating CERT_TS_AA_A +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_14_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_14_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1401_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_14_01_BO +// +// /** +// * @desc Check that IUT discards the AT certificate with signer info of type 'certificate_chain' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_14_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_14_02_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_chain' +// * and containing certificates[0] +// * indicating certificate (CERT_TEST_ROOT) +// * and containing certificates[1] +// * indicating certificate (CERT_TS_AA_A) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_14_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_14_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1402_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_14_02_BO +// +// /** +// * @desc Check that IUT discards the AT certificate with signer info of type 'certificate_digest_with_other_algorithm' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_14_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_14_03_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_digest_with_other_algorithm' +// * and containing digest +// * referencing CERT_TS_AA_A +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_14_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_14_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1403_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_14_03_BO +// +// /** +// * @desc Check that IUT discards the AA certificate with signer info of type 'certificate' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_15_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_15_01_BO_AT) +// * containing signer_info.digest +// * referencing to certificate (CERT_TS_15_01_BO_AA) +// * containing signer_info +// * containing type +// * containing certificate +// * and containing certificate +// * indicating CERT_TEST_ROOT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_15_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_15_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1501_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_15_01_BO +// +// /** +// * @desc Check that IUT discards the AA certificate with signer info of type 'certificate_chain' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_15_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_15_02_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_chain' +// * and containing certificates[0] +// * indicating certificate (CERT_TEST_ROOT) +// * and containing certificates[1] +// * indicating certificate (CERT_TS_15_02_BO_CA) +// * containing signer_info +// * containing type +// * indicating 'certificate_digest_with_sha256' +// * and containing digest +// * referencing to CERT_TEST_ROOT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_15_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_15_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1502_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_15_02_BO +// +// /** +// * @desc Check that IUT discards the AA certificate with signer info of type 'certificate_digest_with_other_algorithm' +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_15_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_15_03_BO_AT) +// * containing signer_info.type +// * indicating 'certificate_digest_with_other_algorithm' +// * and containing digest +// * referencing CERT_TEST_ROOT +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_15_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.4 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_15_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1503_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_15_03_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject_name of the AT certificate is not an empty name field +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_16_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_16_01_BO_AT) +// * containing signer_info.digest +// * referencing to certificate (CERT_TS_16_01_BO_AA) +// * containing signer_infosubject_name +// * indicating non-empty string ('Invalid name') +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_16_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.2 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_16_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1601_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_16_01_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type assurance_level is missing in the AT certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_17_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_17_01_BO_AT) +// * not containing subject_attributes['assurance_level'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_17_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1701_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_01_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type assurance_level is missing in the AA certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_17_02_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_17_02_BO_AT) +// * containing signer_info.digest +// * referencing to certificate (CERT_TS_17_02_BO_AA) +// * not containing subject_attributes['assurance_level'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_17_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1702_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_02_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the assurance level of issuing certificate is less then assurance level of subordinate certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_17_03_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_17_03_BO_AT) +// * containing subject_attributes['assurance_level'] +// * containing assurance_level +// * indicating 0x80 (assurance level=4, confidence=0) +// * and containing signer_info.digest +// * referencing to certificate (CERT_TS_A_AA) +// * containing subject_attributes['assurance_level'] +// * containing assurance_level +// * indicating 0x60 (assurance level=3, confidence=0) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_03_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_17_03_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1703_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_03_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the assurance level of issuing certificate is equal to the assurance level of the subordinate certificate but the confidence of subject assurance of issuing certificate is less then the confidence of the subordinate certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_17_04_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_17_04_BO_AT) +// * containing subject_attributes['assurance_level'] +// * containing assurance_level +// * indicating 0x61 (assurance level=3, confidence=1) +// * and containing signer_info.digest +// * referencing to certificate (CERT_TS_A_AA) +// * containing subject_attributes['assurance_level'] +// * containing assurance_level +// * indicating 0x60 (assurance level=3, confidence=0) +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_17_04_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_17_04_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1704_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_17_04_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type verification_key is missing in the AT certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_18_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_18_01_BO_AT) +// * not containing subject_attributes['verification_key'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_18_01_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_18_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1801_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_18_01_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the subject attribute of type verification_key is missing in the AA certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * 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_18_01_BO_AT +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.type +// * containing certificate +// * and containing certificate (CERT_TS_18_02_BO_AT) +// * containing signer_info.digest +// * referencing to certificate (CERT_TS_18_02_BO_AA) +// * not containing subject_attributes['verification_key'] +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_18_02_BO +// * @reference ETSI TS 103 097 [1] Clause 7.4.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_18_02_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1802_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_18_02_BO +// +// /** +// * @desc Check that IUT discards a Ieee1609Dot2Data if the reserved region type has been used in region validity restriction of the AT certificate +// *
+// * Pics Selection: PICS_GN_SECURITY +// * Config Id: CF01 +// * Initial conditions: +// * with { +// * the IUT being in the 'authorized' state +// * } +// * ensure that { +// * when { +// * the IUT is receiving a Secured CAM (MSG_SEC_RCV_CAM_01) +// * containing header_fields ['signer_info'].signer.certificate (CERT_TS_19_01_BO_AT) +// * containing region_type +// * indicating 240 +// * } then { +// * the IUT discards the message +// * } +// * } +// *+// * +// * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_CERT_19_01_BO +// * @reference ETSI TS 103 097 [1] Clause 4.2.2.1 +// */ +// testcase TC_SEC_ITSS_RCV_CERT_19_01_BO() runs on ItsGeoNetworking system ItsSecSystem { +// +// // Local variables +// var integer i; +// var GeoNetworkingPdu v_securedGnPdu; +// var GnRawPayload v_sentRawPayload; +// +// // Test adapter configuration +// if (not(PICS_GN_SECURITY)) { +// log("*** " & testcasename() & ":ERROR: 'PICS_GN_SECURITY' required for executing the TC ***"); +// stop; +// } +// +// // Test component configuration +// f_cf01Up(); +// +// // Test adapter configuration +// +// // Preamble +// f_prNeighbour(); +// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); +// +// // Test Body +// v_securedGnPdu := f_sendSecuredCam(cc_taCert1901_BO, omit, e_certificate); +// +// f_sleep(PX_TNOAC); +// v_sentRawPayload := valueof(v_securedGnPdu.gnPacket.packet.payload); +// for (i := 0; i < lengthof(vc_utInds) and not match(vc_utInds[i].rawPayload, v_sentRawPayload); i := i + 1) { +// // Empty on purpose +// } +// if (i < lengthof(vc_utInds)) { +// log("*** " & testcasename() & ": FAIL: GN was transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error); +// } +// else { +// log("*** " & testcasename() & ": PASS: GN was not transmitted to upper layer***"); +// f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success); +// } +// +// // Postamble +// f_poNeighbour(); +// f_cf01Down(); +// } // End of testcase TC_SEC_ITSS_RCV_CERT_19_01_BO +// + } // End of group recvCertificatesProfile +// +// } // End of group receiverbehavior +// +} // End of module ItsSecurity_TestCase diff --git a/ttcn/AtsSecurity/ItsSecurity_TestControl.ttcn b/ttcn/AtsSecurity/ItsSecurity_TestControl.ttcn index e13a003d83c2c910ad6ba692a4a4b6374f48990f..db34b6af12cd0197c247da3d5019acdfa650c8dd 100644 --- a/ttcn/AtsSecurity/ItsSecurity_TestControl.ttcn +++ b/ttcn/AtsSecurity/ItsSecurity_TestControl.ttcn @@ -1,141 +1,141 @@ -/** - * @author ETSI / STF481 / STF507 / STF517 - * @version $URL$ - * $Id$ - * @desc Test Control file for Security Protocol - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsSecurity_TestControl { - - // LibItsGeoNetworking - import from LibItsGeoNetworking_Pics all; - - // ItsSecurity - import from ItsSecurity_TestCases all; - import from LibItsSecurity_Pics all; - - // Test Execution - control { - - /** - * @desc Sending behaviour test cases - * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2 Sending behaviour - */ - if (PICS_GN_SECURITY) { - execute(TC_SEC_ITSS_SND_MSG_01_BV()); - - /** - * @desc Sending behaviour test cases for CAM profile - * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2.4 CAM profile - */ - execute(TC_SEC_ITSS_SND_CAM_01_BV()); - execute(TC_SEC_ITSS_SND_CAM_02_BV()); - execute(TC_SEC_ITSS_SND_CAM_03_BV()); - execute(TC_SEC_ITSS_SND_CAM_04_BV()); - execute(TC_SEC_ITSS_SND_CAM_05_BV()); - execute(TC_SEC_ITSS_SND_CAM_06_BV()); - execute(TC_SEC_ITSS_SND_CAM_07_BV()); - execute(TC_SEC_ITSS_SND_CAM_08_BV()); - execute(TC_SEC_ITSS_SND_CAM_09_BV()); - execute(TC_SEC_ITSS_SND_CAM_10_BV()); - execute(TC_SEC_ITSS_SND_CAM_11_01_BV()); - execute(TC_SEC_ITSS_SND_CAM_11_02_BV()); - execute(TC_SEC_ITSS_SND_CAM_12_BV()); - execute(TC_SEC_ITSS_SND_CAM_13_BV()); - execute(TC_SEC_ITSS_SND_CAM_14_BV()); - execute(TC_SEC_ITSS_SND_CAM_15_BV()); - execute(TC_SEC_ITSS_SND_CAM_16_BV()); - execute(TC_SEC_ITSS_SND_CAM_17_BV()); - execute(TC_SEC_ITSS_SND_CAM_18_BV()); - execute(TC_SEC_ITSS_SND_CAM_19_BV()); - execute(TC_SEC_ITSS_SND_CAM_20_BV()); - execute(TC_SEC_ITSS_SND_CAM_21_BV()); - execute(TC_SEC_ITSS_SND_CAM_22_BV()); - execute(TC_SEC_ITSS_SND_CAM_23_BV()); - execute(TC_SEC_ITSS_SND_CAM_24_BV()); - execute(TC_SEC_ITSS_SND_CAM_25_BV()); - execute(TC_SEC_ITSS_SND_CAM_26_BV()); - execute(TC_SEC_ITSS_SND_CAM_27_BV()); - - /** - * @desc Sending behaviour test cases for DENM profile - * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2.5 DENM profile - */ - execute(TC_SEC_ITSS_SND_DENM_01_BV()); - execute(TC_SEC_ITSS_SND_DENM_02_BV()); - execute(TC_SEC_ITSS_SND_DENM_03_BV()); - execute(TC_SEC_ITSS_SND_DENM_04_BV()); - execute(TC_SEC_ITSS_SND_DENM_05_BV()); - execute(TC_SEC_ITSS_SND_DENM_06_BV()); - execute(TC_SEC_ITSS_SND_DENM_07_BV()); - execute(TC_SEC_ITSS_SND_DENM_08_BV()); - execute(TC_SEC_ITSS_SND_DENM_09_BV()); - execute(TC_SEC_ITSS_SND_DENM_10_BV()); - execute(TC_SEC_ITSS_SND_DENM_11_BV()); - execute(TC_SEC_ITSS_SND_DENM_12_BV()); - execute(TC_SEC_ITSS_SND_DENM_13_BV()); - execute(TC_SEC_ITSS_SND_DENM_14_BV()); - execute(TC_SEC_ITSS_SND_DENM_15_BV()); - execute(TC_SEC_ITSS_SND_DENM_16_BV()); - execute(TC_SEC_ITSS_SND_DENM_17_BV()); - execute(TC_SEC_ITSS_SND_DENM_18_BV()); - - /** - * @desc Sending behaviour test cases for DENM profile - * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2.6 Generic signed message profile - */ - execute(TC_SEC_ITSS_SND_GENMSG_01_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_02_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_03_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_04_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_05_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_06_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_07_BV()); - execute(TC_SEC_ITSS_SND_GENMSG_08_BV()); - - /** - * @desc Sending behaviour test cases for certificates profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7 Encrypted messages profile - */ - if (PICS_SEC_ENCRYPTION_SUPPORT) { - execute(TC_SEC_ITSS_SND_ENC_01_BV()); - execute(TC_SEC_ITSS_SND_ENC_02_BV()); - execute(TC_SEC_ITSS_SND_ENC_03_BV()); - execute(TC_SEC_ITSS_SND_ENC_04_BV()); - execute(TC_SEC_ITSS_SND_ENC_05_BV()); - } - - /** - * @desc Sending behaviour test cases for certificates profile - * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.8 Profiles for certificates - */ - execute(TC_SEC_ITSS_SND_CERT_01_BV()); - execute(TC_SEC_ITSS_SND_CERT_02_BV()); - execute(TC_SEC_ITSS_SND_CERT_03_BV()); - execute(TC_SEC_ITSS_SND_CERT_04_BV()); - execute(TC_SEC_ITSS_SND_CERT_05_BV()); - execute(TC_SEC_ITSS_SND_CERT_06_BV()); - execute(TC_SEC_ITSS_SND_CERT_07_BV()); - execute(TC_SEC_ITSS_SND_CERT_08_BV()); - execute(TC_SEC_ITSS_SND_CERT_09_BV()); - // TODO execute(TC_SEC_ITSS_SND_CERT_10_BV()); - execute(TC_SEC_ITSS_SND_CERT_11_BV()); - execute(TC_SEC_ITSS_SND_CERT_12_BV()); - execute(TC_SEC_ITSS_SND_CERT_13_BV()); - execute(TC_SEC_ITSS_SND_CERT_14_BV()); - execute(TC_SEC_ITSS_SND_CERT_15_BV()); - execute(TC_SEC_ITSS_SND_CERT_16_BV()); - execute(TC_SEC_ITSS_SND_CERT_17_BV()); - execute(TC_SEC_ITSS_SND_CERT_18_BV()); - execute(TC_SEC_ITSS_SND_CERT_19_BV()); - execute(TC_SEC_ITSS_SND_CERT_20_BV()); - execute(TC_SEC_ITSS_SND_CERT_21_BV()); - } - - } // End of 'control' statement - +/** + * @author ETSI / STF481 / STF507 / STF517 + * @version $Url$ + * $Id$ + * @desc Test Control file for Security Protocol + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsSecurity_TestControl { + + // LibItsGeoNetworking + import from LibItsGeoNetworking_Pics all; + + // ItsSecurity + import from ItsSecurity_TestCases all; + import from LibItsSecurity_Pics all; + + // Test Execution + control { + + /** + * @desc Sending behaviour test cases + * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2 Sending behaviour + */ + if (PICS_GN_SECURITY) { + execute(TC_SEC_ITSS_SND_MSG_01_BV()); + + /** + * @desc Sending behaviour test cases for CAM profile + * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2.4 CAM profile + */ + execute(TC_SEC_ITSS_SND_CAM_01_BV()); + execute(TC_SEC_ITSS_SND_CAM_02_BV()); + execute(TC_SEC_ITSS_SND_CAM_03_BV()); + execute(TC_SEC_ITSS_SND_CAM_04_BV()); + execute(TC_SEC_ITSS_SND_CAM_05_BV()); + execute(TC_SEC_ITSS_SND_CAM_06_BV()); + execute(TC_SEC_ITSS_SND_CAM_07_BV()); + execute(TC_SEC_ITSS_SND_CAM_08_BV()); + execute(TC_SEC_ITSS_SND_CAM_09_BV()); + execute(TC_SEC_ITSS_SND_CAM_10_BV()); + execute(TC_SEC_ITSS_SND_CAM_11_01_BV()); + execute(TC_SEC_ITSS_SND_CAM_11_02_BV()); + execute(TC_SEC_ITSS_SND_CAM_12_BV()); + execute(TC_SEC_ITSS_SND_CAM_13_BV()); + execute(TC_SEC_ITSS_SND_CAM_14_BV()); + execute(TC_SEC_ITSS_SND_CAM_15_BV()); + execute(TC_SEC_ITSS_SND_CAM_16_BV()); + execute(TC_SEC_ITSS_SND_CAM_17_BV()); + execute(TC_SEC_ITSS_SND_CAM_18_BV()); + execute(TC_SEC_ITSS_SND_CAM_19_BV()); + execute(TC_SEC_ITSS_SND_CAM_20_BV()); + execute(TC_SEC_ITSS_SND_CAM_21_BV()); + execute(TC_SEC_ITSS_SND_CAM_22_BV()); + execute(TC_SEC_ITSS_SND_CAM_23_BV()); + execute(TC_SEC_ITSS_SND_CAM_24_BV()); + execute(TC_SEC_ITSS_SND_CAM_25_BV()); + execute(TC_SEC_ITSS_SND_CAM_26_BV()); + execute(TC_SEC_ITSS_SND_CAM_27_BV()); + + /** + * @desc Sending behaviour test cases for DENM profile + * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2.5 DENM profile + */ + execute(TC_SEC_ITSS_SND_DENM_01_BV()); + execute(TC_SEC_ITSS_SND_DENM_02_BV()); + execute(TC_SEC_ITSS_SND_DENM_03_BV()); + execute(TC_SEC_ITSS_SND_DENM_04_BV()); + execute(TC_SEC_ITSS_SND_DENM_05_BV()); + execute(TC_SEC_ITSS_SND_DENM_06_BV()); + execute(TC_SEC_ITSS_SND_DENM_07_BV()); + execute(TC_SEC_ITSS_SND_DENM_08_BV()); + execute(TC_SEC_ITSS_SND_DENM_09_BV()); + execute(TC_SEC_ITSS_SND_DENM_10_BV()); + execute(TC_SEC_ITSS_SND_DENM_11_BV()); + execute(TC_SEC_ITSS_SND_DENM_12_BV()); + execute(TC_SEC_ITSS_SND_DENM_13_BV()); + execute(TC_SEC_ITSS_SND_DENM_14_BV()); + execute(TC_SEC_ITSS_SND_DENM_15_BV()); + execute(TC_SEC_ITSS_SND_DENM_16_BV()); + execute(TC_SEC_ITSS_SND_DENM_17_BV()); + execute(TC_SEC_ITSS_SND_DENM_18_BV()); + + /** + * @desc Sending behaviour test cases for DENM profile + * @see ETSI TS 103 096-2 V1.2.2 (2016-01) Clause 5.2.6 Generic signed message profile + */ + execute(TC_SEC_ITSS_SND_GENMSG_01_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_02_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_03_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_04_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_05_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_06_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_07_BV()); + execute(TC_SEC_ITSS_SND_GENMSG_08_BV()); + + /** + * @desc Sending behaviour test cases for certificates profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.7 Encrypted messages profile + */ + if (PICS_SEC_ENCRYPTION_SUPPORT) { + execute(TC_SEC_ITSS_SND_ENC_01_BV()); + execute(TC_SEC_ITSS_SND_ENC_02_BV()); + execute(TC_SEC_ITSS_SND_ENC_03_BV()); + execute(TC_SEC_ITSS_SND_ENC_04_BV()); + execute(TC_SEC_ITSS_SND_ENC_05_BV()); + } + + /** + * @desc Sending behaviour test cases for certificates profile + * @see ETSI TS 103 096-2 V1.3.32 (2018-01) Clause 5.2.8 Profiles for certificates + */ + execute(TC_SEC_ITSS_SND_CERT_01_BV()); + execute(TC_SEC_ITSS_SND_CERT_02_BV()); + execute(TC_SEC_ITSS_SND_CERT_03_BV()); + execute(TC_SEC_ITSS_SND_CERT_04_BV()); + execute(TC_SEC_ITSS_SND_CERT_05_BV()); + execute(TC_SEC_ITSS_SND_CERT_06_BV()); + execute(TC_SEC_ITSS_SND_CERT_07_BV()); + execute(TC_SEC_ITSS_SND_CERT_08_BV()); + execute(TC_SEC_ITSS_SND_CERT_09_BV()); + // TODO execute(TC_SEC_ITSS_SND_CERT_10_BV()); + execute(TC_SEC_ITSS_SND_CERT_11_BV()); + execute(TC_SEC_ITSS_SND_CERT_12_BV()); + execute(TC_SEC_ITSS_SND_CERT_13_BV()); + execute(TC_SEC_ITSS_SND_CERT_14_BV()); + execute(TC_SEC_ITSS_SND_CERT_15_BV()); + execute(TC_SEC_ITSS_SND_CERT_16_BV()); + execute(TC_SEC_ITSS_SND_CERT_17_BV()); + execute(TC_SEC_ITSS_SND_CERT_18_BV()); + execute(TC_SEC_ITSS_SND_CERT_19_BV()); + execute(TC_SEC_ITSS_SND_CERT_20_BV()); + execute(TC_SEC_ITSS_SND_CERT_21_BV()); + } + + } // End of 'control' statement + } // End of module ItsSecurity_TestControl \ No newline at end of file diff --git a/ttcn/AtsSecurity/ItsSecurity_TestSystem.ttcn b/ttcn/AtsSecurity/ItsSecurity_TestSystem.ttcn index b05f9e20367cc2c6227b3e0f03aba6ef91a0e93f..62762a3516ee57bd6f47b938b85306b0237a05c8 100644 --- a/ttcn/AtsSecurity/ItsSecurity_TestSystem.ttcn +++ b/ttcn/AtsSecurity/ItsSecurity_TestSystem.ttcn @@ -1,40 +1,40 @@ -/** - * @author ETSI / STF481 / STF507 / STF517 - * @version $URL$ - * $Id$ - * @desc Module containing t fest system description for the secured GN ATS - * @copyright ETSI Copyright Notification - * No part may be reproduced except as authorized by written permission. - * The copyright and the foregoing restriction extend to reproduction in all media. - * All rights reserved. - * - */ -module ItsSecurity_TestSystem { - - import from LibItsCam_TestSystem all; - import from LibItsDenm_TestSystem all; - import from LibItsGeoNetworking_TestSystem all; - - /** - * @desc Secured GN test system description - * @member acPort Test Adapter control port - * @member geoNetworkingPort GeoNetworking port - * @member utPort GeoNetworking UT port - * @member denmUtPort DENM UT port - * @member cammUtPort CAM UT port - */ - type component ItsSecSystem { - - port LibItsGeoNetworking_TestSystem.AdapterControlPort acPort; - - // NT2 ports - port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort; - port GeoNetworkingPort geoNetworkingPort; - - // FA ports - port LibItsDenm_TestSystem.UpperTesterPort denmUtPort; - port LibItsCam_TestSystem.UpperTesterPort camUtPort; - - } // end ItsGeoNetworkingSystem - +/** + * @author ETSI / STF481 / STF507 / STF517 / STF538 / STF545 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsSecurity/ItsSecurity_TestSystem.ttcn $ + * $Id: ItsSecurity_TestSystem.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Module containing t fest system description for the secured GN ATS + * @copyright ETSI Copyright Notification + * No part may be reproduced except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * All rights reserved. + * + */ +module ItsSecurity_TestSystem { + + import from LibItsCam_TestSystem all; + import from LibItsDenm_TestSystem all; + import from LibItsGeoNetworking_TestSystem all; + + /** + * @desc Secured GN test system description + * @member acPort Test Adapter control port + * @member geoNetworkingPort GeoNetworking port + * @member utPort GeoNetworking UT port + * @member denmUtPort DENM UT port + * @member cammUtPort CAM UT port + */ + type component ItsSecSystem { + + port LibItsGeoNetworking_TestSystem.AdapterControlPort acPort; + + // NT2 ports + port LibItsGeoNetworking_TestSystem.UpperTesterPort utPort; + port GeoNetworkingPort geoNetworkingPort; + + // FA ports + port LibItsDenm_TestSystem.UpperTesterPort denmUtPort; + port LibItsCam_TestSystem.UpperTesterPort camUtPort; + + } // end ItsGeoNetworkingSystem + } // End of module ItsSecurity_TestSystem \ No newline at end of file diff --git a/ttcn/LibIts b/ttcn/LibIts index 9c7f6e8cc5a2c56359f7732412d9c0c4977d93fa..4441b8674ddf47a379b095252c0e0d55c18bbf75 160000 --- a/ttcn/LibIts +++ b/ttcn/LibIts @@ -1 +1 @@ -Subproject commit 9c7f6e8cc5a2c56359f7732412d9c0c4977d93fa +Subproject commit 4441b8674ddf47a379b095252c0e0d55c18bbf75