Commit ddcd3ef7 authored by Yann Garcia's avatar Yann Garcia
Browse files

Enhance BfkZipEntries data structure; Update configuration files

parent 0d24dbff
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -1068,7 +1068,7 @@ namespace LibItsSecurity__Functions {
                                                     const OCTETSTRING &p__publicEphemeralKeyCompressed, const INTEGER &p__ephemeralCompressedMode,
                                                     const OCTETSTRING &p__publicEphemeralKeyCompressed, const INTEGER &p__ephemeralCompressedMode,
                                                     const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                     const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                     const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
                                                     const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256: p__toBeEncryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256: p__encryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256: p__publicEphemeralKeyCompressed: ", p__publicEphemeralKeyCompressed);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256: p__publicEphemeralKeyCompressed: ", p__publicEphemeralKeyCompressed);
    loggers::get_instance().log(">>> fx__decryptWithEciesNistp256WithSha256: p__ephemeralCompressedMode: %d", static_cast<int>(p__ephemeralCompressedMode));
    loggers::get_instance().log(">>> fx__decryptWithEciesNistp256WithSha256: p__ephemeralCompressedMode: %d", static_cast<int>(p__ephemeralCompressedMode));
@@ -1112,7 +1112,7 @@ namespace LibItsSecurity__Functions {
                                                        const OCTETSTRING &p__publicEphemeralKeyX, const OCTETSTRING &p__publicEphemeralKeyY,
                                                        const OCTETSTRING &p__publicEphemeralKeyX, const OCTETSTRING &p__publicEphemeralKeyY,
                                                        const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                        const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                        const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
                                                        const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__toBeEncryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__encryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__publicEphemeralKeyX: ", p__publicEphemeralKeyX);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__publicEphemeralKeyX: ", p__publicEphemeralKeyX);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__publicEphemeralKeyY: ", p__publicEphemeralKeyY);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesNistp256WithSha256__1: p__publicEphemeralKeyY: ", p__publicEphemeralKeyY);
@@ -1311,7 +1311,7 @@ namespace LibItsSecurity__Functions {
                                                     const OCTETSTRING &p__publicEphemeralKeyCompressed, const INTEGER &p__ephemeralCompressedMode,
                                                     const OCTETSTRING &p__publicEphemeralKeyCompressed, const INTEGER &p__ephemeralCompressedMode,
                                                     const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                     const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                     const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
                                                     const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesSm2p256WithSha256: p__toBeEncryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesSm2p256WithSha256: p__encryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesSm2p256WithSha256: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesSm2p256WithSha256: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesSm2p256WithSha256: p__publicEphemeralKeyCompressed: ", p__publicEphemeralKeyCompressed);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesSm2p256WithSha256: p__publicEphemeralKeyCompressed: ", p__publicEphemeralKeyCompressed);
    loggers::get_instance().log(">>> fx__decryptWithEciesSm2p256WithSha256: p__ephemeralCompressedMode: %d", static_cast<int>(p__ephemeralCompressedMode));
    loggers::get_instance().log(">>> fx__decryptWithEciesSm2p256WithSha256: p__ephemeralCompressedMode: %d", static_cast<int>(p__ephemeralCompressedMode));
@@ -1485,7 +1485,7 @@ namespace LibItsSecurity__Functions {
                                                            const OCTETSTRING &p__publicEphemeralKeyCompressed, const INTEGER &p__ephemeralCompressedMode,
                                                            const OCTETSTRING &p__publicEphemeralKeyCompressed, const INTEGER &p__ephemeralCompressedMode,
                                                            const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                            const OCTETSTRING &p__encrypted__sym__key, const OCTETSTRING &p__authentication__vector,
                                                            const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
                                                            const OCTETSTRING &p__nonce, const OCTETSTRING &p__salt, OCTETSTRING &p__aes__sym__enc__key) {
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__toBeEncryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__encryptedSecuredMessage: ", p__encryptedSecuredMessage);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__privateEncKey: ", p__privateEncKey);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__publicEphemeralKeyCompressed: ", p__publicEphemeralKeyCompressed);
    loggers::get_instance().log_msg(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__publicEphemeralKeyCompressed: ", p__publicEphemeralKeyCompressed);
    loggers::get_instance().log(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__ephemeralCompressedMode: %d",
    loggers::get_instance().log(">>> fx__decryptWithEciesBrainpoolp256r1WithSha256: p__ephemeralCompressedMode: %d",
+3 −2
Original line number Original line Diff line number Diff line
@@ -21,7 +21,7 @@ int http_etsi_ieee1609dot2dot1_codec::decode(const OCTETSTRING &p_data, LibHttp_
  zip_stat_t zst;
  zip_stat_t zst;
  zip_t *za = nullptr;
  zip_t *za = nullptr;
  int ret_code = -1;
  int ret_code = -1;
  LibHttp__BinaryMessageBodyTypes::BfkZipFileContent_signed__messages signed_messages;
  LibHttp__BinaryMessageBodyTypes::BfkZipEntries signed_messages;
  ::zip_error_init(&error);
  ::zip_error_init(&error);
  if ((src = ::zip_source_buffer_create(static_cast<const unsigned char*>(p_data), p_data.lengthof(), 1, &error)) == nullptr) {
  if ((src = ::zip_source_buffer_create(static_cast<const unsigned char*>(p_data), p_data.lengthof(), 1, &error)) == nullptr) {
    loggers::get_instance().error("http_etsi_ieee1609dot2dot1_codec::decode: ::zip_source_buffer_create failure: %s", ::zip_error_strerror(&error));
    loggers::get_instance().error("http_etsi_ieee1609dot2dot1_codec::decode: ::zip_source_buffer_create failure: %s", ::zip_error_strerror(&error));
@@ -89,7 +89,8 @@ int http_etsi_ieee1609dot2dot1_codec::decode(const OCTETSTRING &p_data, LibHttp_
        ::zip_fclose(zf);
        ::zip_fclose(zf);
        goto decode_cleanup;
        goto decode_cleanup;
      }
      }
      signed_messages[i] = ieee1609Dot2Data;
      signed_messages[i].name() = sb.name;
      signed_messages[i].signed__message() = ieee1609Dot2Data;
      delete [] buffer;
      delete [] buffer;
      ::zip_fclose(zf);
      ::zip_fclose(zf);
    }
    }
+1 −0
Original line number Original line Diff line number Diff line
@@ -9,6 +9,7 @@


namespace LibHttp__BinaryMessageBodyTypes {
namespace LibHttp__BinaryMessageBodyTypes {
  class BfkZipFile;
  class BfkZipFile;
  class BfkZipEntries;
}
}


class http_etsi_ieee1609dot2dot1_codec : public codec_gen<LibHttp__BinaryMessageBodyTypes::BfkZipFile, LibHttp__BinaryMessageBodyTypes::BfkZipFile> {
class http_etsi_ieee1609dot2dot1_codec : public codec_gen<LibHttp__BinaryMessageBodyTypes::BfkZipFile, LibHttp__BinaryMessageBodyTypes::BfkZipFile> {
+171 −0
Original line number Original line Diff line number Diff line

[MODULE_PARAMETERS]
# This section shall contain the values of all parameters that are defined in your TTCN-3 modules.

# IUT Station ID
LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309

LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB

LibItsCam_Pics.PICS_DANGEROUSGOODS := true
LibItsCam_Pics.PICS_IS_IUT_SECURED := true

[LOGGING]
# In this section you can specify the name of the log file and the classes of events
# you want to log into the file or display on console (standard error).
LogFile := "../logs/AtsCAM/%e.%h-%r.%s"
FileMask := LOG_ALL | USER | DEBUG | MATCHING
ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING
#FileMask := ERROR | WARNING | USER | PORTEVENT | MATCHING | EXECUTOR_RUNTIME | TIMEROP | VERDICTOP
#ConsoleMask := ERROR | WARNING | USER | PORTEVENT | MATCHING | EXECUTOR_RUNTIME | TIMEROP | VERDICTOP
LogSourceInfo := Stack
LogEntityName:= Yes
LogEventTypes:= Yes
#TimeStampFormat := DateTime

[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.
# CAM Layer
#   next_header     : btpA|btpB (overwrite BTP.type)
#   header_type     : tsb|gbc
#   header_sub_type : sh (single hop)
# DENM Layer
#   next_header     : btpA|btpB (overwrite BTP.type)
#   header_type     : tsb|gbc
# BTP Layer
#   type            : btpA|btpB
#   destination port: dst_port
#   source port     : src_port
#   device_mode     : Set to 1 if the layer shall encapsulate upper layer PDU
#   device_mode     : Set to 1 if the layer shall encapsulate upper layer PDU
# GN Layer
#   ll_address             : GeoNetworking address of the Test System for beaconing. To be align with CAM 
#   latitude               : Latitude of the Test System
#   longitude              : Longitude of the Test System
#   beaconing              : Set to 1 if GnLayer shall start beaconing
#   expiry                 : Beaconing timer expiry (ms)
#   device_mode            : Set to 1 if the layer shall encapsulate upper layer PDU
#   secured_mode           : Set to 1 if message exchanges shall be signed
#   encrypted_mode         : Set to 1 if message exchanges shall be encrypted
#                            NOTE: For signed & encrypted message exchanges, both secured_mode and encrypted_mode shall be set to 1
#   sec_db_path            : Path to the certificates and keys storage location
#   hash                   : Hash algorithm to be used when secured mode is set
#                            Authorized values are SHA-256 or SHA-384
#                            Default: SHA-256
#   cypher                 : Cyphering algorithm to be used when secured mode is set
#                            Authorized values are NISTP-256 and BP-256
#                            Default: NISTP-256
# Ethernet layer
#   mac_src  :Source MAC address
#   mac_bc   :Broadcast address
#   eth_type : Ethernet type
# Commsignia layer
#   mac_src     : IUT MAC address, used to discard packets
#                 To indicate no filering, use the value 000000000000
#   mac_bc      : Broadcast address
#   eth_type    : Ethernet type, used to discard packets
#   target_host : Device address
#   target_port : Device port
#   source_port : Test System port
#   interface_id: Interface id, used to discard packets
#   tx_power    : TX power (dB)
#   xport_mode  : G5 or LTE-V2X
# UDP layer (IP/UDP based on Pcap)
#   dst_ip  : Destination IPv4 address (aa.bb.cc.dd)
#   dst_port: Destination port
#   src_ip  : Source IPv4 address (aa.bb.cc.dd)
#   src_port: Source port
# Pcap layer
#   mac_src    : Source MAC address, used to exclude from capture the acket sent by the Test System
#   filter     : Pcap filter (compliant with tcpdump syntax) 
#   Online mode:
#     nic: Local NIC
#          If set, online mode is used
#   Offline mode (nic is present but not set):
#     file        : File to read
#     frame_offset: Frame offset, used to skip packets with frame number < frame_offset
#     time_offset : Time offset, used to skip packets with time offset < time_offset
#     save_mode   : Set to 1 to save sent packet, 0 otherwise

# Cygwin
#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=515340240,longitude=139274330,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)"
# Linux
system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=515340240,longitude=139274330,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/PCAP(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947)"
# Linux over UDP
#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=515340240,longitude=139274330,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/ETH(mac_src=8c554ac1eee0)/UDP(dst_ip=192.168.1.43,src_port=4041,dst_port=9091)"

# PC5 + UU/Raw
#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=515340240,longitude=139274330,its_aid=36,secured_mode=1,certificate=CERT_IUT_A_AT,sec_db_path=../data/certificates/certificates_iut)/LTE(mac_src=8c554ac1eee1,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=raw,uu_transport=udp,dst_ip=192.168.1.43,dst_port=4041,src_port=9091)"
# PC5 + Uu/MQTT
#   Raw UDP
#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=515340240,longitude=139274330,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=udp,debug=1,server=192.168.1.39,port=1883)"
#   MQTT over TCP
#system.camPort.params := "CAM(next_header=btpB,header_type=tsb,header_sub_type=sh)/BTP/GN(ll_address=4C5E0C14D2EA,latitude=515340240,longitude=139274330,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=../data/certificates/certificates)/LTE(mac_src=8c554ac1eee0,nic=wlp0s20f3,filter=and ether proto 0x8947,pc5_layer=QUALCOMM,uu_protocol=mqtt,mqtt_client_id=8c554ac1eee0,mqtt_topics=rsu,uu_transport=tcp,debug=1,server=192.168.1.39,port=1883)"

# CAM UpperTester port based on UDP
system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.1.43,dst_port=12345,src_port=12346)"
#system.utPort.params := "UT_CAM/UDP(dst_ip=192.168.146.26)"
#system.utPort.params := "UT_CAM/UDP(dst_ip=172.16.35.1)"

[EXECUTE]
#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_01
ItsCam_TestCases.TC_CAM_MSD_FMT_BV_02
#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_03
#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_04
#ItsCam_TestCases.TC_CAM_MSD_FMT_BV_05
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_01
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_02
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_03
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_04
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_05
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_06
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_07
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_08
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_09
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_10
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_11
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_12
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_13
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_14
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_15
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_16
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_17
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_18
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_19
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_20
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_21
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_22
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_23
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_24
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_25
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_26
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_27
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_28
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_29
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_30
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_31
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_32
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_33
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_34
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_01_35
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_02
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_03
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_04
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_05
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_06
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_07
#ItsCam_TestCases.TC_CAM_MSD_INA_BV_08
#ItsCam_TestCases.TC_CAM_MSP_BV_01
#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_01
#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_02
#ItsCam_TestCases.TC_CAM_MSP_SSP_BV_03
#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_01
#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_02
#ItsCam_TestCases.TC_CAM_MSD_SSP_BO_03

[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
KillTimer := 10.0
LocalAddress := 127.0.0.1
TCPPort := 12000
NumHCs := 1
+233 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading