/** * @author ETSI / STF481 * @version $URL$ * $Id$ * @desc Module containing types and values for Security Protocol * */ module LibItsSecurity_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues { type UInt8 }; // LibIts import from CAM_PDU_Descriptions language "ASN.1:1997" { type CAM }; import from DENM_PDU_Descriptions language "ASN.1:1997" { type DENM }; /** * @desc Generic secured message description * @member protocol_version The applied protocol version * @member security_profile The security profile for this secured message * @member header_fields Multiple information fields of interest to the security layer * @member payload_fields The message's payload * @member trailer_fields Security information after the payload * * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.1 SecuredMessage */ type record SecuredMessage { UInt8 protocol_version, UInt8 security_profile, HeaderFields header_fields, Payload payload_fields, TrailerFields trailer_fields } type set of HeaderField HeaderFields; type record HeaderField { } /** * @desc Payload structure * @member type_ Payload type * @member payload Payload data * * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.2 Payload */ type record Payload { PayloadType type_, PayloadContainer payload } /** * @desc Payload data container * @member camPayload CAM message * @member denmPayload DENM message * @member rawPayload Other message * * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.2 Payload */ type union PayloadContainer { CAM camPayload, DENM denmPayload, octetstring rawPayload } /** * @desc Supported types of payloads * * @see Draft ETSI TS 103 097 V1.1.6 Clause 5.3 Payload */ type enumerated PayloadType { e_unsecured (0), e_signed (1), e_encrypted (2), e_signed_external (3), e_signed_and_encrypted (4), e_unknown (255) } with { variant "unsigned 8 bit" } type set of TrailerField TrailerFields; type record TrailerField { } } with { encode "LibItsSecurity" } // End of module LibItsSecurity_TypesAndValues