Commit cc7c4a60 authored by garciay's avatar garciay
Browse files

STF525: CAM/DENM bugs reported & fixed, Bug fiexed in...

STF525: CAM/DENM bugs reported & fixed, Bug fiexed in fx_computePositionUsingDistance\nSTF545: Add acPort support for Pki
parent 8b48620c
......@@ -6,6 +6,8 @@
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#define earthRadius 6378137.0L
#define rbis = ((double)(earthRadius * M_PI / 180))
namespace LibItsCommon__Functions
{
......@@ -101,14 +103,25 @@ namespace LibItsCommon__Functions
INTEGER& p__latitude,
INTEGER& p__longitude
) {
double distance = ((double)p__distance) / 6371000.0;
double angle = ((double)p__orientation) * (M_PI / 180.0);
double ref_lat = ((double)p__refLatitude) * (M_PI / 180.0);
// double ref_lon = ((double)p__refLongitude) * (M_PI / 180.0);
p__latitude = asin(sin(ref_lat)*cos(distance) + cos(ref_lat)*sin(distance)*cos(angle)) * 180.0 / M_PI;
p__longitude = ((double)p__refLongitude) + atan2(sin(angle)*sin(distance)*cos(ref_lat), cos(distance) - sin(ref_lat)*sin((double)p__latitude))*(180.0/M_PI);
double angularD = static_cast<const float>(p__distance) / earthRadius;
double radHeading = (double)static_cast<const int>(p__orientation) * M_PI / 180;
// Convert to rad
double lat1 = ((double)static_cast<const int>(p__refLatitude) / 10000000) * M_PI / 180;
double long1 = ((double)static_cast<const int>(p__refLongitude) / 10000000) * M_PI / 180;
double lat2 = asin(sin(lat1) * cos(angularD) + cos(lat1) * sin(angularD) * cos(radHeading));
double long2 = long1 + atan2(sin(radHeading) * sin(angularD) * cos(lat1), cos(angularD) - sin(lat1) * sin(lat2));
// normalise to -180...+180
long2 = fmod((long2 + 3 * M_PI), (2 * M_PI) - M_PI);
// convert to 1/10 of microdegrees
long rlat2 = round(lat2 * 10000000 / M_PI * 180);
long rlong2 = round(long2 * 10000000 / M_PI * 180);
p__latitude = rlat2;//asin(sin(ref_lat)*cos(distance) + cos(ref_lat)*sin(distance)*cos(angle)) * 180.0 / M_PI;
p__longitude = rlong2;//((double)p__refLongitude) + atan2(sin(angle)*sin(distance)*cos(ref_lat), cos(distance) - sin(ref_lat)*sin((double)p__latitude))*(180.0/M_PI);
}
/* * @desc External function to compute radius of a given circular area
......
......@@ -9,7 +9,7 @@
#include "IVIM_ports/AdapterControlPort_IVIM.partC"
#include "MapemSpatem_ports/AdapterControlPort_MapemSpatem.partC"
#include "SremSsem_ports/AdapterControlPort_SremSsem.partC"
#include "Pki_ports/AdapterControlPort_Pki.partC"
//#include "Pki_ports/AdapterControlPort_Pki.partC"
//#include "V2G_ports/AdapterControlPort_V2G.partC"
#else //_NO_SOFTLINKS_
......@@ -20,7 +20,7 @@
#include "AdapterControlPort_MapemSpatem.partC"
#include "AdapterControlPort_SremSsem.partC"
#include "AdapterControlPort_GN.partC"
#include "AdapterControlPort_Pki.partC"
//#include "AdapterControlPort_Pki.partC"
/*
#include "AdapterControlPort_IVIM.partC"
#include "AdapterControlPort_MapemSpatem.partC"
......
......@@ -9,10 +9,10 @@
#include "CAM_ports/AdapterControlPort_CAM.partH"
#include "DENM_ports/AdapterControlPort_DENM.partH"
#include "GN_ports/AdapterControlPort_GN.partH"
#include "Pki_ports/AdapterControlPort_Pki.partH"
#include "IVIM_ports/AdapterControlPort_IVIM.partH"
#include "MapemSpatem_ports/AdapterControlPort_MapemSpatem.partH"
#include "SremSsem_ports/AdapterControlPort_SremSsem.partH"
//#include "Pki_ports/AdapterControlPort_Pki.partH"
//#include "V2G_ports/AdapterControlPort_V2G.partH"
#else //_NO_SOFTLINKS_
......@@ -23,7 +23,7 @@
#include "AdapterControlPort_MapemSpatem.partH"
#include "AdapterControlPort_SremSsem.partH"
#include "AdapterControlPort_GN.partH"
#include "AdapterControlPort_Pki.partH"
//#include "AdapterControlPort_Pki.partH"
/*
#include "AdapterControlPort_IVIM.partH"
#include "AdapterControlPort_MapemSpatem.partH"
......
......@@ -3,7 +3,7 @@
#include "loggers.hh"
#include "registration.hh"
#include "http_layer.hh"
#include "pki_layer.hh"
//=============================================================================
namespace LibItsPki__TestSystem {
......@@ -78,17 +78,17 @@ namespace LibItsPki__TestSystem {
if (p != NULL) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: Got PKI layer %p", p);
LibItsPki__TypesAndValues::AcPkiResponse response;
response.result() = LibItsPki__TypesAndValues::AcPkiResponse(BOOLEAN(false));
response.result() = BOOLEAN(false);
if (send_par.ischosen(LibItsPki__TypesAndValues::AcPkiPrimitive::ALT_acSetSecurityData)) {
loggers::get_instance().log("AdapterControlPort::outgoing_send: AcSetSecurityData");
p->set_pki_keys(send_par.acSetSecurityData());
response.result() = LibItsPki__TypesAndValues::AcPkiResponse(BOOLEAN(true));
response.result() = BOOLEAN(true);
}
// Send response
loggers::get_instance().log_msg("AdapterControlPort::outgoing_send: Send response: ", response);
incoming_message(response);
} else {
loggers::get_instance().error("AdapterControlPort::outgoing_send: %s not registered", "pkiPort");
loggers::get_instance().error("AdapterControlPort::outgoing_send: pkiPort not registered");
}
}
......
......@@ -9,6 +9,8 @@
#include "converter.hh"
#include "security_services.hh"
#include "pki_layer.hh"
using namespace std; // Required for isnan()
......@@ -57,13 +59,13 @@ void pki_layer::sendMsg(const EtsiTs102941TypesEnrolment::InnerEcRequest& p_inne
_etsi_ts102941_types_enrolment_inner_request.encode(p_inner_ec_request, inner_ec_request);
// Build the EtsiTs103097Data-Signed
OCTETSTRING etsi_ts_102941_data;
if (generate_inner_ec_request_signed_for_pop(inner_ec_request, etsi_ts_102941_data) == -1) {
if (generate_inner_ec_request_signed_for_pop(inner_ec_request, etsi_ts_102941_data, p_param) == -1) {
loggers::get_instance().warning("pki_layer::sendMsg: Failed to generate InnerExRequestSignedForPop");
return;
}
// Secured the Pki message
OCTETSTRING signed_and_encrypted_data;
if (sign_and_encrypt_payload(daetsi_ts_102941_datata, signed_and_encrypted_data) == 0) {
if (sign_and_encrypt_payload(etsi_ts_102941_data, signed_and_encrypted_data) == 0) {
loggers::get_instance().warning("pki_layer::sendMsg: Failed to secure Pki message");
return;
}
......@@ -103,13 +105,13 @@ void pki_layer::receive_data(OCTETSTRING& data, params& params)
// to_all_upper_ports(pki_message, params);
}
int pki_layer::generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inner_ec_request, OCTETSTRING& p_etsi_ts_102941_data) {
int pki_layer::generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inner_ec_request, OCTETSTRING& p_etsi_ts_102941_data, params& p_params) {
loggers::get_instance().log_msg(">>> pki_layer::generate_inner_ec_request_signed_for_pop: ", p_inner_ec_request);
// Set unsecured data
IEEE1609dot2::Ieee1609Dot2Content unsecured_data_content;
unsecured_data_content.unsecuredData() = p_inner_ec_request;
IEEE1609dot2::Ieee1609Dot2Data unsecured_data(ProtocolVersion, unsecured_data_content);
IEEE1609dot2::Ieee1609Dot2Data unsecured_data(security_services::get_instance().get_protocol_version(), unsecured_data_content);
// Set hash algorithm
IEEE1609dot2BaseTypes::HashAlgorithm hashId(IEEE1609dot2BaseTypes::HashAlgorithm::sha256);
if (p_params[params::hash].compare("SHA-384") == 0) {
......@@ -127,8 +129,9 @@ int pki_layer::generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inn
header_info.p2pcdLearningRequest().set_to_omit();
header_info.missingCrlIdentifier().set_to_omit();
header_info.encryptionKey().set_to_omit();
unsigned long long ms = base_time::get_instance().get_its_current_time();
INTEGER i;
i.set_long_long_val((unsigned int) ms);
i.set_long_long_val((unsigned int)ms);
header_info.generationTime() = OPTIONAL<INTEGER>(i);
header_info.inlineP2pcdRequest().set_to_omit();
header_info.requestedCertificate().set_to_omit();
......@@ -139,14 +142,12 @@ int pki_layer::generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inn
loggers::get_instance().log_msg("pki_layer::sign_payload: tbs_data = ", tbs_data);
// Sign the ToBeSignedData data structure
IEEE1609dot2BaseTypes::Signature signature;
if (security_services::get_instance().sign_tbs_data(tbs_data, hashId, signature, p_params) != 0) {
/* TODOD Sign with private key if (security_services::get_instance().sign_tbs_data(tbs_data, hashId, signature, p_params) != 0) {
loggers::get_instance().warning("pki_layer::sign_payload: Failed to secure payload");
return -1;
}
}*/
IEEE1609dot2::SignerIdentifier signer;
loggers::get_instance().log("pki_layer::sign_payload: ms = %d - _last_generation_time = %d - ms - _last_generation_time = %d", (unsigned int) ms, _last_generation_time, (unsigned int) (ms - _last_generation_time));
signer.self() = nullptr;
signer.self__() = ASN_NULL();
IEEE1609dot2::SignedData signed_data(hashId, tbs_data, signer, signature);
loggers::get_instance().log_msg("pki_layer::sign_payload: signed_data = ", signed_data);
IEEE1609dot2::Ieee1609Dot2Content ieee_dot2_content;
......@@ -155,7 +156,7 @@ int pki_layer::generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inn
loggers::get_instance().log_msg("pki_layer::sign_payload: ieee_1609dot2_data = ", ieee_1609dot2_data);
// Set EtsiTs102941Data layer
EtsiTs102941MessagesItss::EtsiTs102941Data etsi_ts_102941_data;
etsi_ts_102941_data.content().enrolmentRequest = ieee_1609dot2_data;
etsi_ts_102941_data.content().enrolmentRequest() = ieee_1609dot2_data;
_codec.encode(ieee_1609dot2_data, p_etsi_ts_102941_data);
if (!p_etsi_ts_102941_data.is_bound()) {
loggers::get_instance().warning("pki_layer::sign_payload: Failed to encode Ieee1609Dot2Data");
......
......@@ -33,6 +33,9 @@ class OCTETSTRING; //! Forward declaration of TITAN class
* \brief This class provides a factory class to create an tcp_layer class instance
*/
class pki_layer : public t_layer<LibItsPki__TestSystem::PkiPort> {
static constexpr unsigned int ProtocolVersion = 1;
params _params;
etsi_ts102941_types_enrolment_inner_request _etsi_ts102941_types_enrolment_inner_request;
etsi_ts102941_types_enrolment_inner_response _etsi_ts102941_types_enrolment_inner_response;
......@@ -93,11 +96,13 @@ public: //! \publicsection
*/
virtual void receive_data(OCTETSTRING& data, params& info);
private:
void set_pki_keys(const LibItsPki__TypesAndValues::AcSetSecurityData& p_ac_set_security_data);
int generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inner_ec_request, OCTETSTRING& p_etsi_ts_102941_data);
const int get_protocol_version() const { return ProtocolVersion; };
private:
int generate_inner_ec_request_signed_for_pop(const OCTETSTRING& p_inner_ec_request, OCTETSTRING& p_etsi_ts_102941_data, params& p_params);
/*!
* \fn int sign_and_encrypt_payload(const OCTETSTRING& p_data, OCTETSTRING& p_secured_data);
......
......@@ -130,6 +130,9 @@ public: /*! \publicsection */
* \return 0 on success, negative value otherwise
*/
int encrypt_gn_payload(const OCTETSTRING& p_unsecured_gn_payload, OCTETSTRING& p_enc_gn_payload, params& p_params);
const int get_protocol_version() const { return ProtocolVersion; };
private:
/*!
* \fn int process_ieee_1609_dot2_content(const IEEE1609dot2::Ieee1609Dot2Content& p_ieee_1609_dot2_content, const bool p_verify, OCTETSTRING& p_unsecured_payload, params& p_params);
......
......@@ -3188,11 +3188,11 @@ module ItsCam_TpFunctions {
// empty on purpose
}
if(i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": PASS: CAM was transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: CAM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
else {
log("*** " & testcasename() & ": FAIL: CAM was not transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: CAM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
......@@ -3251,11 +3251,11 @@ module ItsCam_TpFunctions {
// empty on purpose
}
if(i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: CAM was not transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: CAM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": PASS: CAM was transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: CAM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......
......@@ -1032,7 +1032,7 @@ module ItsDenm_TpFunctions {
tc_ac.start;
alt {
[] denmPort.receive ( mw_denmInd ( mw_denmPdu (
mw_denm ( mw_denmMgmtConTermination ( v_actionId, f_getIutStationType(), -, -, -, isNegation ))))) -> value v_denmInd {
mw_denm ( mw_denmMgmtConTermination ( v_actionId, -, -, -, -, isNegation ))))) -> value v_denmInd {
tc_ac.stop;
log("*** " & testcasename() & ": PASS: Successfully received expected DENM. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
......@@ -2111,7 +2111,7 @@ module ItsDenm_TpFunctions {
const ValidityDuration c_duration1 := defaultValidity + 100;
const ValidityDuration c_duration2 := defaultValidity;
const TransmissionInterval c_interval1 := c_interval_10sec;
const float c_diffValidity := int2float ( ( c_duration1 - c_duration2 ) );
//const float c_diffValidity := int2float ( ( c_duration1 - c_duration2 ) );
// Local variables
var template (value) SituationContainer v_situation := m_situation(LibItsCommon_ASN1_NamedNumbers.CauseCodeType_vehicleBreakdown_, LibItsCommon_ASN1_NamedNumbers.VehicleBreakdownSubCauseCode_unavailable_);
var template (present) DenmInd v_expected := mw_denmInd(mw_denmPdu(mw_denm( mw_denmMgmtCon( mw_actionId, -, -, c_duration2 ifpresent))));
......@@ -2137,7 +2137,7 @@ module ItsDenm_TpFunctions {
f_utTriggerEvent( m_utTriggerEvent( v_situation, omit, c_duration1, c_interval1 ) );
f_awaitDenMessage ( v_expected, v_denmInd );
t_repetition.start(2.0 * int2float(c_interval1)/1000.0);
t_default.start ( int2float(c_duration1) );
t_default.start ( int2float(c_duration2) );
v_actionId := v_denmInd.msgIn.denm.management.actionID;
v_expected.msgIn.denm.management.actionID := v_actionId;
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
......@@ -2146,15 +2146,15 @@ module ItsDenm_TpFunctions {
alt {
[] denmPort.receive ( v_expected ) -> value v_denmInd {
t_repetition.stop;
if ( t_default.read*1000.0 < c_diffValidity ) {
log("*** " & testcasename() & ": FAIL: DENM received after validity duration. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
else {
if ( t_default.running ) {
log("*** " & testcasename() & ": INFO: DENM retransmission. ***");
t_repetition.start(2.0 * (int2float(c_interval1)/1000.0));
repeat;
}
else {
log("*** " & testcasename() & ": FAIL: DENM received after validity duration. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
}
[] denmPort.receive(mw_denmInd(mw_anyDenmPdu)) {
t_repetition.stop;
......@@ -2162,22 +2162,16 @@ module ItsDenm_TpFunctions {
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
[] t_repetition.timeout {
if ( t_default.read*1000.0 < c_diffValidity ) {
if ( t_default.running ) {
t_default.stop;
log("*** " & testcasename() & ": PASS: Retransmission of DENM stopped. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
else {
t_default.stop;
log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
log("*** " & testcasename() & ": PASS: Retransmission of DENM stopped. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
}
[] t_default.timeout {
t_repetition.stop;
log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
}
// Postamble
......@@ -2455,11 +2449,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
else {
log("*** " & testcasename() & ": FAIL: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
......@@ -2528,11 +2522,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
else {
log("*** " & testcasename() & ": FAIL: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
......@@ -2587,11 +2581,11 @@ module ItsDenm_TpFunctions {
f_sleep(PX_TNOAC);
if (0 != lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......@@ -2650,11 +2644,11 @@ module ItsDenm_TpFunctions {
f_sleep(PX_TNOAC);
if (0 != lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......@@ -2717,11 +2711,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......@@ -2787,11 +2781,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......@@ -2867,11 +2861,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
else {
log("*** " & testcasename() & ": FAIL: DENM was not transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
......@@ -2928,11 +2922,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: DENM was treated as valid and transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was treated as valid and transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": PASS: DENM was treated as invalid and was not transmitted to upper layer***");
log("*** " & testcasename() & ": PASS: DENM was treated as invalid and was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......@@ -3030,11 +3024,11 @@ module ItsDenm_TpFunctions {
// empty on purpose
}
if (i < lengthof(vc_utEvents)) {
log("*** " & testcasename() & ": FAIL: DENM was treated as valid and was transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was treated as valid and was transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
else {
log("*** " & testcasename() & ": FAIL: DENM was treated as invalid and was not transmitted to upper layer***");
log("*** " & testcasename() & ": FAIL: DENM was treated as invalid and was not transmitted to upper layer ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
......@@ -3172,7 +3166,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId)
mw_denmMgmtCon(v_actionId, f_getIutStationType())
)
)
)
......@@ -3276,7 +3270,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId, -, v_referenceTime1)
mw_denmMgmtCon(v_actionId, f_getIutStationType(), v_referenceTime1)
)
)
)
......@@ -3374,7 +3368,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId)
mw_denmMgmtCon(v_actionId, f_getIutStationType())
)
)
)
......@@ -3453,7 +3447,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId)
mw_denmMgmtCon(v_actionId, f_getIutStationType())
),
f_getIutStationId()
)
......@@ -3549,7 +3543,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(mw_anyActionId)
mw_denmMgmtCon(mw_anyActionId, f_getIutStationType())
)
)
)
......@@ -3620,7 +3614,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId, -, v_referenceTime1)
mw_denmMgmtCon(v_actionId, f_getIutStationType(), v_referenceTime1)
)
)
)
......@@ -3730,7 +3724,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon ( v_actionId, - )
mw_denmMgmtCon ( v_actionId, f_getIutStationType())
)
)
)
......@@ -3815,7 +3809,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId)
mw_denmMgmtCon(v_actionId, f_getIutStationType())
)
)
)
......@@ -3886,7 +3880,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId)
mw_denmMgmtCon(v_actionId, f_getIutStationType())
)
)
)
......@@ -3973,7 +3967,7 @@ module ItsDenm_TpFunctions {
mw_denmInd(
mw_denmPdu(
mw_denm(
mw_denmMgmtCon(v_actionId)
mw_denmMgmtCon(v_actionId, f_getIutStationType())
)
)
)
......
Subproject commit 15ed56907addc3e8af880b5363e3616a3842f7a6
Subproject commit 311f461d726a794d9cf30cf5a14b1f6ca5b74ddc
......@@ -46,6 +46,7 @@ module TestCodec_Pki {
import from LibItsHttp_TestSystem all;
// LibItsPki
import from LibItsPki_TypesAndValues all;
import from LibItsPki_EncdecDeclarations all;
import from LibItsPki_Templates all;
import from LibItsPki_Functions all;
......@@ -231,6 +232,7 @@ module TestCodec_Pki {
var Oct32 v_publicKeyX;
var Oct32 v_publicKeyY;
var Oct32 v_publicKeyCompressed;
var AcSetSecurityData v_ac_set_security_data;
var integer v_compressedMode;
var InnerEcRequest v_inner_ec_request;
......@@ -239,14 +241,34 @@ module TestCodec_Pki {
stop;
}
map(self:pkiPort, system:pkiPort);
// Create PKI InnerEcRequest request
if (f_generate_inner_ec_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request) == false) {
setverdict(fail, "Failed to setup InnerEcRequest message");
stop;
}
// map(self:acPkiPort, system:acPkiPort);
map(self:pkiPort, system:pkiPort);
//f_sendAcPrimitiv();
/*v_ac_set_security_data := { "CERT_TS_A_EA", "CERT_IUT_A_EA", v_private_key, v_publicKeyCompressed, v_compressedMode };
acPkiPort.send(AcPkiPrimitive: { acSetSecurityData := v_ac_set_security_data });
tc_ac.start;
alt {
[] acPkiPort.receive(AcPkiResponse: { result := true }) {
tc_ac.stop;
setverdict(pass);
}
[] acPkiPort.receive(AcPkiResponse: { result := false }) {
tc_ac.stop;
setverdict(fail, "Failed to set Test System Security data");
stop;
}
[] tc_ac.timeout {
setverdict(inconc, "No response");
}
}*/ // End of 'alt' statement
// Send message
pkiPort.send(v_inner_ec_request);
tc_ac.start;
......@@ -261,6 +283,7 @@ module TestCodec_Pki {
} // End of 'alt' statement
unmap(self:pkiPort, system:pkiPort);
// unmap(self:acPkiPort, system:acPkiPort);
} // End of testcase tc_inner_ec_request_3
......