Skip to content
Ieee1609Dot2.asn 64.4 KiB
Newer Older
--***************************************************************************--
ASN.1 Documenter's avatar
ASN.1 Documenter committed
--                              IEEE Std 1609.2                              --
--***************************************************************************--

ASN.1 Documenter's avatar
ASN.1 Documenter committed
/**
 * @note Section references in this file are to clauses in IEEE Std
 * 1609.2 unless indicated otherwise. Full forms of acronyms and
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * abbreviations used in this file are specified in 3.2.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
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
ASN.1 Documenter's avatar
ASN.1 Documenter committed
IMPORTS
  CERT-EXT-TYPE,
  CrlSeries,
  EccP256CurvePoint,
ASN.1 Documenter's avatar
ASN.1 Documenter committed
  EcencP256EncryptedKey,
  EciesP256EncryptedKey,
  EncryptionKey,
ASN.1 Documenter's avatar
ASN.1 Documenter committed
  EXT-TYPE,
  Extension,
  ExtId,
  GeographicRegion,
  GroupLinkageValue,
  HashAlgorithm,
  HashedId3,
  HashedId8,
ASN.1 Documenter's avatar
ASN.1 Documenter committed
  HashedId32,
  HashedId48,
  Hostname,
  IValue,
  LinkageValue,
  Opaque,
  Psid,
  PsidSsp,
  PsidSspRange,
  PublicEncryptionKey,
  PublicVerificationKey,
  SequenceOfHashedId3,
  SequenceOfPsidSsp,
  SequenceOfPsidSspRange,
  ServiceSpecificPermissions,
  Signature,
  SubjectAssurance,
  SymmetricEncryptionKey,
  ThreeDLocation,
  Time64,
  Uint3,
  Uint8,
ASN.1 Documenter's avatar
ASN.1 Documenter committed
  Uint16,
ASN.1 Documenter's avatar
ASN.1 Documenter committed
FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
  standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
ASN.1 Documenter's avatar
ASN.1 Documenter committed
  base(1) base-types(2) major-version-2(2) minor-version-4(4)}
ASN.1 Documenter's avatar
ASN.1 Documenter committed
  EtsiOriginatingHeaderInfoExtension
FROM EtsiTs103097ExtensionModule {itu-t(0) identified-organization(4) etsi(0) 
  itsDomain(5) wg5(5) secHeaders(103097) extension(2) major-version-1(1)
  minor-version-1(1)}
;

--***************************************************************************--
--                               Secured Data                                --
--***************************************************************************--

ASN.1 Documenter's avatar
ASN.1 Documenter committed
/**
 * @brief This data type is used to contain the other data types in this
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * clause. The fields in the Ieee1609Dot2Data have the following meanings:
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @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.
 *
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @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.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
Ieee1609Dot2Data ::= SEQUENCE {
  protocolVersion Uint8(3),
  content         Ieee1609Dot2Content
}

/**
 * @brief In this structure:
 *
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param unsecuredData: indicates that the content is an OCTET STRING to be
 * consumed outside the SDS.
 *
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param signedData: indicates that the content has been signed according to
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param encryptedData: indicates that the content has been encrypted
 * according to this standard.
 *
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @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.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
Ieee1609Dot2Content ::=  CHOICE { 
  unsecuredData                Opaque, 
  signedData                   SignedData,
  encryptedData                EncryptedData,
  signedCertificateRequest     Opaque,
  ...,
  signedX509CertificateRequest Opaque
}
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param hashId: indicates the hash algorithm to be used to generate the hash
 * of the message for signing and verification.
 *
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param tbsData: contains the data that is hashed as input to the signature.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param signer: determines the keying material and hash algorithm used to
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param signature: contains the digital signature itself, calculated as
 * specified in 5.3.1.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 *   - 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
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * 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.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
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.
 *
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @param payload: contains data that is provided by the entity that invokes
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @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.
ASN.1 Documenter's avatar
ASN.1 Documenter committed
ToBeSignedData ::= SEQUENCE { 
  payload    SignedDataPayload,
  headerInfo HeaderInfo
}
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * @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...