Newer
Older
--***************************************************************************--
--***************************************************************************--
/**
* @note Section references in this file are to clauses in IEEE Std
* 1609.2 unless indicated otherwise. Full forms of acronyms and
* abbreviations used in this file are specified in 3.2.
Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) base(1) schema(1) major-version-2(2) minor-version-6(6)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
CrlSeries,
EccP256CurvePoint,
EciesP256EncryptedKey,
EncryptionKey,
GeographicRegion,
GroupLinkageValue,
HashAlgorithm,
HashedId3,
HashedId8,
Hostname,
IValue,
LinkageValue,
Opaque,
Psid,
PsidSsp,
PsidSspRange,
PublicEncryptionKey,
PublicVerificationKey,
SequenceOfHashedId3,
SequenceOfPsidSsp,
SequenceOfPsidSspRange,
ServiceSpecificPermissions,
Signature,
SubjectAssurance,
SymmetricEncryptionKey,
ThreeDLocation,
Time64,
Uint3,
Uint8,
Uint32,
ValidityPeriod
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
base(1) base-types(2) major-version-2(2) minor-version-4(4)}
EtsiOriginatingHeaderInfoExtension
FROM EtsiTs103097ExtensionModule {itu-t(0) identified-organization(4) etsi(0)
itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1)
;
--***************************************************************************--
-- Secured Data --
--***************************************************************************--
* @brief This data type is used to contain the other data types in this
* clause. The fields in the Ieee1609Dot2Data have the following meanings:
* @param protocolVersion: contains the current version of the protocol. The
* version specified in this standard is version 3, represented by the
* integer 3. There are no major or minor version numbers.
*
* @param content: contains the content in the form of an Ieee1609Dot2Content.
*
* @note Canonicalization: This data structure is subject to canonicalization
* for the relevant operations specified in 6.1.2. The canonicalization
* applies to the Ieee1609Dot2Content.
Ieee1609Dot2Data ::= SEQUENCE {
protocolVersion Uint8(3),
content Ieee1609Dot2Content
}
/**
* @brief In this structure:
*
* @param unsecuredData: indicates that the content is an OCTET STRING to be
* consumed outside the SDS.
*
* @param signedData: indicates that the content has been signed according to
* this standard.
*
* @param encryptedData: indicates that the content has been encrypted
* according to this standard.
*
* @param signedCertificateRequest: indicates that the content is a
* certificate request signed by an IEEE 1609.2 certificate or self-signed.
*
* @param signedX509CertificateRequest: indicates that the content is a
* certificate request signed by an ITU-T X.509 certificate.
*
* @note Canonicalization: This data structure is subject to canonicalization
* for the relevant operations specified in 6.1.2 if it is of type signedData.
* The canonicalization applies to the SignedData.
Ieee1609Dot2Content ::= CHOICE {
unsecuredData Opaque,
signedData SignedData,
encryptedData EncryptedData,
signedCertificateRequest Opaque,
...,
signedX509CertificateRequest Opaque
}
/**
* @brief In this structure:
*
* @param hashId: indicates the hash algorithm to be used to generate the hash
* of the message for signing and verification.
*
* @param tbsData: contains the data that is hashed as input to the signature.
* @param signer: determines the keying material and hash algorithm used to
* sign the data.
*
* @param signature: contains the digital signature itself, calculated as
* specified in 5.3.1.
* - If signer indicates the choice self, then the signature calculation
* is parameterized as follows:
* - Data input is equal to the COER encoding of the tbsData field
* canonicalized according to the encoding considerations given in 6.3.6.
* - Verification type is equal to self.
* - Signer identifier input is equal to the empty string.
* - If signer indicates certificate or digest, then the signature
* calculation is parameterized as follows:
* - Data input is equal to the COER encoding of the tbsData field
* canonicalized according to the encoding considerations given in 6.3.6.
* - Verification type is equal to certificate.
* - Signer identifier input equal to the COER-encoding of the
* Certificate that is to be used to verify the SPDU, canonicalized according
* to the encoding considerations given in 6.4.3.
*
* @note Canonicalization: This data structure is subject to canonicalization
* for the relevant operations specified in 6.1.2. The canonicalization
* applies to the ToBeSignedData and the Signature.
SignedData ::= SEQUENCE {
hashId HashAlgorithm,
tbsData ToBeSignedData,
signer SignerIdentifier,
signature Signature
}
/**
* @brief This structure contains the data to be hashed when generating or
* verifying a signature. See 6.3.4 for the specification of the input to the
* hash.
*
* @param payload: contains data that is provided by the entity that invokes
* @param headerInfo: contains additional data that is inserted by the SDS.
* This structure is used as follows to determine the "data input" to the
* hash operation for signing or verification as specified in 5.3.1.2.2 or
* 5.3.1.3.
* - If payload does not contain the field omitted, the data input to the
* hash operation is the COER encoding of the ToBeSignedData.
* - If payload field in this ToBeSignedData instance contains the field
* omitted, the data input to the hash operation is the COER encoding of the
* ToBeSignedData, concatenated with the hash of the omitted payload. The hash
* of the omitted payload is calculated with the same hash algorithm that is
* used to calculate the hash of the data input for signing or verification.
* The data input to the hash operation is simply the COER enocding of the
* ToBeSignedData, concatenated with the hash of the omitted payload: there is
* no additional wrapping or length indication. As noted in 5.2.4.3.4, the
* means by which the signer and verifier establish the contents of the
* omitted payload are out of scope for this standard.
*
* @note Canonicalization: This data structure is subject to canonicalization
* for the relevant operations specified in 6.1.2. The canonicalization
* applies to the SignedDataPayload if it is of type data, and to the
* HeaderInfo.
ToBeSignedData ::= SEQUENCE {
payload SignedDataPayload,
headerInfo HeaderInfo
}
* @brief This structure contains the data payload of a ToBeSignedData. This
* structure contains at least one of the optional elements, and may contain
* more than one. See 5.2.4.3.4 for more details.
Loading full blame...