Newer
Older
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
28649
28650
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
28712
28713
28714
28715
28716
28717
28718
28719
28720
28721
28722
28723
28724
28725
28726
28727
28728
28729
28730
28731
28732
28733
28734
28735
28736
28737
28738
28739
28740
28741
28742
28743
28744
28745
28746
28747
28748
28749
28750
28751
28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
28803
28804
28805
28806
28807
28808
28809
28810
28811
28812
28813
28814
28815
28816
28817
28818
28819
28820
28821
28822
28823
28824
28825
28826
28827
28828
28829
28830
28831
28832
28833
28834
28835
28836
28837
28838
28839
28840
28841
28842
28843
28844
28845
28846
28847
28848
28849
28850
28851
28852
28853
28854
28855
28856
28857
28858
28859
28860
28861
28862
28863
28864
28865
28866
28867
28868
28869
28870
28871
28872
28873
28874
28875
28876
28877
28878
28879
28880
28881
28882
28883
28884
28885
28886
28887
28888
28889
28890
28891
28892
28893
28894
28895
28896
28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
28912
28913
28914
28915
28916
28917
28918
28919
28920
28921
28922
28923
28924
28925
28926
28927
28928
28929
28930
28931
28932
28933
28934
28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
28947
28948
28949
28950
28951
28952
28953
28954
28955
28956
28957
28958
28959
28960
28961
28962
28963
28964
28965
28966
28967
28968
28969
28970
28971
28972
28973
28974
28975
28976
28977
28978
28979
28980
28981
28982
28983
28984
28985
28986
28987
28988
28989
28990
28991
28992
28993
28994
28995
28996
28997
28998
28999
29000
+ * @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_field_signer_info(
+ m_signerInfo_other_certificates(
+ m_certificateWithAlgo_ecdsa(
+ PX_OTHER_CERT_DIGEST
+ ))),
+ m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_certificate_digest_with_other_algorithm,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_05_02_BO
+
+ } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_02_BO
+
+ /**
+ * @desc Check that IUT discards a secured GN Beacon if the header_fields contains a signer of type 'certificate_chain'
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields['signer_info']
+ * containing signer.type
+ * indicating 'certificate_chain'
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_certificates(
+ { vc_atCertificate }
+ )),
+ m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_certificate_chain,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_05_03_BO
+
+ } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_03_BO
+
+ /**
+ * @desc Check that IUT discards a Secured Messageif the header_fields contains a signer info of unknown or reserved type
+ * @remark Values to be used as X_UNKNOWN_SIGNERINFO_TYPE are 5, 239, 240 and 255
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields['signer_info']
+ * containing signer.type
+ * indicating X_UNKNOWN_SIGNERINFO_TYPE
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_unknown(
+ 'CAFFEEDECA'O
+ )),
+ m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_unknown,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_05_04_BO
+
+ } // End of group g_TC_SEC_ITSS_RCV_GENMSG_05_04_BO
+
+ /**
+ * @desc Check that IUT discards a secured GN Message containing generation_time before the message signing certificate validity period
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields['signer_info'].type
+ * indicating 'signer_info'
+ * containing certificate (CERT_TS_MSG_06_01_BO_AT)
+ * containing validity_restrictions['time_start_and_end']
+ * containing start_validity
+ * indicating START_VALIDITY_AT
+ * and containing end_validity
+ * indicating END_VALIDITY_AT
+ * and containing header_fields ['generation_time']
+ * containing generation_time
+ * indicating GEN_TIME < TIME_CERT_TS_AT_START
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ )),
+ m_header_field_generation_time(
+ (v_validity.validity.time_start_and_end.start_validity - 3600) * 1000
+ ), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_certificate_digest_with_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_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
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields['signer_info'].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
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ )),
+ m_header_field_generation_time(
+ (v_validity.validity.time_start_and_end.end_validity + 3600) * 1000
+ ), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_certificate_digest_with_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_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)
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields ['generation_time']
+ * containing generation_time
+ * indicating TIME_1 (TIME_1 < CUR_TIME - 10min)
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_generation_time(
+ (1000 * f_getCurrentTime() - 600) * 1000
+ ) // In us
+ },
+ e_certificate
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_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)
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields ['generation_time']
+ * containing generation_time
+ * indicating TIME_1 (TIME_1 > CUR_TIME + 10min)
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_generation_time(
+ (1000 * f_getCurrentTime() + 600) * 1000
+ ) // In us
+ },
+ e_certificate
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_06_04_BO
+
+ } // End of group g_TC_SEC_ITSS_RCV_GENMSG_06_04_BO
+
+ /**
+ * @desc Check that IUT discards SecuredMessage when its_aid value is undefined
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields['its_aid']
+ * indicating indicating 'AID_UNDEFINED'
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_its_aid_Other
+ },
+ e_certificate_digest_with_sha256
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_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 HeaderField generation_location is outside of the circular validity region of the signing certificate
+ * <pre>
+ * 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 SecuredMessage ((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
+ * }
+ * }
+ * </pre>
+ *
+ * @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 HeaderField generation_location is outside of the rectangular validity region of the signing certificate
+ * <pre>
+ * 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 SecuredMessage ((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
+ * }
+ * }
+ * </pre>
+ *
+ * @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 HeaderField generation_location is outside of the rectangular validity region of the signing certificate
+ * <pre>
+ * 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 SecuredMessage ((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
+ * }
+ * }
+ * </pre>
+ *
+ * @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