Newer
Older
26001
26002
26003
26004
26005
26006
26007
26008
26009
26010
26011
26012
26013
26014
26015
26016
26017
26018
26019
26020
26021
26022
26023
26024
26025
26026
26027
26028
26029
26030
26031
26032
26033
26034
26035
26036
26037
26038
26039
26040
26041
26042
26043
26044
26045
26046
26047
26048
26049
26050
26051
26052
26053
26054
26055
26056
26057
26058
26059
26060
26061
26062
26063
26064
26065
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085
26086
26087
26088
26089
26090
26091
26092
26093
26094
26095
26096
26097
26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
26111
26112
26113
26114
26115
26116
26117
26118
26119
26120
26121
26122
26123
26124
26125
26126
26127
26128
26129
26130
26131
26132
26133
26134
26135
26136
26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
26154
26155
26156
26157
26158
26159
26160
26161
26162
26163
26164
26165
26166
26167
26168
26169
26170
26171
26172
26173
26174
26175
26176
26177
26178
26179
26180
26181
26182
26183
26184
26185
26186
26187
26188
26189
26190
26191
26192
26193
26194
26195
26196
26197
26198
26199
26200
26201
26202
26203
26204
26205
26206
26207
26208
26209
26210
26211
26212
26213
26214
26215
26216
26217
26218
26219
26220
26221
26222
26223
26224
26225
26226
26227
26228
26229
26230
26231
26232
26233
26234
26235
26236
26237
26238
26239
26240
26241
26242
26243
26244
26245
26246
26247
26248
26249
26250
26251
26252
26253
26254
26255
26256
26257
26258
26259
26260
26261
26262
26263
26264
26265
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
26276
26277
26278
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
26296
26297
26298
26299
26300
26301
26302
26303
26304
26305
26306
26307
26308
26309
26310
26311
26312
26313
26314
26315
26316
26317
26318
26319
26320
26321
26322
26323
26324
26325
26326
26327
26328
26329
26330
26331
26332
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342
26343
26344
26345
26346
26347
26348
26349
26350
26351
26352
26353
26354
26355
26356
26357
26358
26359
26360
26361
26362
26363
26364
26365
26366
26367
26368
26369
26370
26371
26372
26373
26374
26375
26376
26377
26378
26379
26380
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391
26392
26393
26394
26395
26396
26397
26398
26399
26400
26401
26402
26403
26404
26405
26406
26407
26408
26409
26410
26411
26412
26413
26414
26415
26416
26417
26418
26419
26420
26421
26422
26423
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433
26434
26435
26436
26437
26438
26439
26440
26441
26442
26443
26444
26445
26446
26447
26448
26449
26450
26451
26452
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
26468
26469
26470
26471
26472
26473
26474
26475
26476
26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
26506
26507
26508
26509
26510
26511
26512
26513
26514
26515
26516
26517
26518
26519
26520
26521
26522
26523
26524
26525
26526
26527
26528
26529
26530
26531
26532
26533
26534
26535
26536
26537
26538
26539
26540
26541
26542
26543
26544
26545
26546
26547
26548
26549
26550
26551
26552
26553
26554
26555
26556
26557
26558
26559
26560
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
26582
26583
26584
26585
26586
26587
26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
26598
26599
26600
26601
26602
26603
26604
26605
26606
26607
26608
26609
26610
26611
26612
26613
26614
26615
26616
26617
26618
26619
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
26668
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
26808
26809
26810
26811
26812
26813
26814
26815
26816
26817
26818
26819
26820
26821
26822
26823
26824
26825
26826
26827
26828
26829
26830
26831
26832
26833
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
26847
26848
26849
26850
26851
26852
26853
26854
26855
26856
26857
26858
26859
26860
26861
26862
26863
26864
26865
26866
26867
26868
26869
26870
26871
26872
26873
26874
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885
26886
26887
26888
26889
26890
26891
26892
26893
26894
26895
26896
26897
26898
26899
26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
26955
26956
26957
26958
26959
26960
26961
26962
26963
26964
26965
26966
26967
26968
26969
26970
26971
26972
26973
26974
26975
26976
26977
26978
26979
26980
26981
26982
26983
26984
26985
26986
26987
26988
26989
26990
26991
26992
26993
26994
26995
26996
26997
26998
26999
27000
+ * verifiable using KEY
+ * } then {
+ * the IUT accepts the message
+ * }
+ * }
+ * </pre>
+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_01_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
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Expected behavior:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_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 SecuredMessage
+ * containing protocol_version
+ * indicating value '2'
+ * and containing header_fields[0]
+ * containing type
+ * indicating 'signer_info'
+ * and containing signer
+ * containing type
+ * indicating 'certificate'
+ * and containing certificate (CERT_TS_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
+ * }
+ * }
+ * </pre>
+ * @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
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Expected behavior:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage
+ * containing protocol_version
+ * indicating 1
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ * @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
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Expected behavior:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage
+ * containing protocol_version
+ * indicating 3
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ * @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'
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields[0].type
+ * indicating 'signer_info'
+ * and containing header_fields[1].type
+ * indicating '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
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ )),
+ m_header_field_signer_info(
+ m_signerInfo_certificate(
+ vc_aaCertificate
+ )),
+ 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_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_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'
+ * <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)
+ * 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
+ * }
+ * }
+ * </pre>
+ *
+ * @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_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_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_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.
+ * <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)
+ * 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
+ * }
+ * }
+ * </pre>
+ *
+ * @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_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,
+ m_header_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ ))
+ },
+ e_certificate_digest_with_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_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'
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields[0].type
+ * indicating 'signer_info'
+ * and containing header_fields[1].type
+ * indicating 'generation_time'
+ * and containing header_fields[2].type
+ * indicating 'generation_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
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ )),
+ m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+ m_header_field_generation_time(1000 * f_getCurrentTime() - 1), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_certificate_digest_with_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_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'
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields[0].type
+ * indicating 'signer_info'
+ * and containing header_fields[1].type
+ * indicating 'generation_time'
+ * and containing header_fields[2].type
+ * containing its_aid
+ * indicating 'AID_BEACON'
+ * and not containing other header fields
+ * } then {
+ * the IUT discards the message
+ * }
+ * }
+ * </pre>
+ *
+ * @see ETSI TS 103 096-2 v1.3.2 TP_SEC_ITSS_RCV_GENMSG_04_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_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ )),
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other
+ },
+ e_certificate_digest_with_sha256,
+ false
+ );
+ f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_securedGnPdu));
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+
+ // Postamble
+ f_selfOrClientSyncAndVerdict(c_poDone, e_success);
+
+ } // End of testcase f_TC_SEC_ITSS_RCV_GENMSG_04_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'
+ * <pre>
+ * Pics Selection: PICS_GN_SECURITY and PICS_GN_GBC_SRC
+ * Config Id: CF01
+ * Initial conditions:
+ * with {
+ * the IUT being in the 'authorized' state
+ * and the IUT current time is inside the time validity period of CERT_TS_A_AT
+ * }
+ * ensure that {
+ * when {
+ * the IUT is receiving a SecuredMessage (MSG_SEC_RCV_GENMSG_A)
+ * containing header_fields[0].type
+ * indicating 'signer_info'
+ * and containing header_fields[1].type
+ * indicating 'generation_time'
+ * and containing header_fields[2].type
+ * indicating 'generation_location'
+ * and containing header_fields[3]
+ * 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
+ * }
+ * }
+ * </pre>
+ *
+ * @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_field_signer_info(
+ m_signerInfo_digest(
+ vc_atCertificate.signer_info.signerInfo.digest
+ )),
+ m_header_field_generation_time(1000 * f_getCurrentTime()), // In us
+ m_header_field_generation_location(
+ valueof(m_threeDLocation(
+ v_longPosVectorNodeB.latitude,
+ v_longPosVectorNodeB.longitude,
+ '0000'O
+ ))
+ ),
+ m_header_field_its_aid_Other,
+ m_header_field_its_aid_Other
+ },