Commits (2)
......@@ -18,8 +18,6 @@ module LibItsCommon_Templates {
group taPrimitives {
//FIXME RGY the simple boolean result has been changed to a union
// template (value) AcSecResponse m_acSecResponseSuccess := true;
template (value) AdapterControlResults m_acSecResponseSuccess := {acSecResponse:=true};
/**
......@@ -44,18 +42,16 @@ module LibItsCommon_Templates {
}
} // End of template m_acDisableSecurity
//FIXME RGY As discussed, port in type is changed to a top-level union type
// template AcGnssResponse m_acGnssResponseSuccess := true;
template AdapterControlResults m_acGnssResponseSuccess := {acGnssResponse:=true};
//FIXME RGY As discussed, port in type is changed to a top-level union type
// template AcGnssDistanceCovered m_acGnssDistanceCovered := true;
template AdapterControlResults m_acGnssDistanceCovered := {acGnssDistanceCovered:=true};
template (value) AdapterControlResults m_acGnssDistanceCovered := {
acGnssDistanceCovered:=true
};
/**
* @desc Testsystem will load GNSS scenario
*/
template AcGnssPrimitive m_loadScenario(Scenario p_scenario) := {
template (value) AcGnssPrimitive m_loadScenario(Scenario p_scenario) := {
loadScenario := {
scenario := p_scenario
}
......@@ -64,7 +60,7 @@ module LibItsCommon_Templates {
/**
* @desc Testsystem will start GNSS scenario
*/
template AcGnssPrimitive m_startScenario := {
template (value) AcGnssPrimitive m_startScenario := {
startScenario := {
}
}
......@@ -72,7 +68,7 @@ module LibItsCommon_Templates {
/**
* @desc Testsystem will stop GNSS scenario
*/
template AcGnssPrimitive m_stopScenario := {
template (value) AcGnssPrimitive m_stopScenario := {
stopScenario := {
}
}
......@@ -80,7 +76,7 @@ module LibItsCommon_Templates {
/**
* @desc Testsystem will request indication if distance was covered
*/
template AcGnssPrimitive m_distanceToCover(float p_distance) := {
template (value) AcGnssPrimitive m_distanceToCover(float p_distance) := {
distanceToCover := {
distance := p_distance
}
......@@ -89,7 +85,7 @@ module LibItsCommon_Templates {
/**
* @desc Testsystem will change the speed (delta value)
*/
template AcGnssPrimitive m_changeScenarioSpeed(SpeedValue p_deltaSpeedValue) := {
template (value) AcGnssPrimitive m_changeScenarioSpeed(SpeedValue p_deltaSpeedValue) := {
changeSpeed := {
deltaSpeed := p_deltaSpeedValue
}
......@@ -98,7 +94,7 @@ module LibItsCommon_Templates {
/**
* @desc Testsystem will change the heading (delta value)
*/
template AcGnssPrimitive m_changeScenarioHeading(HeadingValue p_deltaHeadingValue) := {
template (value) AcGnssPrimitive m_changeScenarioHeading(HeadingValue p_deltaHeadingValue) := {
changeHeading := {
deltaHeading := p_deltaHeadingValue
}
......
......@@ -314,7 +314,7 @@ module LibItsDenm_Templates {
* @param p_protocolVersion The expected protocol version (Default: current DEN protocol version)
* @param p_messageID The expected message id (Default: DEN message id)
*/
template ItsPduHeader mw_itsPduHeader(
template (present) ItsPduHeader mw_itsPduHeader(
template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_denm_
......@@ -431,7 +431,7 @@ module LibItsDenm_Templates {
* @param p_location The expected location Container (Default: any or omit)
* @param p_alacarte The expected Alacarte Container (Default: any or omit)
*/
template (present) DecentralizedEnvironmentalNotificationMessage mw_denm(
template DecentralizedEnvironmentalNotificationMessage mw_denm(
template (present) ManagementContainer p_management := ?,
template SituationContainer p_situation := *,
template LocationContainer p_location := *,
......@@ -500,7 +500,7 @@ module LibItsDenm_Templates {
* @param p_detectionTime The detection time (Default: current time)
* @param p_referenceTime The reference time (Default: current time)
*/
template (value) ManagementContainer m_denmMgmtConTermination (
template (omit) ManagementContainer m_denmMgmtConTermination (
template (value) ActionID p_actionID,
template (value) StationType p_stationType := f_getTsStationType(),
template (value) ValidityDuration p_validityDuration := defaultValidity,
......@@ -522,7 +522,7 @@ module LibItsDenm_Templates {
* @param p_detectionTime The detection time (Default: current time)
* @param p_referenceTime The reference time (Default: current time)
*/
template (present) ManagementContainer mw_denmMgmtConTermination (
template ManagementContainer mw_denmMgmtConTermination (
template (present) ActionID p_actionID,
template (present) StationType p_stationType := f_getIutStationType(),
template (present) TimestampIts p_referenceTime := ?,
......@@ -541,7 +541,7 @@ module LibItsDenm_Templates {
* @param p_validityDuration The expected validity duration (Default: any or omit)
* @param p_transmissionInterval The expected transmission interval (Default: any or omit)
*/
template (present) ManagementContainer mw_denmMgmtCon(
template ManagementContainer mw_denmMgmtCon(
template (present) ActionID p_actionID,
template (present) StationType p_stationType := f_getIutStationType(),
template (present) TimestampIts p_referenceTime := ?,
......
......@@ -161,7 +161,7 @@ module LibItsGeoNetworking_Functions {
* NodeB being close to the area center
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf01Up(Scenario p_scenario := e_staticPosition) runs on ItsGeoNetworking /* TITAN TODO: system ItsGeoNetworkingSystem */ {
function f_cf01Up(Scenario p_scenario := e_staticPosition) runs on ItsGeoNetworking system ItsGeoNetworkingSystem {
// Variables
var PositionTable v_positionTable := {};
......@@ -190,7 +190,7 @@ module LibItsGeoNetworking_Functions {
} // end f_cf01Up
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf01Down() runs on ItsGeoNetworking /* TITAN TODO: system ItsGeoNetworkingSystem */ {
function f_cf01Down() runs on ItsGeoNetworking system ItsGeoNetworkingSystem {
f_uninitialiseSecuredMode();
......@@ -217,7 +217,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf02Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf02Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
......@@ -286,7 +286,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf02Down() runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf02Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Local variables
var integer i;
......@@ -318,7 +318,7 @@ module LibItsGeoNetworking_Functions {
* @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf03Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf03Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
......@@ -386,7 +386,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf03Down() runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf03Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Local variables
var integer i;
......@@ -421,7 +421,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf04Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf04Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
......@@ -489,7 +489,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf04Down() runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */{
function f_cf04Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Local variables
var integer i;
......@@ -520,7 +520,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf05Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf05Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
......@@ -587,7 +587,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf05Down() runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf05Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Local variables
var integer i;
......@@ -618,7 +618,7 @@ module LibItsGeoNetworking_Functions {
* @param p_mainUtComponent Name of the component that will initialize IUT and handle default UT messages
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf06Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf06Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
......@@ -685,7 +685,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf06Down() runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf06Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Local variables
var integer i;
......@@ -716,7 +716,7 @@ module LibItsGeoNetworking_Functions {
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf07Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO mtc ItsMtc system ItsGeoNetworkingSystem */{
function f_cf07Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
......@@ -782,7 +782,7 @@ module LibItsGeoNetworking_Functions {
* @desc Deletes configuration cf06
*/
//FIXME RGY Titan doesn't support mtc and system clauses yet
function f_cf07Down() runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
function f_cf07Down() runs on ItsMtc mtc ItsMtc system ItsGeoNetworkingSystem {
// Local variables
var integer i;
......@@ -978,9 +978,8 @@ module LibItsGeoNetworking_Functions {
position := p_positionValue
};
}
//FIXME RGY Titan doesn't support @deterministic yet
// function @deterministic f_fillTimestamp(inout LongPosVector v_vector)
function f_fillTimestamp(inout LongPosVector v_vector)
function @deterministic f_fillTimestamp(in LongPosVector v_vector)
return LongPosVector {
if (v_vector.timestamp_ == 0) {
v_vector.timestamp_ := f_computeGnTimestamp();
......@@ -1339,7 +1338,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf01 de-initialisation.
*/
altstep a_cf01Down() runs on ItsGeoNetworking {
altstep a_cf01Down() runs on ItsGeoNetworking system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_poDefault();
f_cf01Down();
......@@ -1351,7 +1350,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf02 de-initialisation.
*/
altstep a_cf02Down() runs on ItsMtc {
altstep a_cf02Down() runs on ItsMtc system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_cf02Down();
log("*** a_cf02Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
......@@ -1362,7 +1361,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf03 de-initialisation.
*/
altstep a_cf03Down() runs on ItsMtc {
altstep a_cf03Down() runs on ItsMtc system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_cf03Down();
log("*** a_cf03Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
......@@ -1373,7 +1372,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf04 de-initialisation.
*/
altstep a_cf04Down() runs on ItsMtc {
altstep a_cf04Down() runs on ItsMtc system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_cf04Down();
log("*** a_cf04Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
......@@ -1384,7 +1383,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf05 de-initialisation.
*/
altstep a_cf05Down() runs on ItsMtc {
altstep a_cf05Down() runs on ItsMtc system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_cf05Down();
log("*** a_cf05Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
......@@ -1395,7 +1394,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf06 de-initialisation.
*/
altstep a_cf06Down() runs on ItsMtc {
altstep a_cf06Down() runs on ItsMtc system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_cf06Down();
log("*** a_cf06Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
......@@ -1406,7 +1405,7 @@ module LibItsGeoNetworking_Functions {
/**
* @desc Default handling cf07 de-initialisation.
*/
altstep a_cf07Down() runs on ItsMtc {
altstep a_cf07Down() runs on ItsMtc system ItsGeoNetworkingSystem {
[] a_shutdown() {
f_cf07Down();
log("*** a_cf07Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
......
......@@ -19,6 +19,7 @@ module LibItsHttp_Pics {
* @desc
*/
modulepar charstring PICS_HEADER_CONTENT_TYPE := "application/x-its-request";
modulepar charstring PICS_HEADER_CTL_CONTENT_TYPE := "application/x-its-crl";
/**
* @desc Set to false in TOKEN header shall not be used
......
......@@ -25,9 +25,10 @@ module LibItsHttp_TestSystem {
type component HttpComponent extends SelfSyncComp { // FIXME To be rename into HttpTest
port HttpPort httpPort;
port HttpPort httpPort_notif;
// timers
timer tc_wait := PX_TWAIT;
timer tc_ac := PX_TAC;
timer tc_noac := PX_TNOAC;
timer tc_wait := PX_TWAIT;
} // End of component HttpComponent
......
......@@ -54,7 +54,7 @@ module LibItsIvim_Templates {
* @param p_iviMsg The expected IVI Message
*/
template (present) IvimInd mw_ivimInd(
template (present) IVIM p_iviMsg
template (present) IVIM p_iviMsg := ?
) := {
msgIn := p_iviMsg,
gnNextHeader := *,
......@@ -77,10 +77,8 @@ module LibItsIvim_Templates {
* @param p_gnLifetime GN packet lifetime value (ms)
* @param p_gnTrafficClass GN traffic class value
*/
//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base
// template IvimInd mw_ivimIndWithGnParameters (
template(present) IvimInd mw_ivimIndWithGnParameters (
template (present) IVIM p_iviMsg,
template IvimInd mw_ivimIndWithGnParameters(
template (present) IVIM p_iviMsg := ?,
in template UInt8 p_gnNextHeader := *,
in template UInt8 p_gnHeaderType := *,
in template UInt8 p_gnHeaderSubtype := *,
......@@ -100,10 +98,8 @@ module LibItsIvim_Templates {
* @param p_btpDestinationPort BTP destination port value
* @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A)
*/
//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base
// template IvimInd mw_ivimIndWithBtpParameters (
template(present) IvimInd mw_ivimIndWithBtpParameters (
template (present) IVIM p_iviMsg,
template IvimInd mw_ivimIndWithBtpParameters(
template (present) IVIM p_iviMsg := ?,
template UInt16 p_btpDestinationPort := *,
template UInt16 p_btpInfo := *
) modifies mw_ivimInd := {
......@@ -117,9 +113,8 @@ module LibItsIvim_Templates {
* @param p_ssp SSP security parameter
* @param p_its_aid ITS-AID value
*/
//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base
template(present) IvimInd mw_ivimIndWithSecurityParameters (
template (present) IVIM p_iviMsg,
template IvimInd mw_ivimIndWithSecurityParameters(
template (present) IVIM p_iviMsg := ?,
template Bit256 p_ssp := *,
template UInt32 p_its_aid := *
) modifies mw_ivimInd := {
......@@ -167,7 +162,7 @@ module LibItsIvim_Templates {
* @param p_connectedIviStructures List of ConnectedIviStructure (Default: omit)
* @param p_optional_ Optional field (Default: omit)
*/
template (value) UtIvimUpdate m_utIvimUpdateEvent(
template (omit) UtIvimUpdate m_utIvimUpdateEvent(
template (value) IviIdentificationNumber p_iviIdentificationNumber,
template (omit) TimestampIts p_timeStamp := c_duration_2sec,
template (omit) TimestampIts p_validFrom := omit,
......@@ -221,7 +216,7 @@ module LibItsIvim_Templates {
* @param p_protocolVersion The expected protocol version (Default: current IVI protocol version)
* @param p_messageID The expected message id (Default: IVI message id)
*/
template ItsPduHeader mw_itsPduHeader(
template (present) ItsPduHeader mw_itsPduHeader(
template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_ivim_
......@@ -269,7 +264,7 @@ module LibItsIvim_Templates {
* @param p_messageID The expected message id (Default: IVI message id)
*/
template (present) IVIM mw_ivimPdu(
template (present) IviStructure p_ivim,
template (present) IviStructure p_ivim := ?,
template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_ivim_
......@@ -300,7 +295,7 @@ module LibItsIvim_Templates {
* @param p_mandatory The Management Container
* @param p_optional_ A list of IVI Container (Default: omit)
*/
template (present) IviStructure mw_ivimStructure(
template IviStructure mw_ivimStructure(
template (present) IVIManagementContainer p_mandatory := ?,
template IviStructure.optional_ p_optional_ := *
) := {
......@@ -315,7 +310,7 @@ module LibItsIvim_Templates {
template (value) IviStructure m_ivimStructureCancellation(
in template (value) IviIdentificationNumber p_iviIdentificationNumber
) := {
mandatory := valueof(m_iviManagementContainer(f_getProvider(), valueof(p_iviIdentificationNumber), LibItsIvim_ASN1_IVInamedNumbers.IviStatus_cancellation_)),
mandatory := valueof(m_iviManagementContainer(f_getProvider(), valueof(p_iviIdentificationNumber), IviStatus_cancellation_)),
optional_ := omit
} // End of template m_ivimStructureCancellation
......@@ -509,7 +504,7 @@ module LibItsIvim_Templates {
zone := p_zone
} // End of template m_glcPart
template (present) GlcPart mw_glcPart(
template GlcPart mw_glcPart(
template (present) Zid p_zoneId := ?,
template LanePosition p_laneNumber := *,
template GlcPart.zoneExtension p_zoneExtension := *,
......
......@@ -313,7 +313,7 @@ module LibItsMapemSpatem_Templates {
* @param p_protocolVersion The expected protocol version (Default: current MAPEM SPATEM protocol version)
* @param p_messageID The expected message id (Default: MAPEM id)
*/
template ItsPduHeader mw_itsPduHeaderMapem(
template (present) ItsPduHeader mw_itsPduHeaderMapem(
template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_mapem_
......@@ -329,7 +329,7 @@ module LibItsMapemSpatem_Templates {
* @param p_protocolVersion The expected protocol version (Default: current MAPEM SPATEM protocol version)
* @param p_messageID The expected message id (Default: SPATEM id)
*/
template ItsPduHeader mw_itsPduHeaderSpatem(
template (present) ItsPduHeader mw_itsPduHeaderSpatem(
template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_spatem_
......@@ -571,9 +571,7 @@ module LibItsMapemSpatem_Templates {
/**
* @desc Send template for SPAT Message
*/
//FIXME RGY template should be (present), no omit is assigned to it as a whole; Titan currently requires that the modified templte has at least the same restirction as the base
// template (omit) SPAT m_spatem(
template (value) SPAT m_spatem(
template (omit) SPAT m_spatem(
in template (value) IntersectionStateList p_intersections,
in template (omit) DescriptiveName p_name := omit
) modifies m_defaultSpatem:= {
......@@ -585,12 +583,12 @@ module LibItsMapemSpatem_Templates {
template (value) IntersectionStateList m_intersections := { m_intersection };
template (value) IntersectionState m_intersection := {
template (omit) IntersectionState m_intersection := {
name := omit, // Human readable name for intersection to be used only in debug mode
id := m_intersectionReferenceID, // A globally unique value set, consisting of a regionID and
// intersection ID assignment provides a unique mapping to the intersection MAP in question which provides complete location and approach/move/lane data
revision := PX_INTERSECTIONSTATE_REVISION,
status := LibItsCommon_ASN1_ISDSRC_NamedNumbers.IntersectionStatusObject_manualControlIsEnabled_,
status := IntersectionStatusObject_manualControlIsEnabled_,
// General status of the controller(s)
moy := omit, // Minute of current UTC year used only with messages to be archived
timeStamp := omit, // The mSec point in the current UTC minute that this message was constructed
......@@ -602,7 +600,7 @@ module LibItsMapemSpatem_Templates {
template (value) MovementList m_movements := { m_movement };
template (value) MovementState m_movement := {
template (omit) MovementState m_movement := {
movementName := omit,
signalGroup := PX_SIGNAL_GROUP_ID,
state_time_speed := m_movementEventList,
......
......@@ -26,6 +26,7 @@ module LibItsPki_Functions {
import from EtsiTs102941TypesAuthorization language "ASN.1:1997" all;
import from EtsiTs102941TypesAuthorizationValidation language "ASN.1:1997" all;
import from EtsiTs102941MessagesCa language "ASN.1:1997" all;
import from EtsiTs102941TrustLists language "ASN.1:1997" all;
import from EtsiTs103097Module language "ASN.1:1997" all;
import from ITS_Container language "ASN.1:1997" all;
import from CAM_PDU_Descriptions language "ASN.1:1997" all;
......@@ -107,7 +108,7 @@ module LibItsPki_Functions {
}
f_connect4SelfOrClientSync();
f_initialiseSecuredMode(p_ea_certificate_id, p_aa_certificate_id); // TODO To be removed???
f_initialiseSecuredMode(p_ea_certificate_id, p_aa_certificate_id);
// Setup EA certificate shared with PKI EA entity
f_readCertificate(p_ea_certificate_id, vc_eaCertificate);
......@@ -144,6 +145,27 @@ module LibItsPki_Functions {
}
} // End of function f_cfHttpUp
/**
* @desc Setups default configuration
*/
function f_cfHttpUp_ca() runs on ItsPkiHttp /* TITAN TODO: system ItsPkiHttpSystem */ {
if (PICS_MULTIPLE_END_POINT == false) {
map(self:httpPort, system:httpPort);
} else {
map(self:httpCaPort, system:httpCaPort);
}
f_connect4SelfOrClientSync();
f_initialiseSecuredMode();
if (PICS_MULTIPLE_END_POINT == false) {
activate(a_default_pki_http());
} else {
activate(a_default_pki_http_ca());
}
} // End of function f_cfHttpUp_ca
/**
* @desc Setups default configuration
* @param p_certificate_id The certificate identifier the TA shall use in case of secured IUT
......@@ -292,6 +314,19 @@ module LibItsPki_Functions {
f_uninitialiseSecuredMode();
} // End of function f_cfHttpDown
/**
* @desc Deletes default configuration
*/
function f_cfHttpDown_ca() runs on ItsPkiHttp /* TITAN TODO: system ItsPkiHttpSystem */ {
if (PICS_MULTIPLE_END_POINT == false) {
unmap(self:httpPort, system:httpPort);
} else {
unmap(self:httpCaPort, system:httpCaPort);
}
f_disconnect4SelfOrClientSync();
f_uninitialiseSecuredMode();
} // End of function f_cfHttpDown_ca
/**
* @desc Deletes default configuration
*/
......@@ -636,6 +671,15 @@ module LibItsPki_Functions {
p_http_message.response.header := p_headers;
}
httpAtPort.send(p_http_message);
} else if (v_content_text == { "ca_request" }) {
log("f_http_send: Send on CA end point");
f_set_headers_list({ c_header_host }, { PICS_HEADER_HOST_CA }, p_headers);
if (ischosen(p_http_message.request)) {
p_http_message.request.header := p_headers;
} else {
p_http_message.response.header := p_headers;
}
httpCaPort.send(p_http_message);
} else {
log("f_http_send: Invalid header value: ", v_content_text);
}
......@@ -2863,6 +2907,116 @@ module LibItsPki_Functions {
} // End of group authorization_validation_xxx
group rca {
function f_verify_rca_response_message(
in Ieee1609Dot2Data p_ieee1609dot2_signed_data,
in boolean p_check_security := true,
out ToBeSignedRcaCtl p_to_be_signed_rca_ctl
) return boolean {
var bitstring v_etsi_ts_102941_data_msg;
var bitstring v_tbs;
var Certificate v_certificate;
var charstring v_certificate_id;
var Oct32 v_issuer;
var EtsiTs102941Data v_etsi_ts_102941_data;
log(">>> f_verify_rca_response_message: p_ieee1609dot2_signed_data= ", p_ieee1609dot2_signed_data);
// 1. Verify signature
log("f_verify_rca_response_message: p_ieee1609dot2_signed_data.content.signedData.tbsData= ", p_ieee1609dot2_signed_data.content.signedData.tbsData);
v_tbs := encvalue(p_ieee1609dot2_signed_data.content.signedData.tbsData);
if (f_getCertificateFromDigest(p_ieee1609dot2_signed_data.content.signedData.signer.digest, v_certificate, v_certificate_id) == false) {
if (p_check_security == true) {
return false;
}
}
f_getCertificateHash256(v_certificate_id, v_issuer);
if (f_verifyEcdsa(bit2oct(v_tbs), v_issuer, p_ieee1609dot2_signed_data.content.signedData.signature_, v_certificate.toBeSigned.verifyKeyIndicator.verificationKey) == false) {
if (p_check_security == true) {
return false;
}
}
v_etsi_ts_102941_data_msg := oct2bit(p_ieee1609dot2_signed_data.content.signedData.tbsData.payload.data.content.unsecuredData);
if (decvalue(v_etsi_ts_102941_data_msg, v_etsi_ts_102941_data) != 0) {
log("f_verify_rca_response_message: Failed to decode EtsiTs102941Data");
return false;
} else {
log("f_verify_rca_response_message: v_etsi_ts_102941_data= ", v_etsi_ts_102941_data);
log("f_verify_pki_response_message: RcaCertificateTrustListMessage matching= ", match(v_etsi_ts_102941_data, mw_etsiTs102941Data_to_be_signed_rca_ctl));
if (match(v_etsi_ts_102941_data, mw_etsiTs102941Data_to_be_signed_rca_ctl) == false) {
log("f_verify_rca_response_message: Failed to decode certificateTrustListRca");
return false;
} else {
p_to_be_signed_rca_ctl := v_etsi_ts_102941_data.content.certificateTrustListRca;
log("f_verify_rca_response_message: p_to_be_signed_rca_ctl= ", p_to_be_signed_rca_ctl);
}
}
return true;
}
function f_verify_full_ctl(
in ToBeSignedRcaCtl p_to_be_signed_rca_ctl
) return boolean {
log(">>> f_verify_full_ctl: p_to_be_signed_rca_ctl= ", p_to_be_signed_rca_ctl);
// 1. Check mandatory fields
log("f_verify_full_ctl matching= ", match(p_to_be_signed_rca_ctl, mw_to_be_signed_rca_full_ctl));
if (match(p_to_be_signed_rca_ctl, mw_to_be_signed_rca_full_ctl) == false) {
return false;
}
log("f_verify_full_ctl: ctlCommands length: ", lengthof(p_to_be_signed_rca_ctl.ctlCommands));
for (var integer v_i := 0; v_i < lengthof(p_to_be_signed_rca_ctl.ctlCommands); v_i := v_i + 1) {
var CtlCommand v_ctl_command := p_to_be_signed_rca_ctl.ctlCommands[v_i];
if (ischosen(v_ctl_command.delete)) {
log("f_verify_full_ctl: ctlCommands shall not contains 'delete' variant");
return false;
} else {
if (f_verify_ctl_entry(v_ctl_command.add) == false) {
log("f_verify_full_ctl: ctlCommands contains inavlid entries");
return false;
}
}
} // End of 'for' statements
return true;
}
function f_verify_ctl_entry(
in CtlEntry p_ctl_entry
) return boolean {
if (ischosen(p_ctl_entry.rca)) {
if (match(p_ctl_entry.rca, mw_root_ca_entry(mw_etsiTs103097Certificate)) == false) {
return false;
}
} else if (ischosen(p_ctl_entry.ea)) {
if (match(p_ctl_entry.ea, mw_ea_entry(mw_etsiTs103097Certificate)) == false) {
return false;
}
} else if (ischosen(p_ctl_entry.aa)) {
if (match(p_ctl_entry.aa, mw_aa_entry(mw_etsiTs103097Certificate)) == false) {
return false;
}
} else if (ischosen(p_ctl_entry.dc)) {
if (match(p_ctl_entry.dc, mw_dc_entry) == false) {
return false;
}
} else if (ischosen(p_ctl_entry.tlm)) {
if (match(p_ctl_entry.tlm, mw_tlm_entry(mw_etsiTs103097Certificate)) == false) {
return false;
}
} else {
return false;
}
return true;
}
} // End of group rca
group awaiting_messages {
function f_await_http_inner_ec_request_response(
......@@ -3568,6 +3722,7 @@ module LibItsPki_Functions {
var octetstring v_msg;
var Ieee1609Dot2Data v_ieee1609dot2_signed_data;
var Certificate v_certificate;
var charstring v_certificate_id;
log(">>> f_verify_pki_request_message: p_private_enc_key= ", p_private_enc_key);
log(">>> f_verify_pki_request_message: p_salt= ", p_salt);
......@@ -3641,7 +3796,7 @@ module LibItsPki_Functions {
}
//return false;
} else {
if (f_getCertificateFromDigest(f_HashedId8FromSha256(p_issuer), v_certificate) == false) {
if (f_getCertificateFromDigest(f_HashedId8FromSha256(p_issuer), v_certificate, v_certificate_id) == false) {
if (p_check_security == true) {
return false;
}
......@@ -3702,6 +3857,7 @@ module LibItsPki_Functions {
var octetstring v_plain_message;
var Ieee1609Dot2Data v_ieee1609dot2_signed_data;
var Certificate v_certificate;
var charstring v_certificate_id;
var bitstring v_etsi_ts_102941_data_msg;
var bitstring v_tbs;
var boolean v_ret;
......@@ -3732,7 +3888,7 @@ module LibItsPki_Functions {
// 3. Check the signature
log("f_verify_pki_response_message: v_ieee1609dot2_signed_data.content.signedData.tbsData= ", v_ieee1609dot2_signed_data.content.signedData.tbsData);
v_tbs := encvalue(v_ieee1609dot2_signed_data.content.signedData.tbsData);
if (f_getCertificateFromDigest(v_ieee1609dot2_signed_data.content.signedData.signer.digest, v_certificate) == false) {
if (f_getCertificateFromDigest(v_ieee1609dot2_signed_data.content.signedData.signer.digest, v_certificate, v_certificate_id) == false) {
if (p_check_security == true) {
return false;
}
......@@ -4029,6 +4185,37 @@ module LibItsPki_Functions {
}
} // End of altstep a_default_pki_http_at
altstep a_default_pki_http_ca() runs on ItsPkiHttp {
[PICS_MULTIPLE_END_POINT] httpCaPort.receive(
mw_http_response(
mw_http_response_ko
)) {
tc_ac.stop;
log("*** " & testcasename() & ": FAIL: Unexpected message received ***");
f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
}
[PICS_MULTIPLE_END_POINT] httpCaPort.receive(mw_http_request) {
tc_ac.stop;
log("*** a_default: ERROR: Unexpected HTTP Request received ***");
f_selfOrClientSyncAndVerdict("error", e_error);
}
[PICS_MULTIPLE_END_POINT] httpCaPort.receive(mw_http_response) {
tc_ac.stop;
log("*** a_default: ERROR: Unexpected HTTP Response received ***");
f_selfOrClientSyncAndVerdict("error", e_error);
}
[PICS_MULTIPLE_END_POINT] httpCaPort.receive {
tc_ac.stop;
log("*** a_default: ERROR: Unexpected HTTP message received ***");
f_selfOrClientSyncAndVerdict("error", e_error);
}
[] a_shutdown() {
log("*** a_default: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
stop;
}
} // End of altstep a_default_pki_http_ca
altstep a_await_ec_http_request_from_iut(
template HttpMessage p_http_message,
out HttpMessage p_response
......
......@@ -15,6 +15,11 @@ module LibItsPki_Pics {
*/
modulepar boolean PICS_IUT_AA_ROLE := true;
/**
* @desc Does the IUT act as CA device?
*/
modulepar boolean PICS_IUT_CA_ROLE := true;
/**
* @desc Does the IUT support enrolment?
*/
......@@ -100,6 +105,11 @@ module LibItsPki_Pics {
*/
modulepar charstring PICS_HEADER_HOST_AT := "www.its.at.org";
/**
* @desc End point for the CA
*/
modulepar charstring PICS_HEADER_HOST_CA := "www.its.ca.org";
/**
* @desc Certificate used by the Test System
*/
......@@ -136,6 +146,11 @@ module LibItsPki_Pics {
*/
modulepar charstring PICS_HTTP_POST_URI_ATV := "/authorize_validate";
/**
* @desc HTTP GET URI for Certificate Trusted List
*/
modulepar charstring PICS_HTTP_GET_URI_CTL := "/dc/getctl";
/**
* @desc Factory private key for verification Nist P256
*/
......
......@@ -29,9 +29,11 @@ module LibItsPki_Templates {
import from EtsiTs102941TypesAuthorization language "ASN.1:1997" all;
import from EtsiTs102941TypesAuthorizationValidation language "ASN.1:1997" all;
import from EtsiTs102941MessagesCa language "ASN.1:1997" all;
import from EtsiTs102941TrustLists language "ASN.1:1997" all;
import from EtsiTs103097Module language "ASN.1:1997" all;
// LibItsSecurity
import from LibItsSecurity_TypesAndValues all;
import from LibItsSecurity_Templates all;
// LibItsPki
......@@ -129,6 +131,15 @@ module LibItsPki_Templates {
) modifies mw_etsiTs103097Data_encrypted := {
} // End of template mw_authorizationValidationResponseMessage
template (present) EtsiTs102941Data mw_etsiTs102941Data_to_be_signed_rca_ctl(
template (present) ToBeSignedRcaCtl p_to_be_signed_rca_ctl := ?
) := {
version := PkiProtocolVersion,
content := {
certificateTrustListRca := p_to_be_signed_rca_ctl
}
} // End of template mw_etsiTs102941Data_to_be_signed_rca_ctl
template (value) AuthorizationRequestMessage m_authorizationRequestMessage(
in template (value) EncryptedData p_encryptedData
) modifies m_etsiTs103097Data_encrypted := {
......@@ -519,4 +530,61 @@ module LibItsPki_Templates {
certIssuePermissions := p_certIssuePermissions
} // End of template mw_certificate_subject_attributes
template (present) ToBeSignedRcaCtl mw_to_be_signed_rca_full_ctl := {
version := 1,
nextUpdate := ?,
isFullCtl := true,
ctlSequence := ?,
ctlCommands := ?
} // End of template mw_to_be_signed_rca_ful_ctl
template (present) ToBeSignedRcaCtl mw_to_be_signed_rca_delta_ctl := {
version := 1,
nextUpdate := ?,
isFullCtl := false,
ctlSequence := ?,
ctlCommands := ?
} // End of template mw_to_be_signed_rca_delta_ctl
template (present) TlmEntry mw_tlm_entry(
template (present) EtsiTs103097Certificate p_selfSignedTLMCertificate := ?,
template (present) Url p_accessPoint := ?
) := {
selfSignedTLMCertificate := p_selfSignedTLMCertificate,
linkTLMCertificate := *,
accessPoint := p_accessPoint
} // End of template mw_tlm_entry
template (present) RootCaEntry mw_root_ca_entry(
template (present) EtsiTs103097Certificate p_selfsignedRootCa := ?
) := {
selfsignedRootCa := p_selfsignedRootCa,
linkRootCaCertificate := *
} // End of template mw_root_ca_entry
template (present) EaEntry mw_ea_entry(
template (present) EtsiTs103097Certificate p_eaCertificate := ?,
template (present) Url p_aaAccessPoint := ?
) := {
eaCertificate := p_eaCertificate,
aaAccessPoint := p_aaAccessPoint,
itsAccessPoint := *
} // End of linkRootCaCertificate mw_ea_entry
template (present) AaEntry mw_aa_entry(
template (present) EtsiTs103097Certificate p_aaCertificate := ?,
template (present) Url p_accessPoint := ?
) := {
aaCertificate := p_aaCertificate,
accessPoint := p_accessPoint
} // End of template mw_aa_entry
template (present) DcEntry mw_dc_entry(
template (present) Url p_url := ?,
template (present) HashedId8s p_cert := ?
) := {
url := p_url,
cert := p_cert
} // End of template mw_dc_entry
} // End of module LibItsPki_Templates
......@@ -63,6 +63,7 @@ module LibItsPki_TestSystem {
port HttpPort httpEcPort; /** Enrolment end point */
port HttpPort httpAtVPort; /** Authorization Validation end point */
port HttpPort httpAtPort; /** Authorization end point */
port HttpPort httpCaPort; /** CA CTL/CRL end point */
} // End of component ItsPkiHttpSystem
/**
......@@ -73,6 +74,7 @@ module LibItsPki_TestSystem {
port HttpPort httpEcPort; /** Enrolment end point */
port HttpPort httpAtVPort; /** Authorization Validation end point */
port HttpPort httpAtPort; /** Authorization end point */
port HttpPort httpCaPort; /** CA CTL/CRL end point */
var Certificate vc_eaCertificate; /** Test Adapter EA certificate */
var octetstring vc_eaPrivateKey; /** Test Adapter EA private key for signature */
var octetstring vc_eaPrivateEncKey; /** Test Adapter EA private key for encryption */
......
......@@ -764,12 +764,13 @@ module LibItsSecurity_Functions {
out EtsiTs103097Certificate p_aaCertificate,
out EtsiTs103097Certificate p_atCertificate
) runs on ItsSecurityBaseComponent return boolean {
var charstring v_certificate_id;
//log(">>> f_prepareCertificates: ", p_certificateName);
// Load certificates if required
if ((lengthof(p_certificateName) > 0) and (valueof(p_certificateName) != cc_taCert_A)) {
var HashedId8 v_digest;
var charstring v_cert;
if (f_readCertificate(valueof(p_certificateName), p_atCertificate) == false){
log("f_prepareCertificates: Failed to read certificate ", p_certificateName);
......@@ -783,7 +784,7 @@ module LibItsSecurity_Functions {
log("f_prepareCertificates: Invalid certificate issuer ", p_atCertificate.issuer);
return false;
}
if (f_getCertificateFromDigest(v_digest, p_aaCertificate) == false) {
if (f_getCertificateFromDigest(v_digest, p_aaCertificate, v_certificate_id) == false) {
log("f_prepareCertificates: Failed to read certificate issuer ", v_digest);
return false;
}
......@@ -1211,7 +1212,7 @@ module LibItsSecurity_Functions {
// Local variables
var EtsiTs103097Certificate v_aaCertificate, v_atCertificate;
var HeaderInfo v_mandatoryHeaders;
var HeaderInfo v_mandatoryHeaders := valueof(m_ieee1609Dot2_headerInfo(0));
var HeaderInfo v_signerInfo;
// Load certificates if required
......@@ -1286,7 +1287,7 @@ module LibItsSecurity_Functions {
// Local variables
var EtsiTs103097Certificate v_aaCertificate, v_atCertificate;
var HeaderInfo v_mandatoryHeaders;
var HeaderInfo v_mandatoryHeaders := valueof(m_ieee1609Dot2_headerInfo(0));
var HeaderInfo v_signerInfo;
// Load certificates if required
......@@ -1363,7 +1364,7 @@ module LibItsSecurity_Functions {
// Local variables
var EtsiTs103097Certificate v_aaCertificate, v_atCertificate;
var HeaderInfo v_mandatoryHeaders;
var HeaderInfo v_mandatoryHeaders := valueof(m_ieee1609Dot2_headerInfo(0));
var HeaderInfo v_signerInfo;
// Load certificates if required
......@@ -1433,7 +1434,7 @@ module LibItsSecurity_Functions {
// Local variables
var EtsiTs103097Certificate v_aaCertificate, v_atCertificate;
var HeaderInfo v_mandatoryHeaders;
var HeaderInfo v_mandatoryHeaders := valueof(m_ieee1609Dot2_headerInfo(0));
var HeaderInfo v_signerInfo;
// Load certificates if required
......@@ -1508,7 +1509,7 @@ module LibItsSecurity_Functions {
// Local variables
var EtsiTs103097Certificate v_aaCertificate, v_atCertificate;
var HeaderInfo v_mandatoryHeaders;
var HeaderInfo v_mandatoryHeaders := valueof(m_ieee1609Dot2_headerInfo(0));
var HeaderInfo v_signerInfo;
// Load certificates if required
......@@ -1570,8 +1571,6 @@ module LibItsSecurity_Functions {
in charstring p_certificateName
) runs on ItsSecurityBaseComponent return HashedId8 {
// Local variables
// FIXME (DF) UNUSED
// var EtsiTs103097Certificate v_atCertificate;
var HashedId8 v_hashedId8 := '0000000000000000'O;
// Sanity check
......@@ -2175,6 +2174,8 @@ module LibItsSecurity_Functions {
function f_loadCertificates(
in charstring p_configId
) runs on ItsSecurityBaseComponent return boolean {
var charstring v_certificate_id;
// Setup certificates memory cache
if (fx_loadCertificates(PX_CERTIFICATE_POOL_PATH, p_configId) == true) {
// Setup security component variables
......@@ -2190,7 +2191,7 @@ module LibItsSecurity_Functions {
return false;
}
log("Selected issuer: ", v_issuer);
if (f_getCertificateFromDigest(v_issuer, vc_aaCertificate)) {
if (f_getCertificateFromDigest(v_issuer, vc_aaCertificate, v_certificate_id)) {
if (f_readSigningKey(cc_taCert_A, vc_signingPrivateKey) == true) {
f_readEncryptingKey(cc_taCert_A, vc_encryptPrivateKey);
return true;
......@@ -2300,15 +2301,15 @@ module LibItsSecurity_Functions {
function f_getCertificateFromDigest(
in HashedId8 p_digest,
out EtsiTs103097Certificate p_certificate
out EtsiTs103097Certificate p_certificate,
out charstring p_certificate_id
) return boolean {
var charstring v_certificate_id;
if (not(fx_readCertificateFromDigest(p_digest, v_certificate_id))) {
if (not(fx_readCertificateFromDigest(p_digest, p_certificate_id))) {
log("f_getCertificateFromDigest: Failed to retrieve digest for ", p_digest);
return false;
}
if (not(f_readCertificate(v_certificate_id, p_certificate))) {
log("f_getCertificateFromDigest: Failed to retrieve digest for ", v_certificate_id);
if (not(f_readCertificate(p_certificate_id, p_certificate))) {
log("f_getCertificateFromDigest: Failed to retrieve digest for ", p_certificate_id);
return false;
}
return true;
......
......@@ -51,8 +51,6 @@ module LibItsSecurity_Templates {
* @desc Its AID for Other
* @see Draft ETSI TS 103 097 V1.3.1 Clause 7.3 Security profile for DENMs
*/
//FIXME RGY definition type is changed to modulepar, as Titan doesn't support dynamic constants
// const IntX c_its_aid_Other := PX_OTHER_ITS_AID;
template Psid c_its_aid_Other := PX_OTHER_ITS_AID;
/**
......@@ -1015,12 +1013,16 @@ module LibItsSecurity_Templates {
template (omit) HeaderInfo m_headerInfo_inner_pki_request(
in template (value) Psid p_psid := c_its_aid_SCR,
in template (value) Time64 p_generationTime
) modifies m_headerInfo_gn := {};
) modifies m_ieee1609Dot2_headerInfo := {
generationTime := p_generationTime
};
template (omit) HeaderInfo m_headerInfo_inner_pki_response(
in template (value) Psid p_psid := c_its_aid_SCR,
in template (value) Time64 p_generationTime
) modifies m_headerInfo_gn := {};
) modifies m_ieee1609Dot2_headerInfo := {
generationTime := p_generationTime
};
template (present) HeaderInfo mw_headerInfo_inner_pki_request(
template (present) Psid p_psid := c_its_aid_SCR,
......@@ -1711,7 +1713,7 @@ module LibItsSecurity_Templates {
ssp := p_ssp
} // End of template m_appPermissions
template (present) PsidSsp mw_appPermissions(
template PsidSsp mw_appPermissions(
template (present) Psid p_psid := ?,
template ServiceSpecificPermissions p_ssp := *
) := {
......@@ -2074,7 +2076,7 @@ module LibItsSecurity_Templates {
group utPrimitives {
template UtGnInitialize m_secGnInitialize(
template (value) UtGnInitialize m_secGnInitialize(
in Oct8 p_hashedId8
) := {
hashedId8 := p_hashedId8
......
......@@ -23,6 +23,11 @@ module LibItsSecurity_TypesAndValues {
import from IEEE1609dot2 language "ASN.1:1997" all;
import from EtsiTs103097Module language "ASN.1:1997" all;
/**
* @desc Sequence of HashedId8
*/
type record of HashedId8 HashedId8s;
// Test Adapter certificates & private keys - Valid behavior
const charstring cc_taCert_A := PX_CERT_FOR_TS; /** Default certificate, without region validity restriction, to be used when secured messages are sent from TA to IUT */
const charstring cc_taCert_A_AA := "CERT_TS_A_AA";
......@@ -259,7 +264,6 @@ module LibItsSecurity_TypesAndValues {
e_brainpool_384
}
group taConfiguration {
/**
......