Loading etc/AtsDENM/AtsDENM.cfg +0 −7 Original line number Diff line number Diff line [MODULE_PARAMETERS] # This section shall contain the values of all parameters that are defined in your TTCN-3 modules. LibItsGeoNetworking_Pics.PICS_GN_LOCAL_GN_ADDR := { typeOfAddress := e_initial, stationType := e_unknown, #e_roadSideUnit, stationCountryCode := 0, #33, mid := '4C5E0C14D2EB'O } # IUT Station ID LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 Loading Loading @@ -104,7 +98,6 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 [MAIN_CONTROLLER] # The options herein control the behavior of MC. KillTimer := 10.0 TCPPort := 0 LocalAddress := 127.0.0.1 TCPPort := 12000 NumHCs := 1 etc/TestCodec/TestCodec.cfg +7 −6 Original line number Diff line number Diff line Loading @@ -295,6 +295,7 @@ system.utPort.params := "UT_GN/UDP(dst_ip=192.168.56.1)" #TestCodec_Certificates.tc_at_certificate_sha256_2 #TestCodec_Certificates.tc_at_certificate_sha256_3 #TestCodec_Certificates.tc_certificate_asn1c_1 TestCodec_Certificates.tc_certificate_asn1c_2 # Secured messages #TestCodec_SecuredMessages.tc_ssp_cam_1 #TestCodec_SecuredMessages.tc_ssp_cam_2 Loading @@ -305,13 +306,13 @@ system.utPort.params := "UT_GN/UDP(dst_ip=192.168.56.1)" #TestCodec_SecuredMessages.tc_secured_message_signed_and_encrypted_1 #TestCodec_SecuredMessages.tc_secured_message_signed_and_encrypted_2 # Chain of certificates TestCodec_ChainOfCertificates.tc_full_check_certificate_1 #TestCodec_ChainOfCertificates.tc_full_check_certificate_1 #TestCodec_ChainOfCertificates.tc_full_check_certificate_2 TestCodec_SecuredFuntions.tc_load_certificates TestCodec_SecuredFuntions.tc_read_certificate_1 TestCodec_SecuredFuntions.tc_read_certificate_2 TestCodec_SecuredFuntions.tc_read_certificate_digest TestCodec_SecuredFuntions.tc_read_certificate_hash #TestCodec_SecuredFuntions.tc_load_certificates #TestCodec_SecuredFuntions.tc_read_certificate_1 #TestCodec_SecuredFuntions.tc_read_certificate_2 #TestCodec_SecuredFuntions.tc_read_certificate_digest #TestCodec_SecuredFuntions.tc_read_certificate_hash # Encryption #TestCodec_SignedAndEncryptedMessages.tc_test_hmac_sha256_test1 #TestCodec_SignedAndEncryptedMessages.tc_test_hmac_sha256_test2 Loading ttcn/TestCodec/TestCodec_Certificates.ttcn +182 −6 Original line number Diff line number Diff line Loading @@ -757,9 +757,9 @@ module TestCodec_Certificates { } // End of testcase tc_at_certificate_sha256_3 testcase tc_certificate_asn1c_1() runs on TCType system TCType { // CERT_IUT_A_RCA const octetstring c_cert := '8003008100288300000000001874e3808466a8c001012080010e80012482080301ffff0301ffff800125820a0401ffffff0401ffffff800189820a0401ffffff0401ffffff80018a820a0401ffffff0401ffffff80018b820a0401ffffff0401ffffff80018c820a0401ffffff0401ffffff00018d00016000016100016200016300016400016500016600808083b348d43d8d280012d2b3221d530592828990de31a13ba005c340191f748d7fae8080138350df39556a1a80fb46414def254791af2a3b30adf662478c50e7cca1e5ab34c0e27366ecdbd30bf4adc431201f755ec4536303a2812a607cf8ce9ed829dd'O; // CERT_IUT_A_RCA.oer const octetstring c_cert := '8003008100288300000000001874e3808466a8c001018080010e80012482080301ffff0301ffff800125820a0401ffffff0401ffffff800189820a0401ffffff0401ffffff80018a820a0401ffffff0401ffffff80018b820a0401ffffff0401ffffff80018c820a0401ffffff0401ffffff00018d0001600001610001620001630001640001650001660102808083a72b88b6a1adeeba7fc18772952f053a81bd18635ee5ab08ed1376c107b541398080c0290e397381bf7502a0e6a6b271d8e2f18fc8311f591f0528a673ee5169f670e224ac455b5e67eb251cc1467f6ffc6840987c8c8eb9245c22be73322b64ca54'O; // CERT_IUT_A_RCA.oer var EtsiTs103097Certificate v_cert_dec; var Oct32 v_private_key := '4e22da40115d1f7caccf38bee1b3cd32f08405d8b85c948a2b11b88436387893'O; // CERT_IUT_A_RCA.vkey var Oct32 v_private_key := 'd79ef1d533b0385463a5d15708e94ff4f0d281cccbef504acd3afbb82dc0499f'O; // CERT_IUT_A_RCA.vkey var bitstring v_enc_msg := oct2bit(c_cert); var integer v_compressedMode; var Oct32 v_publicKeyCompressed := int2oct(0, 32); Loading Loading @@ -877,7 +877,7 @@ module TestCodec_Certificates { } } }, minChainLength := 1, minChainLength := 2, chainLengthRange := 0, eeType := '00000000'B } Loading @@ -888,7 +888,7 @@ module TestCodec_Certificates { verifyKeyIndicator := { verificationKey := { ecdsaNistP256 := { compressed_y_1 := 'B348D43D8D280012D2B3221D530592828990DE31A13BA005C340191F748D7FAE'O compressed_y_1 := 'A72B88B6A1ADEEBA7FC18772952F053A81BD18635EE5AB08ED1376C107B54139'O } } } Loading @@ -896,9 +896,9 @@ module TestCodec_Certificates { signature_ := { ecdsaNistP256Signature := { rSig := { x_only := '138350DF39556A1A80FB46414DEF254791AF2A3B30ADF662478C50E7CCA1E5AB'O x_only := 'C0290E397381BF7502A0E6A6B271D8E2F18FC8311F591F0528A673EE5169F670'O }, sSig := '34C0E27366ECDBD30BF4ADC431201F755EC4536303A2812A607CF8CE9ED829DD'O sSig := 'E224AC455B5E67EB251CC1467F6FFC6840987C8C8EB9245C22BE73322B64CA54'O } } }; Loading Loading @@ -938,6 +938,182 @@ module TestCodec_Certificates { } } // End of testcase tc_certificate_asn1c_1 testcase tc_certificate_asn1c_2() runs on TCType system TCType { // CERT_IUT_A_RCA const octetstring c_cert := '8003008100698300000000001874e3808466a88101011a0645a1042d654819f89082043b1a67c001018080010780012482080301ffff0301ffff800125820a0401ffffff0401ffffff800189820a0401ffffff0401ffffff80018a820a0401ffffff0401ffffff80018b820a0401ffffff0401ffffff80018c820a0401ffffff0401ffffff00018d0102008082192b5056fe5fa1a79adfb78ab5c447d0933fafee21f8480fe5569f96a0df648a808083ffd7a5af269b7efc295f2bcea8318e5dd91f44e630919aa627118f31dceaad6c808057c070cdd563033c3c969677876275df7a06fb8ade9d48d715e6fc0b0b8d53e2f086c3de0ffc7d9531f965f5a2d321ca802cb4b0f3552025ebcb4081ced7f473'O; // CERT_IUT_C_RCA.oer var EtsiTs103097Certificate v_cert_dec; var Oct32 v_private_key := 'e04336196816a49ac1dc7d39252ee4a90a5c0a3b243645ee84d5acd0aa161c7e'O; // CERT_IUT_C_RCA.vkey var Oct32 v_enc_private_key := 'f393bce9c68abbdd733e1ba9766ac11ce407a90e295d130c6cc6d8a61624be93'O; // CERT_IUT_C_RCA.ekey var bitstring v_enc_msg := oct2bit(c_cert); var integer v_compressedMode; var Oct32 v_publicKeyCompressed := int2oct(0, 32); var Oct32 v_sig := int2oct(0, 32); var EtsiTs103097Certificate v_cert_exp := { version := 3, type_ := explicit, issuer := { self_ := sha256 }, toBeSigned := { id := { none_ := NULL }, cracaId := '000000'O, crlSeries := 0, validityPeriod := { start_ := 410313600, duration := { hours := 26280 } }, region := { rectangularRegion := { { northWest := { latitude := 436618657, longitude := 70083912 }, southEast := { latitude := 435720322, longitude := 70982247 } } } }, assuranceLevel := 'C0'O, appPermissions := omit, certIssuePermissions := { { subjectPermissions := { explicit := { { psid := 36, sspRange := { bitmapSspRange := { sspValue := '01FFFF'O, sspBitmask := '01FFFF'O } } }, { psid := 37, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 137, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 138, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 139, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 140, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 141, sspRange := omit } } }, minChainLength := 2, chainLengthRange := 0, eeType := '00000000'B } }, certRequestPermissions := omit, canRequestRollover := omit, encryptionKey := { supportedSymmAlg := aes128Ccm, publicKey := { eciesNistP256 := { compressed_y_0 := '192B5056FE5FA1A79ADFB78AB5C447D0933FAFEE21F8480FE5569F96A0DF648A'O } } }, verifyKeyIndicator := { verificationKey := { ecdsaNistP256 := { compressed_y_1 := 'FFD7A5AF269B7EFC295F2BCEA8318E5DD91F44E630919AA627118F31DCEAAD6C'O } } } }, signature_ := { ecdsaNistP256Signature := { rSig := { x_only := '57C070CDD563033C3C969677876275DF7A06FB8ADE9D48D715E6FC0B0B8D53E2'O }, sSig := 'F086C3DE0FFC7D9531F965F5A2D321CA802CB4B0F3552025EBCB4081CED7F473'O } } }; var integer v_res := decvalue(v_enc_msg, v_cert_dec); if (v_res == 0) { log("Decoded message: ", v_cert_dec); setverdict(pass, "Decoded succeed"); log(match(v_cert_exp, v_cert_dec)); if (not(match(v_cert_exp, v_cert_dec))) { setverdict(fail, "Templates mismatch"); stop; } else { setverdict(pass, "Templates match"); } } else { setverdict(fail, "Decoding failed"); } if (ischosen(v_cert_dec.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaNistP256.compressed_y_0)) { v_compressedMode := 0; v_publicKeyCompressed := v_cert_dec.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaNistP256.compressed_y_0; } else { v_compressedMode := 1; v_publicKeyCompressed := v_cert_dec.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaNistP256.compressed_y_1; } v_enc_msg := encvalue(v_cert_dec.toBeSigned); if (f_verifyWithEcdsaNistp256WithSha256( bit2oct(v_enc_msg), int2oct(0, 32), v_cert_dec.signature_.ecdsaNistP256Signature.rSig.x_only & v_cert_dec.signature_.ecdsaNistP256Signature.sSig, v_publicKeyCompressed, v_compressedMode ) == false) { setverdict(fail); } else { setverdict(pass) } } // End of testcase tc_certificate_asn1c_2 group encdec_functions { function TestEtsiTs103097Certificate( Loading Loading
etc/AtsDENM/AtsDENM.cfg +0 −7 Original line number Diff line number Diff line [MODULE_PARAMETERS] # This section shall contain the values of all parameters that are defined in your TTCN-3 modules. LibItsGeoNetworking_Pics.PICS_GN_LOCAL_GN_ADDR := { typeOfAddress := e_initial, stationType := e_unknown, #e_roadSideUnit, stationCountryCode := 0, #33, mid := '4C5E0C14D2EB'O } # IUT Station ID LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309 Loading Loading @@ -104,7 +98,6 @@ ItsDenm_TestCases.TC_DEN_MSGF_BV_01 [MAIN_CONTROLLER] # The options herein control the behavior of MC. KillTimer := 10.0 TCPPort := 0 LocalAddress := 127.0.0.1 TCPPort := 12000 NumHCs := 1
etc/TestCodec/TestCodec.cfg +7 −6 Original line number Diff line number Diff line Loading @@ -295,6 +295,7 @@ system.utPort.params := "UT_GN/UDP(dst_ip=192.168.56.1)" #TestCodec_Certificates.tc_at_certificate_sha256_2 #TestCodec_Certificates.tc_at_certificate_sha256_3 #TestCodec_Certificates.tc_certificate_asn1c_1 TestCodec_Certificates.tc_certificate_asn1c_2 # Secured messages #TestCodec_SecuredMessages.tc_ssp_cam_1 #TestCodec_SecuredMessages.tc_ssp_cam_2 Loading @@ -305,13 +306,13 @@ system.utPort.params := "UT_GN/UDP(dst_ip=192.168.56.1)" #TestCodec_SecuredMessages.tc_secured_message_signed_and_encrypted_1 #TestCodec_SecuredMessages.tc_secured_message_signed_and_encrypted_2 # Chain of certificates TestCodec_ChainOfCertificates.tc_full_check_certificate_1 #TestCodec_ChainOfCertificates.tc_full_check_certificate_1 #TestCodec_ChainOfCertificates.tc_full_check_certificate_2 TestCodec_SecuredFuntions.tc_load_certificates TestCodec_SecuredFuntions.tc_read_certificate_1 TestCodec_SecuredFuntions.tc_read_certificate_2 TestCodec_SecuredFuntions.tc_read_certificate_digest TestCodec_SecuredFuntions.tc_read_certificate_hash #TestCodec_SecuredFuntions.tc_load_certificates #TestCodec_SecuredFuntions.tc_read_certificate_1 #TestCodec_SecuredFuntions.tc_read_certificate_2 #TestCodec_SecuredFuntions.tc_read_certificate_digest #TestCodec_SecuredFuntions.tc_read_certificate_hash # Encryption #TestCodec_SignedAndEncryptedMessages.tc_test_hmac_sha256_test1 #TestCodec_SignedAndEncryptedMessages.tc_test_hmac_sha256_test2 Loading
ttcn/TestCodec/TestCodec_Certificates.ttcn +182 −6 Original line number Diff line number Diff line Loading @@ -757,9 +757,9 @@ module TestCodec_Certificates { } // End of testcase tc_at_certificate_sha256_3 testcase tc_certificate_asn1c_1() runs on TCType system TCType { // CERT_IUT_A_RCA const octetstring c_cert := '8003008100288300000000001874e3808466a8c001012080010e80012482080301ffff0301ffff800125820a0401ffffff0401ffffff800189820a0401ffffff0401ffffff80018a820a0401ffffff0401ffffff80018b820a0401ffffff0401ffffff80018c820a0401ffffff0401ffffff00018d00016000016100016200016300016400016500016600808083b348d43d8d280012d2b3221d530592828990de31a13ba005c340191f748d7fae8080138350df39556a1a80fb46414def254791af2a3b30adf662478c50e7cca1e5ab34c0e27366ecdbd30bf4adc431201f755ec4536303a2812a607cf8ce9ed829dd'O; // CERT_IUT_A_RCA.oer const octetstring c_cert := '8003008100288300000000001874e3808466a8c001018080010e80012482080301ffff0301ffff800125820a0401ffffff0401ffffff800189820a0401ffffff0401ffffff80018a820a0401ffffff0401ffffff80018b820a0401ffffff0401ffffff80018c820a0401ffffff0401ffffff00018d0001600001610001620001630001640001650001660102808083a72b88b6a1adeeba7fc18772952f053a81bd18635ee5ab08ed1376c107b541398080c0290e397381bf7502a0e6a6b271d8e2f18fc8311f591f0528a673ee5169f670e224ac455b5e67eb251cc1467f6ffc6840987c8c8eb9245c22be73322b64ca54'O; // CERT_IUT_A_RCA.oer var EtsiTs103097Certificate v_cert_dec; var Oct32 v_private_key := '4e22da40115d1f7caccf38bee1b3cd32f08405d8b85c948a2b11b88436387893'O; // CERT_IUT_A_RCA.vkey var Oct32 v_private_key := 'd79ef1d533b0385463a5d15708e94ff4f0d281cccbef504acd3afbb82dc0499f'O; // CERT_IUT_A_RCA.vkey var bitstring v_enc_msg := oct2bit(c_cert); var integer v_compressedMode; var Oct32 v_publicKeyCompressed := int2oct(0, 32); Loading Loading @@ -877,7 +877,7 @@ module TestCodec_Certificates { } } }, minChainLength := 1, minChainLength := 2, chainLengthRange := 0, eeType := '00000000'B } Loading @@ -888,7 +888,7 @@ module TestCodec_Certificates { verifyKeyIndicator := { verificationKey := { ecdsaNistP256 := { compressed_y_1 := 'B348D43D8D280012D2B3221D530592828990DE31A13BA005C340191F748D7FAE'O compressed_y_1 := 'A72B88B6A1ADEEBA7FC18772952F053A81BD18635EE5AB08ED1376C107B54139'O } } } Loading @@ -896,9 +896,9 @@ module TestCodec_Certificates { signature_ := { ecdsaNistP256Signature := { rSig := { x_only := '138350DF39556A1A80FB46414DEF254791AF2A3B30ADF662478C50E7CCA1E5AB'O x_only := 'C0290E397381BF7502A0E6A6B271D8E2F18FC8311F591F0528A673EE5169F670'O }, sSig := '34C0E27366ECDBD30BF4ADC431201F755EC4536303A2812A607CF8CE9ED829DD'O sSig := 'E224AC455B5E67EB251CC1467F6FFC6840987C8C8EB9245C22BE73322B64CA54'O } } }; Loading Loading @@ -938,6 +938,182 @@ module TestCodec_Certificates { } } // End of testcase tc_certificate_asn1c_1 testcase tc_certificate_asn1c_2() runs on TCType system TCType { // CERT_IUT_A_RCA const octetstring c_cert := '8003008100698300000000001874e3808466a88101011a0645a1042d654819f89082043b1a67c001018080010780012482080301ffff0301ffff800125820a0401ffffff0401ffffff800189820a0401ffffff0401ffffff80018a820a0401ffffff0401ffffff80018b820a0401ffffff0401ffffff80018c820a0401ffffff0401ffffff00018d0102008082192b5056fe5fa1a79adfb78ab5c447d0933fafee21f8480fe5569f96a0df648a808083ffd7a5af269b7efc295f2bcea8318e5dd91f44e630919aa627118f31dceaad6c808057c070cdd563033c3c969677876275df7a06fb8ade9d48d715e6fc0b0b8d53e2f086c3de0ffc7d9531f965f5a2d321ca802cb4b0f3552025ebcb4081ced7f473'O; // CERT_IUT_C_RCA.oer var EtsiTs103097Certificate v_cert_dec; var Oct32 v_private_key := 'e04336196816a49ac1dc7d39252ee4a90a5c0a3b243645ee84d5acd0aa161c7e'O; // CERT_IUT_C_RCA.vkey var Oct32 v_enc_private_key := 'f393bce9c68abbdd733e1ba9766ac11ce407a90e295d130c6cc6d8a61624be93'O; // CERT_IUT_C_RCA.ekey var bitstring v_enc_msg := oct2bit(c_cert); var integer v_compressedMode; var Oct32 v_publicKeyCompressed := int2oct(0, 32); var Oct32 v_sig := int2oct(0, 32); var EtsiTs103097Certificate v_cert_exp := { version := 3, type_ := explicit, issuer := { self_ := sha256 }, toBeSigned := { id := { none_ := NULL }, cracaId := '000000'O, crlSeries := 0, validityPeriod := { start_ := 410313600, duration := { hours := 26280 } }, region := { rectangularRegion := { { northWest := { latitude := 436618657, longitude := 70083912 }, southEast := { latitude := 435720322, longitude := 70982247 } } } }, assuranceLevel := 'C0'O, appPermissions := omit, certIssuePermissions := { { subjectPermissions := { explicit := { { psid := 36, sspRange := { bitmapSspRange := { sspValue := '01FFFF'O, sspBitmask := '01FFFF'O } } }, { psid := 37, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 137, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 138, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 139, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 140, sspRange := { bitmapSspRange := { sspValue := '01FFFFFF'O, sspBitmask := '01FFFFFF'O } } }, { psid := 141, sspRange := omit } } }, minChainLength := 2, chainLengthRange := 0, eeType := '00000000'B } }, certRequestPermissions := omit, canRequestRollover := omit, encryptionKey := { supportedSymmAlg := aes128Ccm, publicKey := { eciesNistP256 := { compressed_y_0 := '192B5056FE5FA1A79ADFB78AB5C447D0933FAFEE21F8480FE5569F96A0DF648A'O } } }, verifyKeyIndicator := { verificationKey := { ecdsaNistP256 := { compressed_y_1 := 'FFD7A5AF269B7EFC295F2BCEA8318E5DD91F44E630919AA627118F31DCEAAD6C'O } } } }, signature_ := { ecdsaNistP256Signature := { rSig := { x_only := '57C070CDD563033C3C969677876275DF7A06FB8ADE9D48D715E6FC0B0B8D53E2'O }, sSig := 'F086C3DE0FFC7D9531F965F5A2D321CA802CB4B0F3552025EBCB4081CED7F473'O } } }; var integer v_res := decvalue(v_enc_msg, v_cert_dec); if (v_res == 0) { log("Decoded message: ", v_cert_dec); setverdict(pass, "Decoded succeed"); log(match(v_cert_exp, v_cert_dec)); if (not(match(v_cert_exp, v_cert_dec))) { setverdict(fail, "Templates mismatch"); stop; } else { setverdict(pass, "Templates match"); } } else { setverdict(fail, "Decoding failed"); } if (ischosen(v_cert_dec.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaNistP256.compressed_y_0)) { v_compressedMode := 0; v_publicKeyCompressed := v_cert_dec.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaNistP256.compressed_y_0; } else { v_compressedMode := 1; v_publicKeyCompressed := v_cert_dec.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaNistP256.compressed_y_1; } v_enc_msg := encvalue(v_cert_dec.toBeSigned); if (f_verifyWithEcdsaNistp256WithSha256( bit2oct(v_enc_msg), int2oct(0, 32), v_cert_dec.signature_.ecdsaNistP256Signature.rSig.x_only & v_cert_dec.signature_.ecdsaNistP256Signature.sSig, v_publicKeyCompressed, v_compressedMode ) == false) { setverdict(fail); } else { setverdict(pass) } } // End of testcase tc_certificate_asn1c_2 group encdec_functions { function TestEtsiTs103097Certificate( Loading