IEEE Std 1609.2.1™-2020 ASN.1 Documentation

Summary Tables

This section contains a set of tables presenting summary information about the ASN.1 schema.

Schema Files Table
Schema Files Table
Schema Files
File nameModules
Module nameModule OIDDescription
aca-ee.asnIeee1609Dot2Dot1AcaEeInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ee (1) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
aca-la.asnIeee1609Dot2Dot1AcaLaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-la (2) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
aca-ma.asnIeee1609Dot2Dot1AcaMaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ma (3) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
aca-ra.asnIeee1609Dot2Dot1AcaRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ra (4) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
acpc.asnIeee1609Dot2Dot1Acpc{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) acpc (18) major-version-1 (1)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
cam-ra.asnIeee1609Dot2Dot1CamRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) cam-ra (19) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
cert-management.asnIeee1609Dot2Dot1CertManagement{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) cert-management (7) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
eca-ee.asnIeee1609Dot2Dot1EcaEeInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) eca-ee (9) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
ee-ma.asnIeee1609Dot2Dot1EeMaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ee-ma (10) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
ee-ra.asnIeee1609Dot2Dot1EeRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ee-ra (11) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
la-ma.asnIeee1609Dot2Dot1LaMaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) la-ma (12) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
la-ra.asnIeee1609Dot2Dot1LaRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) la-ra (13) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
ma-ra.asnIeee1609Dot2Dot1MaRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ma-ra (14) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
protocol.asnIeee1609Dot2Dot1Protocol{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) protocol (17) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.
std_ieee_1609dot2-base-types.asnIEEE1609dot2BaseTypes{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)}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. The minor version of this module is 1.
std_ieee_1609dot2-schema.asnIEEE1609dot2{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)}
std_ieee_crl-base-types.asnIEEE1609dot2CrlBaseTypes{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) crl (3) base-types (2) major-version-2 (2)}
std_ieee_crl-protocol.asnIEEE1609dot2Crl{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) crl (3) protocol (1) major-version-2 (2)}
Modules Table
Modules Table
Modules
Module nameModule OIDDescriptionNumber
of
assignments
Incoming referencesOutgoing references
Module nameNumberModule nameNumber
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)}35IEEE1609dot2Crl1IEEE1609dot2BaseTypes41
Ieee1609Dot2Dot1AcaEeInterface1
Ieee1609Dot2Dot1AcaRaInterface2
Ieee1609Dot2Dot1CertManagement2
Ieee1609Dot2Dot1EcaEeInterface3
Ieee1609Dot2Dot1EeRaInterface1
Ieee1609Dot2Dot1Protocol47
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)}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. The minor version of this module is 1.71IEEE1609dot241
IEEE1609dot2Crl1
IEEE1609dot2CrlBaseTypes22
Ieee1609Dot2Dot1AcaEeInterface2
Ieee1609Dot2Dot1AcaRaInterface8
Ieee1609Dot2Dot1Acpc10
Ieee1609Dot2Dot1CamRaInterface5
Ieee1609Dot2Dot1CertManagement9
Ieee1609Dot2Dot1EcaEeInterface4
Ieee1609Dot2Dot1EeRaInterface15
Ieee1609Dot2Dot1Protocol37
IEEE1609dot2Crl{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) crl (3) protocol (1) major-version-2 (2)}2Ieee1609Dot2Dot1CertManagement1IEEE1609dot21
IEEE1609dot2BaseTypes1
IEEE1609dot2CrlBaseTypes1
IEEE1609dot2CrlBaseTypes{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) crl (3) base-types (2) major-version-2 (2)}16IEEE1609dot2Crl1IEEE1609dot2BaseTypes22
Ieee1609Dot2Dot1AcaEeInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ee (1) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.2Ieee1609Dot2Dot1Protocol4IEEE1609dot21
IEEE1609dot2BaseTypes2
Ieee1609Dot2Dot1AcaLaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-la (2) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.1Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1AcaMaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ma (3) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.1Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1AcaRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ra (4) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.8Ieee1609Dot2Dot1Protocol4IEEE1609dot22
IEEE1609dot2BaseTypes8
Ieee1609Dot2Dot1Protocol4
Ieee1609Dot2Dot1Acpc{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) acpc (18) major-version-1 (1)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.10Ieee1609Dot2Dot1EeRaInterface1IEEE1609dot2BaseTypes10
Ieee1609Dot2Dot1Protocol1Ieee1609Dot2Dot1Protocol3
Ieee1609Dot2Dot1CamRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) cam-ra (19) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.4IEEE1609dot2BaseTypes5
Ieee1609Dot2Dot1CertManagement{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) cert-management (7) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.23Ieee1609Dot2Dot1Protocol6IEEE1609dot22
IEEE1609dot2BaseTypes9
IEEE1609dot2Crl1
Ieee1609Dot2Dot1Protocol3
Ieee1609Dot2Dot1EcaEeInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) eca-ee (9) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.3Ieee1609Dot2Dot1Protocol4IEEE1609dot23
IEEE1609dot2BaseTypes4
Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1EeMaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ee-ma (10) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.1Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1EeRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ee-ra (11) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.8Ieee1609Dot2Dot1Protocol12IEEE1609dot21
IEEE1609dot2BaseTypes15
Ieee1609Dot2Dot1Acpc1
Ieee1609Dot2Dot1Protocol2
Ieee1609Dot2Dot1LaMaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) la-ma (12) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.1Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1LaRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) la-ra (13) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.1Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1MaRaInterface{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ma-ra (14) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.1Ieee1609Dot2Dot1Protocol1
Ieee1609Dot2Dot1Protocol{iso (1) identified-organization (3) ieee (111) standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2) extension-standards (255) dot1 (1) interfaces (1) protocol (17) major-version-2 (2)}NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.130Ieee1609Dot2Dot1AcaRaInterface4IEEE1609dot247
Ieee1609Dot2Dot1Acpc3IEEE1609dot2BaseTypes37
Ieee1609Dot2Dot1CertManagement3Ieee1609Dot2Dot1AcaEeInterface4
Ieee1609Dot2Dot1EcaEeInterface1Ieee1609Dot2Dot1AcaLaInterface1
Ieee1609Dot2Dot1EeRaInterface2Ieee1609Dot2Dot1AcaMaInterface1
Ieee1609Dot2Dot1AcaRaInterface4
Ieee1609Dot2Dot1Acpc1
Ieee1609Dot2Dot1CertManagement6
Ieee1609Dot2Dot1EcaEeInterface4
Ieee1609Dot2Dot1EeMaInterface1
Ieee1609Dot2Dot1EeRaInterface12
Ieee1609Dot2Dot1LaMaInterface1
Ieee1609Dot2Dot1LaRaInterface1
Ieee1609Dot2Dot1MaRaInterface1
PDU Types Table
PDU Types Table
PDU Types
Module nameType nameDescription
Ieee1609Dot2Dot1ProtocolAcaRaCertResponseSpdu

AcaRaCertResponseSpdu

This structure is the SPDU used to send a signed AcaRaCertResponse. For the signature to be valid the signing certificate shall contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating AcaSsp.
Ieee1609Dot2Dot1AcpcAcpcPdu

AcpcPdu

This structure contains an APrV structure produced by the CAM. An overview of this structure is as follows:
  • tree
    contains an AprvBinaryTree.
  • aprv
    contains a single IndividualAprv.
Ieee1609Dot2Dot1AcpcAcpcPsid

AcpcPsid

This is the PSID used to indicate activities in ACPC as specified in this document.
Ieee1609Dot2Dot1ProtocolAcpcSsp

AcpcSsp

This is a container for ACPC-related SSPs, specifying one SSP for each role. The only SSP defined in this document is the CamSsp, used in the CAM certificate that signs a SignedAprvBinaryTree or a SignedIndividualAprv. The SSP shall be C-OER encoded for inclusion in the CAM certificate. New versions of the CAM SSP should be handled by extending this structure rather than by use of a version number in the CamSsp structure.

The AcpcSsp is associated with the AcpcPsid in the CAM certificate's appPermissions field.
Ieee1609Dot2Dot1ProtocolAnyMbrPsid

AnyMbrPsid

This structure is a list of the PSIDs entitled to authorize misbehavior report upload. It currently only lists one PSID. It is intended to be extensible as additional misbehavior reporting PSIDs are defined and to take the form AnyMbrPsid = Psid (BaseMbrPsid | MbrPsid2 | MbrPsid3 | etc.).
Ieee1609Dot2Dot1AcpcAprvHashCalculationInput

AprvHashCalculationInput

This structure, C-OER encoded, is the input to the hash function to calculate child node values from a parent node. By including the ID fields it "firewalls" the hash function so that an attacker who inverts the hash has only found the hash preimage for a specific node, in a specific tree, for a specific time period. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • acpcTreeId
    contains an identifier for this ACPC tree series.
  • acpcPeriod
    contains an identifier for the time period for this tree. If the certificates for which this set of APrVs are intended have an IValue field, acpcPeriod in this structure shall be equal to the IValue field in the certificates. How the RA and the CAM synchronize on this value is outside the scope of this document.
  • childNodeId
    contains a bit string of length l encoding the node location within the l'th level.
  • parentNodeValue
    contains the value of the parent node.
Ieee1609Dot2Dot1CamRaInterfaceCamRaInterfacePdu

CamRaInterfacePDU

This is the parent structure for all structures exchanged between the CAM and the RA during ACPC enrollment. An overview of this structure is as follows:
Ieee1609Dot2Dot1ProtocolCertificateChainSpdu

CertificateChainSpdu

This structure is the SPDU used to send an unsecured CertificateChain. It is used to create certificate chain files as specified in 8.4.
Ieee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpdu

CertificateManagementInformationStatusSpdu

This structure is the SPDU used to send a signed CertManagementInfoStatus. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9 or the DC certificate profile given in 7.7.3.10.
Ieee1609Dot2Dot1ProtocolCompositeCrlSpdu

CompositeCrlSpdu

This structure is the SPDU used to send an unsecured CompositeCrl. It is used to create composite CRL files as specified in 8.5.
IEEE1609dot2Countersignature
IEEE1609dot2CrlBaseTypesCrlContents
Ieee1609Dot2Dot1ProtocolEcaEeCertResponseSpdu

EcaEeCertResponseSpdu

This structure is the SPDU used to send a signed EcaEeCertResponse. For the signature to be valid, the signing certificate shall contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating EcaSsp.
Ieee1609Dot2Dot1ProtocolEeRaCertRequestSpdu

EeRaCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted EeRaCertRequest. It is a choice of the IEEE 1609.2 authenticated certificate request, which may be any kind of EE-RA certificate request, and the ITU-T X.509 certificate request, which is required to be an authorization certificate request.
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestPlainSpdu

EeRaDownloadRequestPlainSpdu

This structure is the SPDU used to send an unsecured EeRaDownloadRequest.
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestSpdu

EeRaDownloadRequestSpdu

This structure is the SPDU used to send an signed then encrypted EeRaDownloadRequest. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.
Ieee1609Dot2Dot1ProtocolEeRaEncryptedMisbehaviorReportSpdu

EeRaEncryptedMisbehaviorReportSpdu

This structure is used for misbehavior report upload when EE authentication is done at the Web API level (see 6.3.5.6). The contents of the encrypted data are misbehavior report specific and outside the scope of this document. The contents are encrypted for the MA certificate.
Ieee1609Dot2Dot1ProtocolEeRaEncryptedSignedMisbehaviorReportSpdu

EeRaEncryptedSignedMisbehaviorReportSpdu

This structure is used for misbehavior report upload when EE authentication is done at the SCMS REST API v2 level (see 6.3.5.6). The contents of the encrypted data are misbehavior report specific and outside the scope of this document. The contents are encrypted for the MA certificate.
Ieee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpdu

EeRaSuccessorEnrollmentCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted EeEcaCertRequestSpdu. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl

FullIeeeTbsCtl

This structure specifies a CTL that contains information about the complete set of certificates trusted by the electors that sign the CTL. An overview of this structure is as follows:

NOTE 1: If in future CTL types are defined that contain the same information as, or a subset of the information in, the fullIeeeCtl, those types are anticipated to contain the same sequence number as the corresponding fullIeeeCtl.

NOTE 2: Any root CA or elector certificate that is not on the CTL is not trusted. The electorRemove and rootCaRemove are intended to be used only if the SCMS manager wants to explicitly indicate that a previously trusted entity (elector or root CA) is now not trusted even though that entity's certificate is still within its validity period. In practice, it is anticipated that the remove fields (electorRemove and rootCaRemove) will almost always be sequences of length 0.
  • type
    contains the type of the CTL. It is identical to the type field that appears in the enclosing MultiSignedCtl. The field is included here as well to provide the simplest mechanism to help ensure that the type is included in the calculated CTL hash.
  • electorGroupId
    contains the group of electors that have signed the CTL. It plays a role similar to CrlSeries in a CRL. This field is intended to be globally unique in the universe of all systems that use the MultiSignedCtl. See the specification of ElectorGroupId for discussion of a convention that can be followed to enable uniqueness.
  • sequenceNumber
    contains the sequence number of the CTL. This is incremented by 1 every time a new FullIeeeTbsCtl is issued.
  • effectiveDate
    contains the time when the CTL is to take effect. This is to be greater than or equal to the effectiveDate field in the CTL with the same electorGroupId and the previous sequence number.
  • electorApprove
    contains the list of hashes of the elector certificates that are approved as of the effective date. The hash is calculated with the same hash algorithm that is used to hash the elector certificate for signing.
  • electorRemove
    contains the list of hashes of the elector certificates that are valid (that is, not expired) on the effective date and are not approved, as of the effective date, to sign a CTL. The hash is calculated with the same hash algorithm that is used to hash the elector certificate for signing. This field is to be considered informational as a certificate that is not included in electorApprove is not valid even if it does not appear in electorRemove.
  • rootCaApprove
    contains the list of root CA certificates that are approved as of the effective date. The hash is calculated with the same hash algorithm that is used to hash the root certificate for signing. If the root certificate is signed with a hash function with a 48 octet output, this is truncated to the low-order 32 bytes for inclusion in the CTL.
  • rootCaRemove
    contains the list of root CA certificates that are valid (that is, not expired) on the effective date and are not approved, as of the effective date, to issue certificates or carry out other activities. If the root certificate is signed with a hash function with a 48 octet output, this is truncated to the low-order 32 bytes for inclusion in the CTL. This field is to be considered informational as a certificate that is not included in rootCaApprove is not valid even if it does not appear in rootCaRemove.
  • quorum
    contains the quorum, that is, the number of the electors required to sign the next CTL with the same ElectorGroupId value for that CTL to be trusted. If this field is absent, the quorum for the next CTL is equal to the quorum for the current CTL.
IEEE1609dot2BaseTypesKnownLatitude

KnownLatitude

The known latitudes are from -900,000,000 to +900,000,000 in 0.1 microdegree intervals.
IEEE1609dot2BaseTypesKnownLongitude

KnownLongitude

The known longitudes are from -1,799,999,999 to +1,800,000,000 in 0.1 microdegree intervals.
Ieee1609Dot2Dot1AcaRaInterfacePreLinkageValue

PreLinkageValue

This structure contains an individual prelinkage value. It is an octet string of length 9 octets.
Ieee1609Dot2Dot1ProtocolPublicVerificationKey

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3 of IEEE Std 1609.2a-2017.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6 of IEEE Std 1609.2-2016. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpdu

RaAcaCertRequestSpdu

This structure is the SPDU used to send a signed RaAcaCertRequest. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9, contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating RaSsp. The toBeSigned.certRequestPermissions field of the RA certificate shall permit the requested permissions in the raAcaCertRequest.tbsCert.appPermissions field.
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpdu

RaEeCertAckSpdu

This structure is the SPDU used to send a signed RaEeCertAck to acknowledge the receipt of an EeRaCertRequestSpdu. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpdu

RaEeCertAndAcpcInfoSpdu

This structure is the SPDU used to create a signed .info file to be included in a certificate batch zip file as specified in 8.2. This SPDU is used if the RaEeCertInfo contains an acpcTreeId field. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.
Ieee1609Dot2Dot1ProtocolRaEeCertInfoSpdu

RaEeCertInfoSpdu

This structure is the SPDU used to create an unsigned .info file to be included in a certificate batch zip file as specified in 8.2. This SPDU is used if the RaEeCertInfo does not contain an acpcTreeId field.
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpdu

RaEeEnrollmentCertAckSpdu

This structure is the SPDU used to send a signed RaEeCertInfo. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.
Ieee1609Dot2Dot1ProtocolScmsSsp

ScmsSsp

This parent structure defines the SSP for PSID 0x23 and encompasses all SSP structures defined in this document. An overview of this structure is as follows:

NOTE: The LOP is in the SSP for backward compatibility reasons, and in practice, in this design the LOP does not have a certificate.
  • elector
    contains the SSP defined for an elector.
  • root
    contains the SSP defined for a root CA.
  • pg
    contains the SSP defined for a policy generator.
  • ica
    contains the SSP defined for an intermediate CA.
  • eca
    contains the SSP defined for an enrollment CA.
  • aca
    contains the SSP defined for an authorization CA.
  • crl
    contains the SSP defined for a CRL signer.
  • dcm
    contains the SSP defined for a device configuration manager.
  • la
    contains the SSP defined for a linkage authority.
  • lop
    contains the SSP defined for a location obscurer proxy.
  • ma
    contains the SSP defined for a misbehavior authority.
  • ra
    contains the SSP defined for a registration authority.
  • ee
    contains the SSP defined for an end entity.
  • dc
    contains the SSP defined for a distribution center.
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid

SecurityMgmtPsid

This PSID, 0x23, identifies security management activities as defined in this document.
Ieee1609Dot2Dot1AcpcSignedAprvBinaryTree

SignedAprvBinaryTree

This is used to wrap an AprvBinaryTree in an Ieee1609Dot2Data for transmission if the policy is that the AprvBinaryTree be signed. See 9.5.6 for discussion.
Ieee1609Dot2Dot1ProtocolSignedCertificateRequest

SignedCertificateRequest

This structure defines the format of a signed certificate request. An overview of this structure is as follows:

The signature is generated on the hash of this structure, obtained per the rules specified for hashing data objects in 5.3.1 of IEEE Std 1609.2a-2017, with the parameter Data Input equal to the C-OER encoding of tbsRequest, and the parameter Signer Identifier Input equal to the signer's enrollment certificate.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tbsRequest
    contains the certificate request information that is signed by the recipient.
  • signer
    denotes the signing entity's identifier.
  • signature
    contains the request sender's signature.
Ieee1609Dot2Dot1AcpcSignedIndividualAprv

SignedIndividualAprv

This is used to wrap an IndividualAprv in an Ieee1609Dot2Data for transmission if the policy is that the IndividualAprv be signed. See 9.5.6 for discussion.
Ieee1609Dot2Dot1ProtocolSignedX509CertificateRequest

SignedX509CertificateRequest

This structure contains a certificate request signed with an ITU-T X.509 certificate. The only type of certificate request signed with an ITU-T X.509 certificate supported in this document is an authorization certificate request. An overview of this structure is as follows:

The signature is generated on the hash of this structure, obtained per the rules specified for hashing data objects in 5.3.1 of IEEE Std 1609.2a-2017, with the parameter Data Input equal to the C-OER encoding of tbsRequest, and the parameter Signer Identifier Input equal to the signer's certificate, that is, the ITU-T X.509 certificate contained in the OCTET STRING indicated by the first X509Certificate in signer.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tbsRequest
    contains the certificate request information that is signed by the recipient.
  • signer
    denotes the signing entity's identifier.
  • signature
    contains the request sender's signature.
Ieee1609Dot2Dot1ProtocolSignerSelf

SignerSelf

This structure is used to indicate a SignerIdentifier of type self.
Ieee1609Dot2Dot1ProtocolSignerSingleX509Cert

SignerSingleX509Cert

This structure is used to indicate an X509SignerIdentifier with a certificate chain of size 1.
IEEE1609dot2TestCertificate
IEEE1609dot2BaseTypesUint3

Uint3

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 7, i.e., (hex)07.
IEEE1609dot2BaseTypesUnknownLatitude

UnknownLatitude

The value 900,000,001 indicates that the latitude was not available to the sender.
IEEE1609dot2BaseTypesUnknownLongitude

UnknownLongitude

The value 1,800,000,001 indicates that the longitude was not available to the sender.
Ieee1609Dot2Dot1AcpcUnsecuredAprvBinaryTree

UnsecuredAprvBinaryTree

This is used to wrap an AprvBinaryTree in an Ieee1609Dot2Data for transmission if the policy is that the AprvBinaryTree need not be signed. See 9.5.6 for discussion.
Type Assignments Table
Type Assignments Table
Type Assignments
Module nameType nameDescriptionNumber of
incoming
references
Number of
outgoing
references
Ieee1609Dot2Dot1AcaEeInterfaceAcaEeCertResponse

AcaEeCertResponse

This structure contains a certificate and associated data as generated by the ACA for the EE that will be the holder of that certificate. An overview of this structure is as follows:

NOTE: In the case where the butterfly expansion function is used to set certEncKey in RaAcaCertRequest, the value j is not communicated to the ACA. However, the EE that receives the certificate response can only decrypt the response if it knows j. The RA is therefore anticipated to store j so that it can be associated with the appropriate certificate response. The RA encodes j in the filename.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of AcaEeCertResponse.
  • certificate
    contains an authorization certificate generated by the ACA. It is of the type indicated by the type field in the corresponding request (if the requester requested an incorrect type, the response would be an error not an instance of this structure).
  • privateKeyInfo
    is an optional field that is as follows:
    1. Present and contains the private key randomization value, if the field certificate.type is explicit and the butterfly key mechanism was used to generate the certificate. This is used by the EE in deriving the butterfly private key for explicit certificates as specified in 9.3.
    2. Present and contains the private key reconstruction value, if the field certificate.type is implicit. This is used by the EE as specified in 5.3.2 of IEEE Std 1609.2a-2017 (also 9.3 if the butterfly key mechanism is used).
    3. Absent otherwise.
13
Ieee1609Dot2Dot1ProtocolAcaEeCertResponseCubkSpdu

AcaEeCertResponseCubkSpdu

This structure contains a certificate response for consumption by the EE. In the architecture of this document, although it is created by the ACA, it is made available to the EE via the RA as described in 8.2.

The ACA creates a certificate response in this form when the compact unified butterfly key mechanism is being used. If the RaAcaCertRequest structure was used to communicate between the RA and the ACA, the RA indicated use of compact unified butterfly keys by setting the cubk (1) bit in the bkType field in the corresponding RaAcaCertRequest.

The AcaEeCertResponse is encrypted by the ACA using the cocoon public key for encryption. See 9.3.4.2 for how the ACA derives the cocoon public key for encryption, using the tbsCert.verifyKeyIndicator field in the corresponding RaAcaCertRequest as the input cocoon public key for signing Bt. See 9.3.4.1 for how the EE derives the corresponding cocoon private key for encryption.
13
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePlainSpdu

AcaEeCertResponsePlainSpdu

This structure contains a certificate response for consumption by the EE. In the architecture of this document, although it is created by the ACA, it is made available to the EE via the RA as described in 8.2.

The ACA creates this response when 1) the compact unified butterfly key mechanism is not being used (that is, some other flavor of butterfly key is being used, or butterfly keys are not being used) and 2) it is not necessary to protect the EE's privacy from the RA, for example, when the certificate being returned is not a pseudonym certificate.
13
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpdu

AcaEeCertResponsePrivateSpdu

This structure contains a certificate response for consumption by the EE. In the architecture of this document, although it is created by the ACA, it is made available to the EE via the RA as described in 8.2.

The ACA creates this response when 1) the compact unified butterfly key mechanism is not being used (that is, some other flavor of butterfly key is being used, or butterfly keys are not being used) and 2) it is necessary to protect the EE's privacy from the RA, for example when the certificate being returned is a pseudonym certificate.

The structure consists of a signed SPDU containing an encrypted SPDU.

The encrypted SPDU is encrypted with the response encryption key that was provided to the ACA for that purpose. This key is determined as follows:
  • If the original EeRaCertRequest from the end entity indicated a single response encryption key, that is, if the additionalParams.encryptionKey field was present in the request, then the response is encrypted with that key.
  • If the original EeRaCertRequest from the end entity indicated a response encryption key generated with the “original” butterfly key mechanism, that is, the additionalParams.original field was provided in the request, then the response is encrypted with the cocoon encryption key derived from additionalParams.original.encryptionKey and additionalParams.original.encryptionExpansion as specified in 9.3.4.2 and the corresponding decryption private key is derived as specified in 9.3.4.1.
  • If the original EeRaCertRequest from the end entity indicated a response encryption key generated with the “unified” butterfly key mechanism, that is, the additionalParams.unified field was provided in the request, then the response is encrypted with the cocoon encryption key derived from tbsCert.verifyKeyIndicator and additionalParams.unified as specified in 9.3.4.2 and the corresponding decryption private key is derived as specified in 9.3.4.1.
See 9.3 for more material about butterfly keys.

The resulting Ieee1609Dot2Data of content type encryptedData is signed by the same ACA certificate that was used to issue the certificate field in the AcaEeCertResponse. If this structure is signed by a different ACA certificate, it is invalid. The ACA certificate shall follow the ACA certificate profile given in 7.7.3.2.

NOTE 1: Other potential responses to an authorization certificate request. If the original request indicated the use of “compact unified” butterfly key mechanism by including the additionalParams.compactUnified field, the response shall be a AcaEeCertResponseCubkSpdu, not a AcaEeCertResponsePrivateSpdu.

NOTE 2: How the ACA obtains the response encryption key. This document provides the RaAcaCertRequest structure to allow the RA to indicate whether the original or unified butterfly key mechanism is to be used via the flags field. The encryption key for encrypting AcaEeCertResponse is calculated by the indicated method even if the RA does not use an RaAcaCertRequest as defined in this document to communicate the certificate request to the ACA.

NOTE 3: Consistency between inner and outer signers, and the IEEE Std 1609.2 model. This SPDU introduces a new type of validity condition by requiring that the ACA that signs the outer signed SPDU is also the ACA that issued the certificate inside the encrypted SPDU. This requires that to verify the inner “SPDU”, that is, the certificate, the verifier needs to store the information from the outer SPDU. This is not a violation of the IEEE 1609.2 model: Subclause 4.2.2.3 of IEEE Std 1609.2 considers all operations carried out on received data to be atomic and does not put any restrictions on the information that is stored between operations. However, it should be noted that because the IEEE 1609.2 approach enables SPDUs to be nested within one another as Ieee1609Dot2Data, in principle an implementation could be built that iterated through the layers of a nested SPDU within a single call from the invoking application instance. (And it should also be noted that IEEE Std 1609.2 was consciously designed to enable this approach: Although the primitives provided in IEEE Std 1609.2 only support the series-of-single-operations approach, an implementation could layer this “one-invocation processing” on top of the IEEE 1609.2 interface as an optimization.) A “one-invocation processing” implementation of that type would have to anticipate situations of coupling between inner and outer SPDUs like the one created by this AcaEeCertResponsePrivateSpdu, and allow the invoking certificate management service to check consistency at the application layer, perhaps by (for example) returning the signing certificates for all nested signed SPDUs. How this is to be implemented is implementation specific; this note is intended as a notification of this potential issue to implementers planning to implement one-invocation processing.
14
Ieee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePdu

AcaEeInterfacePdu

This is the parent structure for all structures exchanged between the ACA and the EE. The ACA – EE interface is a logical interface rather than a direct communications interface in that there is no direct message flow between the ACA and the EE: Messages from the ACA are stored by the RA and subsequently forwarded to the EE. The PDUs are identified as ACA-EE PDUs even though the RA acts as a forwarder for them because those PDUs are created by the ACA and encrypted for the EE, and not modified and frequently not read by the RA. An overview of this structure is as follows:
  • acaEeCertResponse
    contains the ACA's response to RaAcaCertRequestSPDU, which is meant for the EE and sent via the RA.
41
Ieee1609Dot2Dot1AcaLaInterfaceAcaLaInterfacePdu

AcaLaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.
1
Ieee1609Dot2Dot1AcaMaInterfaceAcaMaInterfacePdu

AcaMaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.
1
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponse

AcaRaCertResponse

This structure contains a certificate response by the ACA, encapsulated for consumption by the EE, as well as associated data for consumption by the RA. The response is of form AcaEeCertResponsePlainSpdu, AcaEeCertResponsePrivateSpdu, or AcaEeCertResponseCubkSpdu, and is generated in response to a successful RaAcaCertRequestSpdu. In this structure:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of AcaRaCertResponse.
  • requestHash
    contains the hash of the corresponding RaAcaCertRequestSPDU.
  • acaResponse
    contains the certificate for the EE in a suitable form as determined from the corresponding RaAcaCertRequestSPDU.
14
Ieee1609Dot2Dot1ProtocolAcaRaCertResponseSpdu

AcaRaCertResponseSpdu

This structure is the SPDU used to send a signed AcaRaCertResponse. For the signature to be valid the signing certificate shall contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating AcaSsp.
4
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu

AcaRaInterfacePDU

This is the parent structure for all structures exchanged between the ACA and the RA. An overview of this structure is as follows:
  • raAcaCertRequest
    contains the request for an authorization certificate from the RA to the ACA on behalf of the EE.
  • acaRaCertResponse
    contains the ACA's response to RaAcaCertRequest.
42
Ieee1609Dot2Dot1AcaRaInterfaceAcaResponse

AcaResponse

This structure contains the certificate for the EE in a suitable form as determined from the corresponding RaAcaCertRequestSPDU. In this structure:
  • plain
    contains the certificate for the EE in plain, that is, without encryption or signature. This choice is used only when the field certEncKey is absent and flags.cubk is not set in the corresponding RaAcaCertRequest.
  • private
    contains the certificate for the EE in an encrypted then signed form to protect the EE's privacy from the RA. This choice is used only when the field certEncKey is present and flags.cubk is not set in the corresponding RaAcaCertRequest.
  • cubk
    contains the certificate for the EE in an encrypted form. This choice is used only when the field certEncKey is absent and flags.cubk is set in the corresponding RaAcaCertRequest.
13
Ieee1609Dot2Dot1ProtocolAcaSsp

AcaSsp

This structure defines the SSP for an ACA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
Ieee1609Dot2Dot1AcpcAcpcNodeValue

AcpcNodeValue

This is a 16 byte string that represents the value of a node in the ACPC tree.
2
Ieee1609Dot2Dot1AcpcAcpcPdu

AcpcPdu

This structure contains an APrV structure produced by the CAM. An overview of this structure is as follows:
  • tree
    contains an AprvBinaryTree.
  • aprv
    contains a single IndividualAprv.
32
Ieee1609Dot2Dot1AcpcAcpcPsid

AcpcPsid

This is the PSID used to indicate activities in ACPC as specified in this document.
21
Ieee1609Dot2Dot1ProtocolAcpcSsp

AcpcSsp

This is a container for ACPC-related SSPs, specifying one SSP for each role. The only SSP defined in this document is the CamSsp, used in the CAM certificate that signs a SignedAprvBinaryTree or a SignedIndividualAprv. The SSP shall be C-OER encoded for inclusion in the CAM certificate. New versions of the CAM SSP should be handled by extending this structure rather than by use of a version number in the CamSsp structure.

The AcpcSsp is associated with the AcpcPsid in the CAM certificate's appPermissions field.
1
Ieee1609Dot2Dot1AcpcAcpcTreeId

AcpcTreeId

This is an 8 byte string that identifies an ACPC tree series. It is required to be globally unique within the system and is the same for all ACPC tree instances within the ACPC tree series. Registration of AcpcTreeId values is managed by the IEEE RA; see http://standards.ieee.org/regauth. A list of assigned AcpcTreeId values is provided in L.2.
5
Ieee1609Dot2Dot1EeRaInterfaceAdditionalParams

AdditionalParams

This structure contains parameters for the butterfly key mechanism. An overview of this structure is as follows:
  • original
    contains the parameters for the original variant.
  • unified
    contains the expansion function for signing to be used for the unified variant. The caterpillar public key and expansion function for encryption are the same as those for signing.
  • compactUnified
    contains the expansion function for signing to be used for the compact unified variant. The caterpillar public key and expansion function for encryption are the same as those for signing.
  • encryptionKey
    contains the public key for encrypting the certificate if the butterfly key mechanism is not used.
13
IEEE1609dot2AesCcmCiphertext11
Ieee1609Dot2Dot1ProtocolAnyMbrPsid

AnyMbrPsid

This structure is a list of the PSIDs entitled to authorize misbehavior report upload. It currently only lists one PSID. It is intended to be extensible as additional misbehavior reporting PSIDs are defined and to take the form AnyMbrPsid = Psid (BaseMbrPsid | MbrPsid2 | MbrPsid3 | etc.).
12
Ieee1609Dot2Dot1AcpcAprvBinaryTree

AprvBinaryTree

This structure encodes a binary tree. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of AprvBinaryTree.
  • currentI
    contains the i-value associated with the batch of certificates.
  • acpcTreeId
    contains an identifier for the CAM creating this binary tree.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tree
    contains a bit string indicating which nodes of the tree are present. It is calculated as specified in 9.5.4.2, and can be used by the EE to determine which entry in nodeValueList to use to derive that EE's APrV as specified in 9.5.2.
  • nodeValueList
    contains the values of the nodes that are present in the order indicated by tree.
16
Ieee1609Dot2Dot1AcpcAprvHashCalculationInput

AprvHashCalculationInput

This structure, C-OER encoded, is the input to the hash function to calculate child node values from a parent node. By including the ID fields it "firewalls" the hash function so that an attacker who inverts the hash has only found the hash preimage for a specific node, in a specific tree, for a specific time period. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • acpcTreeId
    contains an identifier for this ACPC tree series.
  • acpcPeriod
    contains an identifier for the time period for this tree. If the certificates for which this set of APrVs are intended have an IValue field, acpcPeriod in this structure shall be equal to the IValue field in the certificates. How the RA and the CAM synchronize on this value is outside the scope of this document.
  • childNodeId
    contains a bit string of length l encoding the node location within the l'th level.
  • parentNodeValue
    contains the value of the parent node.
3
Ieee1609Dot2Dot1ProtocolBaseMbrPsid

BaseMbrPsid

This PSID identifies misbehavior reporting for a baseline set of applications. It is owned by CAMP.
11
IEEE1609dot2BaseTypesBasePublicEncryptionKey

BasePublicEncryptionKey

This structure specifies the bytes of a public encryption key for a particular algorithm. The only algorithm supported is ECIES over either the NIST P256 or the Brainpool P256r1 curve as specified in 5.3.4.
11
IEEE1609dot2BaseTypesBitmapSsp

BitmapSsp

This structure represents a bitmap representation of a SSP. The mapping of the bits of the bitmap to constraints on the signed SPDU is PSID-specific.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is bitmapSsp, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • EITHER The sspRange field in P indicates all
      • OR The sspRange field in P indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in P, the bit in the identical position in the sspValue in A is set equal to the bit in that position in the sspValue in P.
NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every bit set to 1 in the sspBitmask in R, the bit in the identical position in B is set equal to the bit in that position in the sspValue in R. For each bit set to 0 in the sspBitmask in R, the corresponding bit in the identical position in B may be freely set to 0 or 1, i.e., if a bit is set to 0 in the sspBitmask in R, the value of corresponding bit in the identical position in B has no bearing on whether B and R are consistent.
1
IEEE1609dot2BaseTypesBitmapSspRange

BitmapSspRange

This structure represents a bitmap representation of a SSP. The sspValue indicates permissions. The sspBitmask contains an octet string used to permit or constrain sspValue fields in issued certificates. The sspValue and sspBitmask fields shall be of the same length.

Consistency with issuing certificate.

If a certificate has an PsidSspRange value P for which the sspRange field is bitmapSspRange, P is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in P;
  • (OPTION 2) A PsidSspRange R for which the following holds:
    • The psid field in R is equal to the psid field in P and one of the following is true:
      • EITHER The sspRange field in R indicates all
      • OR The sspRange field in R indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in R:
        • The bit in the identical position in the sspBitmask in P is set equal to 1, AND
        • The bit in the identical position in the sspValue in P is set equal to the bit in that position in the sspValue in R.

Reference ETSI TS 103 097 for more information on bitmask SSPs.
1
Ieee1609Dot2Dot1CamRaInterfaceBlindedKey

BlindedKey

This is a blinded ACPC encryption key produced by the CAM.
11
Ieee1609Dot2Dot1EeRaInterfaceButterflyExpansion

ButterflyExpansion

This structure contains material used in the butterfly key calculations as specified in 9.3.5.1 and 9.3.5.2. An overview of this structure is as follows:
  • aes128
    indicates that the symmetric algorithm used in the expansion function is AES-128 with the indicated 16 byte string used as the key.
2
Ieee1609Dot2Dot1EeRaInterfaceButterflyParamsOriginal

ButterflyParamsOriginal

This structure contains parameters for the original variation of the butterfly key mechanism. An overview of this structure is as follows:
12
Ieee1609Dot2Dot1CamRaInterfaceCamRaBatchResponse

CamRaBatchResponse

This structure contains a blinded batch of keys for the EE during ACPC enrollment. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • requestHash
    contains the hash of the corresponding request RaCamBatchRequest.
  • batch
    contains a sequence of blinded keys, each mapped to one IValue from the periodList field of the request.
13
Ieee1609Dot2Dot1CamRaInterfaceCamRaInterfacePdu

CamRaInterfacePDU

This is the parent structure for all structures exchanged between the CAM and the RA during ACPC enrollment. An overview of this structure is as follows:
2
Ieee1609Dot2Dot1ProtocolCamSsp

CamSsp

This is a list of the ACPC Tree IDs for which the containing CAM certificate is entitled to sign a SignedAprvBinaryTree or a SignedIndividualAprv. The SSP entitles the certificate holder to sign either of these structures.
11
IEEE1609dot2Certificate63
IEEE1609dot2CertificateBase35
Ieee1609Dot2Dot1CertManagementCertificateChain

CertificateChain

This structure is used to encapsulate certificates and a CTL. An overview of this structure is as follows:
  • homeCtl
    contains a CTL. If the certificate chain was requested via the mechanisms given in 6.3.5.7, the ElectorGroupId in this CTL is the same as the ElectorGroupId provided in the request. The intent is that this is the “home” CTL of the requester, but this field can in practice be used to provide any CTL.
  • others
    contains additional valid certificates of the CAs and the MAs chosen by means outside the scope of this document.
12
Ieee1609Dot2Dot1ProtocolCertificateChainSpdu

CertificateChainSpdu

This structure is the SPDU used to send an unsecured CertificateChain. It is used to create certificate chain files as specified in 8.4.
3
IEEE1609dot2CertificateId22
Ieee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpdu

CertificateManagementInformationStatusSpdu

This structure is the SPDU used to send a signed CertManagementInfoStatus. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9 or the DC certificate profile given in 7.7.3.10.
4
Ieee1609Dot2Dot1CertManagementCertificateManagementInfoStatus

CertificateManagementInfoStatus

This structure contains the status of different certificate management information, including CRLs, CTLs, and individual certificates of CAs, MAs, and the RA.
  • crl
    contains the status information for CRLs.
  • ctl
    contains the status information for CTLs.
  • caCcf
    contains the time of the last update of any of the CA certificates in the CCF.
  • ma
    contains the status information for MA certificates.
  • ra
    contains the time of the last update of the RA's certificate. It is omitted if this structure is not sent by an RA.
14
IEEE1609dot2CertificateType4
Ieee1609Dot2Dot1CertManagementCertManagementPdu

CertManagementPdu

This is the parent structure for all SCMS component certificate management structures. An overview of this structure is as follows:
  • compositeCrl
    contains zero or more SecuredCrl as defined in IEEE Std 1609.2, and the CTL.
  • certificateChain
    contains a collection of certificates and the CTL.
  • multiSignedCtl
    contains the CTL signed by multiple signers, the electors.
  • tbsCtlSignature
    contains the CTL-instance-specific information used to generate a signature on the CTL.
65
IEEE1609dot2BaseTypesCircularRegion

CircularRegion

This structure specifies a circle with its center at center, its radius given in meters, and located tangential to the reference ellipsoid. The indicated region is all the points on the surface of the reference ellipsoid whose distance to the center point over the reference ellipsoid is less than or equal to the radius. A point which contains an elevation component is considered to be within the circular region if its horizontal projection onto the reference ellipsoid lies within the region.
12
Ieee1609Dot2Dot1CertManagementCompositeCrl

CompositeCrl

This structure is used to encapsulate CRLs and a CTL. An overview of this structure is as follows:
  • crl
    contains a list of signed CRLs for different (CRACA ID, CRL series) pairs. The CRLs are signed individually, and this document does not specify the order in which they should appear.
  • homeCtl
    contains a CTL. If the composite CRL was requested via the mechanisms given in 6.3.5.8, the ElectorGroupId in this CTL is the same as the ElectorGroupId provided in the request. The intent is that this is the “home” CTL of the requester, but this field can in practice be used to provide any CTL with any ElectorGroupId value.
12
Ieee1609Dot2Dot1ProtocolCompositeCrlSpdu

CompositeCrlSpdu

This structure is the SPDU used to send an unsecured CompositeCrl. It is used to create composite CRL files as specified in 8.5.
3
IEEE1609dot2Countersignature1
IEEE1609dot2BaseTypesCountryAndRegions

CountryAndRegions

In this structure:
  • countryOnly
    is a CountryOnly as defined above.
  • region
    identifies one or more regions within the country. If countryOnly indicates the United States of America, the values in this field identify the state or statistically equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of countryOnly, the meaning of region is not defined in this version of this standard.
12
IEEE1609dot2BaseTypesCountryAndSubregions

CountryAndSubregions

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize RegionAndSubregions or CountryAndSubregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support CountryAndSubregions containing at least eight RegionAndSubregions entries.

In this structure:
  • country
    is a CountryOnly as defined above.
  • regionAndSubregions
    identifies one or more subregions within country. If country indicates the United States of America, the values in this field identify the county or county equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of country, the meaning of regionAndSubregions is not defined in this version of this standard.
12
IEEE1609dot2BaseTypesCountryOnly

CountryOnly

This is the integer representation of the country or area identifier as defined by the United Nations Statistics Division in October 2013 (see normative references in Clause 2).
31
IEEE1609dot2CrlBaseTypesCrlContents17
Ieee1609Dot2Dot1CertManagementCrlInfoStatus

SequenceOfCrlInfoStatus

This structure contains the status information for a CRL.
  • cracaId
    contains the CRACA ID of the CRL.
  • series
    contains the CRL series of the CRL.
  • issueDate
    contains the time of the last update of the CRL.
13
IEEE1609dot2CrlBaseTypesCrlPriorityInfo11
IEEE1609dot2CrlCrlPsid11
IEEE1609dot2BaseTypesCrlSeries

CrlSeries

This integer identifies a series of CRLs issued under the authority of a particular CRACA.
51
Ieee1609Dot2Dot1ProtocolCrlSignerSsp

CrlSignerSsp

This structure defines the SSP for a CRL signer when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

NOTE: The SSP for a CRL signer when signing CRLs is associated with PSID 0x0100 and is defined in IEEE Std 1609.2.
11
Ieee1609Dot2Dot1CertManagementCtlElectorEntry

CtlElectorEntry

This structure contains the hash of an elector certificate.
11
Ieee1609Dot2Dot1CertManagementCtlInfoStatus

CtlInfoStatus

This structure contains the status information for a CTL.
13
Ieee1609Dot2Dot1CertManagementCtlRootCaEntry

CtlRootCaEntry

This structure contains the hash of a root CA certificate.
11
Ieee1609Dot2Dot1CertManagementCtlSequenceNumber

CtlSequenceNumber

This structure is used to encode the CTL sequence number. This document does not specify semantics of this type once it reaches its maximum value.
3
Ieee1609Dot2Dot1ProtocolCtlSignatureSpdu

CtlSignatureSpdu

This structure is the SPDU used to send a signed ToBeSignedCtlSignature. For the signature to be valid, the signing certificate shall match the elector certificate profile in 7.7.3.7. This means that the signature is calculated as specified in IEEE Std 1609.2, with the data input to the hash process consisting of the C-OER encoding of the tbsData that includes the ToBeSignedCtlSignature.
14
Ieee1609Dot2Dot1ProtocolDcmSsp

DcmSsp

This structure defines the SSP for a device configuration manager when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
Ieee1609Dot2Dot1ProtocolDcSsp

DcSsp

This structure defines the SSP for a distribution center when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
IEEE1609dot2BaseTypesDuration

Duration

This structure represents the duration of validity of a certificate. The Uint16 value is the duration, given in the units denoted by the indicated choice. A year is considered to be 31556952 seconds, which is the average number of seconds in a year; if it is desired to map years more closely to wall-clock days, this can be done using the hours choice for up to seven years and the sixtyHours choice for up to 448. In this structure:
  • microseconds
    contains the duration in microseconds.
  • milliseconds
    contains the duration in milliseconds.
  • seconds
    contains the duration in seconds.
  • minutes
    contains the duration in minutes.
  • hours
    contains the duration in hours.
  • sixtyHours
    contains the duration in sixty-hour periods.
  • years
    contains the duration in years.
11
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponse

EcaEeCertResponse

This structure is used by the ECA to respond to an EE's enrollment certificate request. Additional bootstrapping information including the RA's certificate are provided by the DCM. The specification of the DCM is outside the scope of this document. An overview of this structure is as follows:

NOTE: The ECA uses the tbsCert.verifyKeyIndicator field in the EeEcaCertRequest to determine whether the EE is requesting an explicit or an implicit enrollment certificate. A policy is anticipated that determines what type of certificate is appropriate for a given set of circumstances (such as PSIDs, other end entity information, and locality) and that if the EE has requested a kind of certificate that is not allowed by policy, the ECA returns an error to the EE.
  • version
    contains the current version of the structure.
  • requestHash
    contains the following hash:
    1. EeEcaCertRequestSPDU, if the corresponding request was EeEcaCertRequestSPDU.
    2. EeRaSuccessorEnrollmentCertRequestSpd, if the corresponding request was EeRaSuccessorEnrollmentCertRequestSpd.
  • ecaCertChain
    contains the ECA's currently valid certificate and the certificate chain, up to and including the root CA.
  • certificate
    contains the enrollment certificate generated by the ECA, which shall be of the type indicated by the type field in the corresponding request.
  • privateKeyInfo
    contains the private key reconstruction value, if certificate.type is implicit. This is used by the EE as specified in 9.3.5.1.
14
Ieee1609Dot2Dot1ProtocolEcaEeCertResponseSpdu

EcaEeCertResponseSpdu

This structure is the SPDU used to send a signed EcaEeCertResponse. For the signature to be valid, the signing certificate shall contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating EcaSsp.
4
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu

EcaEeInterfacePDU

This is the parent structure for all structures exchanged between the ECA and the EE. An overview of this structure is as follows:
  • eeEcaCertRequest
    contains the enrollment certificate request sent by the EE to the ECA.
  • ecaEeCertResponse
    contains the enrollment certificate response sent by the ECA to the EE.
42
Ieee1609Dot2Dot1ProtocolEcaSsp

EcaSsp

This structure defines the SSP for an enrollment CA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
IEEE1609dot2BaseTypesEccP256CurvePoint

EccP256CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 256-bit prime number. This encompasses both NIST p256 as defined in FIPS 186-4 and Brainpool p256r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 32 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 32 octets in network byte order.
7
IEEE1609dot2BaseTypesEccP384CurvePoint

EccP384CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 384-bit prime number. The only supported such curve in this standard is Brainpool p384r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 48 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 48 octets in network byte order.
3
IEEE1609dot2BaseTypesEcdsaP256Signature

EcdsaP256Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP256CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP256CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 256-bit curve, is bounded above by approximately square-root(p)/p or 2^(−128). For the 256-bit curves in this standard, the exact values of n and p in hexadecimal are:

NISTp256:
  • p = FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
  • n = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551
Brainpoolp256:
  • p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377
  • n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7
21
IEEE1609dot2BaseTypesEcdsaP384Signature

EcdsaP384Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP384CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP384CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 384-bit curve, is bounded above by approximately square-root(p)/p or 2^(−192). For the 384-bit curve in this standard, the exact values of n and p in hexadecimal are:
  • p = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123 ACD3A729901D1A71874700133107EC53
  • n = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7 CF3AB6AF6B7FC3103B883202E9046565
21
IEEE1609dot2BaseTypesEciesP256EncryptedKey

EciesP256EncryptedKey

This data structure is used to transfer a 16-byte symmetric key encrypted using ECIES as specified in IEEE Std 1363a-2004.

Encryption and decryption are carried out as specified in 5.3.4.

In this structure:
  • v
    is the sender’s ephemeral public key, which is the output V from encryption as specified in 5.3.4.
  • c
    is the encrypted symmetric key, which is the output C from encryption as specified in 5.3.4. The algorithm for the symmetric key is identified by the CHOICE indicated in the following SymmetricCiphertext.
  • t
    is the authentication tag, which is the output tag from encryption as specified in 5.3.4.
11
Ieee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequest

EeEcaCertRequest

This structure contains parameters needed to request an enrollment certificate from the ECA. The ECA may, subject to policy, issue an enrollment certificate with different contents than the contents requested. An overview of this structure is as follows:

NOTE 1: The tbsCert.cracaId and tbsCert.crlSeries are set to the indicated values in the corresponding EeEcaCertRequest. In the issued enrollment certificate, they may have different values, set by the ECA.

NOTE 2: The EE uses the type field to indicate whether it is requesting an explicit or an implicit enrollment certificate. A policy is anticipated that determines what type of certificate is appropriate for a given set of circumstances (such as PSIDs, other end entity information, and locality) and that if the EE has requested a kind of certificate that is not allowed by policy, the ECA returns an error to the EE.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of EeEcaCertRequest.
  • type
    indicates whether the request is for an explicit or implicit certificate (see 4.1.1, 4.1.4.3.1).
  • tbsCert
    contains the parameters used by the ECA to generate the enrollment certificate. tbsCert.verifyKeyIndicator.verificationKey contains the public key information sent by the requester. The verifyKeyIndicator field indicates the choice verificationKey even if type is implicit, as this allows the requester to indicate which signature algorithm and curve they are requesting. The value in this field is used as the verification key in the certificate if the certificate issued in response to this request is explicit, and as the input public key value for implicit certificate generation if the certificate issued in response to this request is implicit.
  • canonicalId
    is the canonical identifier for the device per 4.1.4.2. If it is present, it indicates that the enclosing EeEcaCertRequestSpdu has been signed by the canonical private key. The receiver is intended to use the canonicalId to look up the canonical public key to verify the certificate request.
14
Ieee1609Dot2Dot1ProtocolEeEcaCertRequestSpdu

EeEcaCertRequestSpdu

This structure is the SPDU used to send a signed EeEcaCertRequest, as follows:
  • If eeEcaCertRequest.canonicalId is not present, the EE signs this structure using the private key corresponding to the tbsCert.verifyKeyIndicator field of the EeEcaCertRequest.
  • If eeEcaCertRequest.canonicalId is present, the EE signs this structure using the canonical private key as specified in 4.1.4.2.
14
Ieee1609Dot2Dot1EeMaInterfaceEeMaInterfacePdu

EeMaInterfacePdu

This structure is currently being defined outside of this document, so it is defined as NULL for purposes of this document.
1
Ieee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpdu

EeRa1609Dot2AuthenticatedCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted IEEE 1609.2 authenticated certificate request. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.
14
Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequest

EeRaCertRequest

This structure contains parameters needed to request different types of authorization certificates. An overview of this structure is as follows:

NOTE 1: In the case where the butterfly key mechanism is used to derive the certificate encryption key, the value j is not communicated to the ACA. However, the EE that receives the certificate response can only decrypt the response if it knows j. The RA is therefore anticipated to store j so that it can be associated with the appropriate certificate response.

NOTE 2: The EE uses the type field to indicate whether it is requesting an explicit or an implicit authorization certificate. A policy is anticipated that determines what type of certificate is appropriate for a given set of circumstances (such as PSIDs, other end entity information, locality, ...) and that if the EE has requested a kind of certificate that is not allowed by policy, the ACA returns an error to the EE. This implies that the certificate issued by the ACA is always of type indicated in the EeRaCertRequest.

NOTE 3 This document does not specify a method to include an encryptionKey in the requested certificates, if the butterfly key mechanism is used. The EE using such a certificate to sign a message can request an encrypted response using the tbsData.headerInfo.encryptionKey field of the SignedData; see 6.3.9, 6.3.33, 6.3.34, and 6.3.36 of IEEE Std 1609.2 for more details.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of EeRaCertRequest.
  • type
    indicates whether the request is for an explicit or implicit certificate (see 4.1.1 and 4.1.4.3.1).
  • tbsCert
    contains the parameters to be used by the ACA to generate authorization certificate(s).
    1. id contains the identity information sent by the requester. If the type is LinkageData, the RA replaces that in the certificates with the linkage values generated with the help of the LAs and the ACA; see Annex D.
    2. validityPeriod contains the requested validity period of the first batch of certificates.
    3. region, assuranceLevel, canRequestRollover, and encryptionKey, if present, contain the information sent by the requester for the requested certificates.
    4. verifyKeyIndicator.verificationKey contains the public key information sent by the requester. The verifyKeyIndicator field indicates the choice verificationKey even if type is implicit, as this allows the requester to indicate which signature algorithm and curve they are requesting.
      1. If the certificate issued in response to this request is explicit and butterfly expansion is not used, the value in this field is the verification key that appears in that certificate.
      2. If the certificate issued in response to this request is implicit and butterfly expansion is not used, the value in this field is the input public key value for implicit certificate generation.
      3. If butterfly expansion is used, that is, if one of (original, unified, compactUnified) options is present in the field additionalParams, the value in this field is combined with the values in the additionalParams field as specified in 9.3.
  • additionalParams
    contains relevant parameters for generating the requested certificates using the butterfly key mechanism as specified in 9.3, or for encrypting the certificates without using the butterfly key mechanism. If present, the field tbsCert.verifyKeyIndicator shall be used as the caterpillar public key for signing in the butterfly key mechanism.
15
Ieee1609Dot2Dot1ProtocolEeRaCertRequestSpdu

EeRaCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted EeRaCertRequest. It is a choice of the IEEE 1609.2 authenticated certificate request, which may be any kind of EE-RA certificate request, and the ITU-T X.509 certificate request, which is required to be an authorization certificate request.
3
Ieee1609Dot2Dot1EeRaInterfaceEeRaDownloadRequest

EeRaDownloadRequest

This structure contains parameters needed to request the download of certificates from the RA. An overview of this structure is as follows:
  • generationTime
    contains the generation time of EeRaDownloadRequest.
  • filename
    contains the name of the file requested for download, formed as specified in 8.2.2.
11
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestPlainSpdu

EeRaDownloadRequestPlainSpdu

This structure is the SPDU used to send an unsecured EeRaDownloadRequest.
3
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestSpdu

EeRaDownloadRequestSpdu

This structure is the SPDU used to send an signed then encrypted EeRaDownloadRequest. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.
4
Ieee1609Dot2Dot1ProtocolEeRaEncryptedMisbehaviorReportSpdu

EeRaEncryptedMisbehaviorReportSpdu

This structure is used for misbehavior report upload when EE authentication is done at the Web API level (see 6.3.5.6). The contents of the encrypted data are misbehavior report specific and outside the scope of this document. The contents are encrypted for the MA certificate.
1
Ieee1609Dot2Dot1ProtocolEeRaEncryptedSignedMisbehaviorReportSpdu

EeRaEncryptedSignedMisbehaviorReportSpdu

This structure is used for misbehavior report upload when EE authentication is done at the SCMS REST API v2 level (see 6.3.5.6). The contents of the encrypted data are misbehavior report specific and outside the scope of this document. The contents are encrypted for the MA certificate.
2
Ieee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu

EeRaInterfacePDU

This is the parent structure for all structures exchanged between the EE and the RA. An overview of this structure is as follows:

NOTE: This CHOICE does not include a PDU type for encrypted misbehavior report upload; see 4.1.5.
  • eeRaCertRequest
    contains the certificate generation request sent by the EE to the RA.
  • raEeCertAck
    contains the RA's acknowledgement of the receipt of EeRaCertRequestSpdu.
  • raEeCertInfo
    contains the information about certificate download.
  • eeRaDownloadRequest
    contains the download request sent by the EE to the RA.
  • eeRaSuccessorEnrollmentCertRequest
    contains a self-signed request for an enrollment certificate, identical in format to the one submitted for an initial enrollment certificate. (This becomes a request for a successor enrollment certificate by virtue of being signed by the current enrollment certificate.)
115
Ieee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpdu

EeRaSuccessorEnrollmentCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted EeEcaCertRequestSpdu. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.
4
Ieee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu

EeRaX509AuthenticatedCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted ITU-T X.509authenticated certificate request. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.6. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.
15
Ieee1609Dot2Dot1ProtocolEeSsp

EeSsp

This structure defines the SSP for an end entity when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
Ieee1609Dot2Dot1CertManagementElectorGroupId

ElectorGroupId

This structure identifies a group of electors that sign a series of CTLs for a specific purpose. Registration of ElectorGroupId values is managed by the IEEE RA; see http://standards.ieee.org/regauth. A list of assigned ElectorGroupId values is provided in K.1.
3
Ieee1609Dot2Dot1ProtocolElectorSsp

ElectorSsp

This structure defines the SSP for an elector when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
IEEE1609dot2BaseTypesElevation

Elevation

This structure contains an estimate of the geodetic altitude above or below the WGS84 ellipsoid. The 16-bit value is interpreted as an integer number of decimeters representing the height above a minimum height of −409.5 m, with the maximum height being 6143.9 m.
11
IEEE1609dot2EncryptedData12
IEEE1609dot2EncryptedDataEncryptionKey11
Ieee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLV

EncryptedIndividualPLV

This structure contains an individual prelinkage value encrypted by the LA for the ACA using the shared secret key. An overview of this structure is as follows:

NOTE: How the ACA obtains the shared symmetric key and how the RA associates the encPlv1 and encPlv2 with the correct certificate request are outside the scope of this document.
  • version
    contains the current version of the structure.
  • laId
    contains the ID of the LA that created the prelinkage value. See Annex D for further discussion of LA IDs.
  • encPlv
    contains the encrypted individual prelinkage value, that is, the ciphertext field decrypts to a PreLinkageValue. It contains a pointer (hash of the shared symmetric key) to the used shared secret encryption key.
14
IEEE1609dot2BaseTypesEncryptionKey

EncryptionKey

This structure contains an encryption key, which may be a public or a symmetric key.
12
IEEE1609dot2EndEntityType1
IEEE1609dot2ExplicitCertificate11
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl

FullIeeeTbsCtl

This structure specifies a CTL that contains information about the complete set of certificates trusted by the electors that sign the CTL. An overview of this structure is as follows:

NOTE 1: If in future CTL types are defined that contain the same information as, or a subset of the information in, the fullIeeeCtl, those types are anticipated to contain the same sequence number as the corresponding fullIeeeCtl.

NOTE 2: Any root CA or elector certificate that is not on the CTL is not trusted. The electorRemove and rootCaRemove are intended to be used only if the SCMS manager wants to explicitly indicate that a previously trusted entity (elector or root CA) is now not trusted even though that entity's certificate is still within its validity period. In practice, it is anticipated that the remove fields (electorRemove and rootCaRemove) will almost always be sequences of length 0.
  • type
    contains the type of the CTL. It is identical to the type field that appears in the enclosing MultiSignedCtl. The field is included here as well to provide the simplest mechanism to help ensure that the type is included in the calculated CTL hash.
  • electorGroupId
    contains the group of electors that have signed the CTL. It plays a role similar to CrlSeries in a CRL. This field is intended to be globally unique in the universe of all systems that use the MultiSignedCtl. See the specification of ElectorGroupId for discussion of a convention that can be followed to enable uniqueness.
  • sequenceNumber
    contains the sequence number of the CTL. This is incremented by 1 every time a new FullIeeeTbsCtl is issued.
  • effectiveDate
    contains the time when the CTL is to take effect. This is to be greater than or equal to the effectiveDate field in the CTL with the same electorGroupId and the previous sequence number.
  • electorApprove
    contains the list of hashes of the elector certificates that are approved as of the effective date. The hash is calculated with the same hash algorithm that is used to hash the elector certificate for signing.
  • electorRemove
    contains the list of hashes of the elector certificates that are valid (that is, not expired) on the effective date and are not approved, as of the effective date, to sign a CTL. The hash is calculated with the same hash algorithm that is used to hash the elector certificate for signing. This field is to be considered informational as a certificate that is not included in electorApprove is not valid even if it does not appear in electorRemove.
  • rootCaApprove
    contains the list of root CA certificates that are approved as of the effective date. The hash is calculated with the same hash algorithm that is used to hash the root certificate for signing. If the root certificate is signed with a hash function with a 48 octet output, this is truncated to the low-order 32 bytes for inclusion in the CTL.
  • rootCaRemove
    contains the list of root CA certificates that are valid (that is, not expired) on the effective date and are not approved, as of the effective date, to issue certificates or carry out other activities. If the root certificate is signed with a hash function with a 48 octet output, this is truncated to the low-order 32 bytes for inclusion in the CTL. This field is to be considered informational as a certificate that is not included in rootCaApprove is not valid even if it does not appear in rootCaRemove.
  • quorum
    contains the quorum, that is, the number of the electors required to sign the next CTL with the same ElectorGroupId value for that CTL to be trusted. If this field is absent, the quorum for the next CTL is equal to the quorum for the current CTL.
17
IEEE1609dot2BaseTypesGeographicRegion

GeographicRegion

This structure represents a geographic region of a specified form. A certificate is not valid if any part of the region indicated in its scope field lies outside the region indicated in the scope of its issuer.

Critical information fields:
  1. If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  2. If selected, rectangularRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of RectangularRegion in rectangularRegions when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support rectangularRegions fields containing at least eight entries.
  3. If selected, identifiedRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of IdentifiedRegion in identifiedRegion shall reject the signed SPDU as invalid. A compliant implementation shall support identifiedRegion fields containing at least eight entries.
In this structure:
  • circularRegion
    contains a single instance of the CircularRegion structure.
  • rectangularRegion
    is an array of RectangularRegion structures containing at least one entry. This field is interpreted as a series of rectangles, which may overlap or be disjoint. The permitted region is any point within any of the rectangles.
  • polygonalRegion
    contains a single instance of the PolygonalRegion structure.
  • identifiedRegion
    is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions.
24
IEEE1609dot2CrlBaseTypesGroupCrlEntry13
IEEE1609dot2BaseTypesGroupLinkageValue

GroupLinkageValue

This is the group linkage value. See 5.1.3 and 7.3 for details of use.
1
IEEE1609dot2BaseTypesHashAlgorithm

HashAlgorithm

This structure identifies a hash algorithm. The value is sha256, indicates SHA-256 as specified in 5.3.3. The value sha384 indicates SHA-384 as specified in 5.3.3.

Critical information fields: This is a critical information field as defined in 5.2.6. An implementation that does not recognize the enumerated value of this type in a signed SPDU when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
5
IEEE1609dot2CrlBaseTypesHashBasedRevocationInfo12
IEEE1609dot2HashedData1
IEEE1609dot2BaseTypesHashedId10

HashedId10

This type contains the truncated hash of another data structure. The HashedId10 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order ten bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order ten bytes are the last ten bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId10 within a structure depends on the context. In this standard, for each structure that includes a HashedId10 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256(“”) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId10 derived from this hash corresponds to the following:
HashedId10 = 934ca495991b7852b855.
1
IEEE1609dot2BaseTypesHashedId3

HashedId3

This type contains the truncated hash of another data structure. The HashedId3 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order three bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order three bytes are the last three bytes of the 32-byte hash when represented in network byte order. See Example below.

Example: Consider the SHA-256 hash of the empty string:
SHA-256(“”) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId3 derived from this hash corresponds to the following:
HashedId3 = 52b855.
5
Ieee1609Dot2Dot1CertManagementHashedId32

HashedId32

This data structure contains the hash of another data structure, calculated with a hash function with at least 32 bytes of output length. The HashedId32 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order 32 bytes of the hash output if necessary. If the data structure is subject to canonicalization it is canonicalized before hashing.
1
Ieee1609Dot2Dot1CertManagementHashedId48

HashedId48

This data structure contains the hash of another data structure, calculated with a hash function with at least 48 bytes of output length. The HashedId48 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order 48 bytes of the hash output if necessary. If the data structure is subject to canonicalization it is canonicalized before hashing.
2
IEEE1609dot2BaseTypesHashedId8

HashedId8

This type contains the truncated hash of another data structure. The HashedId8 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order eight bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order eight bytes are the last eight bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId8 within a structure depends on the context. In this standard, for each structure that includes a HashedId8 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256(“”) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId8 derived from this hash corresponds to the following:
HashedId8 = a495991b7852b855.
12
IEEE1609dot2HeaderInfo18
IEEE1609dot2BaseTypesHostname

Hostname

This is a UTF-8 string as defined in IETF RFC 3629. The contents are determined by policy.
1
Ieee1609Dot2Dot1ProtocolIcaSsp

IcaSsp

This structure defines the SSP for an intermediate CA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
IEEE1609dot2BaseTypesIdentifiedRegion

IdentifiedRegion

This structure indicates the region of validity of a certificate using region identifiers.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
13
IEEE1609dot2Ieee1609Dot2Content13
IEEE1609dot2Ieee1609Dot2Data112
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpen

Ieee1609Dot2Data-EncryptedOpen

This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. This structure differs from Ieee1609Dot2Data-Encrypted in that it does not specify the contents of the encrypted data.
21
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1MsctlType

Ieee1609dot2dot1MsctlType

This is the integer used to identify the type of the CTL.
4
IEEE1609dot2CrlBaseTypesIMaxGroup12
IEEE1609dot2ImplicitCertificate11
Ieee1609Dot2Dot1AcpcIndividualAprv

IndividualAprv

This structure contains an individual APrV. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of IndividualAprv.
  • currentI
    contains the i-value associated with the batch of certificates.
  • acpcTreeId
    contains an identifier for the CAM creating this binary tree.
  • nodeId
    contains the identifier of the node.
  • nodeValue
    contains the value of the node.
15
IEEE1609dot2CrlBaseTypesIndividualRevocation11
IEEE1609dot2IssuerIdentifier12
IEEE1609dot2BaseTypesIValue

IValue

This atomic type is used in the definition of other data structures.
81
IEEE1609dot2CrlBaseTypesJMaxGroup12
IEEE1609dot2BaseTypesKnownLatitude

KnownLatitude

The known latitudes are from -900,000,000 to +900,000,000 in 0.1 microdegree intervals.
1
IEEE1609dot2BaseTypesKnownLongitude

KnownLongitude

The known longitudes are from -1,799,999,999 to +1,800,000,000 in 0.1 microdegree intervals.
1
IEEE1609dot2CrlBaseTypesLAGroup12
IEEE1609dot2BaseTypesLaId

LaId

This structure contains a LA Identifier for use in the algorithms specified in 5.1.3.4.
3
Ieee1609Dot2Dot1LaMaInterfaceLaMaInterfacePdu

LaMaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.
1
Ieee1609Dot2Dot1LaRaInterfaceLaRaInterfacePdu

LaRaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.
1
Ieee1609Dot2Dot1ProtocolLaSsp

LaSsp

This structure defines the SSP for a linkage authority when it is authorizing Security Management messages (PSID 0x23). The SSP contains the 16 bit LA ID for that linkage authority.
12
IEEE1609dot2BaseTypesLatitude

Latitude

This type contains an INTEGER encoding an estimate of the latitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.
21
IEEE1609dot2LinkageData13
Ieee1609Dot2Dot1AcaRaInterfaceLinkageInfo

LinkageInfo

This structure contains parameters needed to generate a linkage value for a given (EE, i, j). An overview of this structure is as follows:

NOTE: See Annex D for further discussion of LAs.
  • encPlv1
    contains the EncryptedIndividualPLV from one of the LAs.
  • encPlv2
    contains the EncryptedIndividualPLV from the other LA.
11
IEEE1609dot2BaseTypesLinkageSeed

LinkageSeed

This structure contains a linkage seed value for use in the algorithms specified in 5.1.3.4.
2
IEEE1609dot2BaseTypesLinkageValue

LinkageValue

This is the individual linkage value. See 5.1.3 and 7.3 for details of use.
1
IEEE1609dot2BaseTypesLongitude

Longitude

This type contains an INTEGER encoding an estimate of the longitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.
21
Ieee1609Dot2Dot1ProtocolLopSsp

LopSsp

This structure defines the SSP for a location obscurer proxy (LOP) when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

NOTE: The LOP is in the SSP for backward compatibility reasons, and in practice, in this design the LOP does not have a certificate.
11
Ieee1609Dot2Dot1CertManagementMaInfoStatus

MaInfoStatus

This structure contains the status information for an MA's certificate.
  • psids
    contains the PSIDs associated with the misbehavior that is to be reported to that MA.
  • updated
    contains the time of the last update of the MA's certificate.
12
Ieee1609Dot2Dot1MaRaInterfaceMaRaInterfacePdu

MaRaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.
1
Ieee1609Dot2Dot1ProtocolMaSsp

MaSsp

This structure defines the SSP for a misbehavior authority when it is authorizing Security Management messages (PSID 0x23). Its parameters indicate the PSIDs associated with the misbehavior that is to be reported to that MA (see 4.1.5 for further details). The certificate containing this SSP is the MA Certificate to which an end entity should encrypt misbehavior reports related to the indicated PSIDs.
12
IEEE1609dot2MissingCrlIdentifier12
Ieee1609Dot2Dot1CertManagementMultiSignedCtl

MultiSignedCtl

This structure a certificate trust list (CTL) signed by multiple signers, the electors. An overview of this structure is as follows:
  • type
    contains the type of the multi-signed CTL. Only one type of multi-signed CTL is supported in this version of this document.
  • tbsCtl
    contains the CTL contents.
  • unsigned
    contains data that are associated with the CTL and that are not included directly in tbsCtl. For example, if the type is fullIeeeCtlType, the FullIeeeTbsCtl contains the hashes of the certificates, and the certificates themselves are contained in unsigned.
  • signatures
    contains the signatures. How the signatures are calculated is specified in the definition of ToBeSignedCtlSignature. The number of signatures shall be no more than the number of electors. Each signature shall have been generated by a distinct elector.
13
Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpdu

MultiSignedCtlSpdu

This structure is the SPDU used to send an unsecured MultiSignedCtl.
23
IEEE1609dot2BaseTypesNinetyDegreeInt

NinetyDegreeInt

The integer in the latitude field is no more than 900,000,000 and no less than −900,000,000, except that the value 900,000,001 is used to indicate the latitude was not available to the sender.
3
IEEE1609dot2BaseTypesOneEightyDegreeInt

OneEightyDegreeInt

The integer in the longitude field is no more than 1,800,000,000 and no less than −1,799,999,999, except that the value 1,800,000,001 is used to indicate that the longitude was not available to the sender.
3
IEEE1609dot2BaseTypesOpaque

Opaque

This is a synonym for ASN.1 OCTET STRING, and is used in the definition of other data structures.
2
Ieee1609Dot2Dot1ProtocolPgSsp

PgSsp

This structure defines the SSP for a policy generator when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
IEEE1609dot2PKRecipientInfo12
IEEE1609dot2BaseTypesPolygonalRegion

PolygonalRegion

This structure defines a region using a series of distinct geographic points, defined on the surface of the reference ellipsoid. The region is specified by connecting the points in the order they appear, with each pair of points connected by the geodesic on the reference ellipsoid. The polygon is completed by connecting the final point to the first point. The allowed region is the interior of the polygon and its boundary.
A point which contains an elevation component is considered to be within the polygonal region if its horizontal projection onto the reference ellipsoid lies within the region.
A valid PolygonalRegion contains at least three points. In a valid PolygonalRegion, the implied lines that make up the sides of the polygon do not intersect.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not support the number of TwoDLocation in the PolygonalRegion when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support PolygonalRegions containing at least eight TwoDLocation entries.
11
Ieee1609Dot2Dot1AcaRaInterfacePreLinkageValue

PreLinkageValue

This structure contains an individual prelinkage value. It is an octet string of length 9 octets.
1
IEEE1609dot2PreSharedKeyRecipientInfo11
IEEE1609dot2BaseTypesPsid

Psid

This type represents the PSID defined in IEEE Std 1609.12.
9
IEEE1609dot2PsidGroupPermissions12
IEEE1609dot2BaseTypesPsidSsp

PsidSsp

This structure represents the permissions that the certificate holder has with respect to data for a single application area, identified by a Psid. If the ServiceSpecificPermissions field is omitted, it indicates that the certificate holder has the default permissions associated with that Psid.

Consistency with signed SPDU. As noted in 5.1.1, consistency between the SSP and the signed SPDU is defined by rules specific to the given PSID and is out of scope for this standard.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is omitted, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • The psid field in P is equal to the psid field in A and one of the following is true:
    • The sspRange field in P indicates all.
    • The sspRange field in P indicates opaque and one of the entries in opaque is an OCTET STRING of length 0.
For consistency rules for other forms of the ssp field, see the following subclauses.
12
IEEE1609dot2BaseTypesPsidSspRange

PsidSspRange

This structure represents the certificate issuing or requesting permissions of the certificate holder with respect to one particular set of application permissions. In this structure:
  • psid
    identifies the application area.
  • sspRange
    identifies the SSPs associated with that PSID for which the holder may issue or request certificates. If sspRange is omitted, the holder may issue or request certificates for any SSP for that PSID.
12
IEEE1609dot2BaseTypesPublicEncryptionKey

PublicEncryptionKey

This structure specifies a public encryption key and the associated symmetric algorithm which is used for bulk data encryption when encrypting for that public key.
62
IEEE1609dot2BaseTypesPublicVerificationKey

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
12
Ieee1609Dot2Dot1ProtocolPublicVerificationKey

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3 of IEEE Std 1609.2a-2017.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6 of IEEE Std 1609.2-2016. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
2
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest

RaAcaCertRequest

This structure contains parameters needed to request an individual authorization certificate. An overview of this structure is as follows:

NOTE 1: In the case where the butterfly key mechanism is used to set certEncKey, the value of j is not communicated to the ACA. However, the EE that receives the certificate response can only decrypt the response if it knows j. The RA is therefore anticipated to store j so that it can be associated with the appropriate certificate response.

NOTE 2: The cracaId and crlSeries are set to the indicated values in the request. The ACA replaces these values with the appropriate values in the response.

NOTE 3: The ACA is not bound by the contents of the request and can issue certificates that are different from those requested, if so directed by policy.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of RaAcaCertRequest.
  • type
    indicates whether the request is for an explicit or implicit certificate (see 4.1.1, 4.1.3.3.1).
  • flags
    contains the flags related to the use of the butterfly key mechanism, and provides the following instructions to the ACA as to how to generate the response:
    1. If the flag butterflyExplicit is set, the request is valid only if the type field is set to explicit. In this case, the ACA uses the butterfly key derivation for explicit certificates as specified in 9.3. The field tbsCert.verifyKeyIndicator.verificationKey is used by the ACA as the cocoon public key for signing. The field privateKeyInfo in the corresponding AcaEeCertResponse is used by the EE as the random integer to recover the butterfly private key for signing.
    2. If the flag cubk is set, the request is valid only if the certEncKey field is absent. In this case, the ACA uses the compact unified variation of the butterfly key mechanism as specified in 9.3. This means that the ACA generates an AcaEeCertResponseCubkSpdu instead of an AcaEeCertResponsePrivateSpdu, and the response is valid only if the ACA certificate has the flag cubk set.
  • linkageInfo
    contains the encrypted prelinkage values needed to generate the linkage value for the certificate. If linkageInfo is present, the field tbsCert.id is of type LinkageData, where the iCert field is set to the actual i-period value and the linkage-value field is set to a dummy value to be replaced by the ACA with the actual linkage value. The encrypted prelinkage values are encrypted for the ACA by the LAs.
  • certEncKey
    is used in combination with flags.cubk to indicate the type of response that is expected from the ACA. It is as follows:
    1. Absent and flags.cubk is not set if the ACA's response doesn't need to be encrypted. In this case, the ACA responds with AcaEeCertResponsePlainSpdu.
    2. Absent and flags.cubk is set if the ACA's response is to be encrypted with the verification key from the request and not signed. In this case, the ACA responds with AcaEeCertResponseCubkSpdu.
    3. Present and flags.cubk is not set if the ACA's response is to be encrypted with certEncKey and then signed by the ACA. In this case, the ACA responds with AcaEeCertResponsePrivateSpdu.
  • tbsCert
    contains parameters of the requested certificate. The certificate type depends on the field type, as follows:
    1. If type is explicit, the request is valid only if tbsCert.verifyKeyIndicator is a verificationKey.
    2. If type is implicit, the request is valid only if tbsCert.verifyKeyIndicator is a reconstructionValue.
17
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequestFlags

RaAcaCertRequestFlags

This structure is used to convey information from the RA to the ACA about operations to be carried out when generating the certificate. For more details see the specification of RaAcaCertRequest. An overview of this structure is as follows:
1
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpdu

RaAcaCertRequestSpdu

This structure is the SPDU used to send a signed RaAcaCertRequest. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9, contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating RaSsp. The toBeSigned.certRequestPermissions field of the RA certificate shall permit the requested permissions in the raAcaCertRequest.tbsCert.appPermissions field.
4
Ieee1609Dot2Dot1CamRaInterfaceRaCamBatchRequest

RaCamBatchRequest

This structure contains parameters needed to request a blinded batch of keys for the EE during ACPC enrollment. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • eeId
    contains the EE's ID generated by the RA for the production of ACPC batch keys by the CAM.
  • periodList
    contains the list of i-periods covered by the batch.
12
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAck

RaEeCertAck

This structure is used to create the acknowledgement for certificate requests. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of RaEeCertAck.
  • requestHash
    contains the hash of the corresponding EeRaCertRequestSpdu.
  • firstI
    contains the i-value that will be associated with the first certificate or certificate batch that will be made available to the EE. The EE uses this to form the download filename for the download request as specified in 8.2.2.
  • nextDlTime
    contains the time after which the EE should connect to the RA to download the certificates.
14
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpdu

RaEeCertAckSpdu

This structure is the SPDU used to send a signed RaEeCertAck to acknowledge the receipt of an EeRaCertRequestSpdu. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.
4
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpdu

RaEeCertAndAcpcInfoSpdu

This structure is the SPDU used to create a signed .info file to be included in a certificate batch zip file as specified in 8.2. This SPDU is used if the RaEeCertInfo contains an acpcTreeId field. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.
4
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo

RaEeCertInfo

This structure is used to create the info file that accompanies a batch of certificates for download as specified in 8.2.3. It is used when certificates were generated using the butterfly key expansion mechanism specified in 9.3. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of RaEeCertInfo.
  • currentI
    contains the i-value associated with the batch of certificates.
  • requestHash
    contains the hash of the corresponding EeRaCertRequestSpdu.
  • nextDlTime
    contains the time after which the EE should connect to the RA to download the certificates.
  • acpcTreeId
    contains the ACPC Tree Id if the certificates were generated using ACPC as specified in 9.5.
15
Ieee1609Dot2Dot1ProtocolRaEeCertInfoSpdu

RaEeCertInfoSpdu

This structure is the SPDU used to create an unsigned .info file to be included in a certificate batch zip file as specified in 8.2. This SPDU is used if the RaEeCertInfo does not contain an acpcTreeId field.
3
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpdu

RaEeEnrollmentCertAckSpdu

This structure is the SPDU used to send a signed RaEeCertInfo. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.
4
Ieee1609Dot2Dot1ProtocolRaSsp

RaSsp

This structure defines the SSP for an RA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
IEEE1609dot2RecipientInfo13
IEEE1609dot2BaseTypesRectangularRegion

RectangularRegion

This structure specifies a rectangle formed by connecting in sequence: (northWest.latitude, northWest.longitude), (southEast.latitude, northWest.longitude), (southEast.latitude, southEast.longitude), and (northWest.latitude, southEast.longitude). The points are connected by lines of constant latitude or longitude. A point which contains an elevation component is considered to be within the rectangular region if its horizontal projection onto the reference ellipsoid lies within the region. A RectangularRegion is valid only if the northWest value is north and west of the southEast value, i.e., the two points cannot have equal latitude or equal longitude.
11
IEEE1609dot2BaseTypesRegionAndSubregions

RegionAndSubregions

Critical information fields: RegionAndSubregions is a critical information field as defined in 5.2.5. An implementation that does not detect or recognize the the region or subregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

In this structure:
  • region
    identifies a region within a country as specified under CountryAndRegions.
  • subregions
    identifies one or more subregions as specified under CountryAndSubregions.
12
Ieee1609Dot2Dot1ProtocolRootCaSsp

RootCaSsp

This structure defines the SSP for a root CA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.
11
Ieee1609Dot2Dot1ProtocolScmsPdu

ScmsPdu

This is the parent structure that encompasses all parent structures of interfaces defined in the SCMS. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • aca-ee
    contains the interface structures defined for interaction between the ACA and the EE.
  • aca-la
    contains the interface structures defined for interaction between the ACA and the LA.
  • aca-ma
    contains the interface structures defined for interaction between the ACA and the MA.
  • aca-ra
    contains the interface structures defined for interaction between the ACA and the RA.
  • cert
    contains the interface structures defined for certificate management.
  • eca-ee
    contains the interface structures defined for interaction between the ECA and the EE.
  • ee-ma
    contains the interface structures defined for interaction between the EE and the MA.
  • ee-ra
    contains the interface structures defined for interaction between the EE and the RA.
  • la-ma
    contains the interface structures defined for interaction between the LA and the MA.
  • la-ra
    contains the interface structures defined for interaction between the LA and the RA.
  • ma-ra
    contains the interface structures defined for interactions between the MA and the RA.
212
Ieee1609Dot2Dot1ProtocolScmsSsp

ScmsSsp

This parent structure defines the SSP for PSID 0x23 and encompasses all SSP structures defined in this document. An overview of this structure is as follows:

NOTE: The LOP is in the SSP for backward compatibility reasons, and in practice, in this design the LOP does not have a certificate.
  • elector
    contains the SSP defined for an elector.
  • root
    contains the SSP defined for a root CA.
  • pg
    contains the SSP defined for a policy generator.
  • ica
    contains the SSP defined for an intermediate CA.
  • eca
    contains the SSP defined for an enrollment CA.
  • aca
    contains the SSP defined for an authorization CA.
  • crl
    contains the SSP defined for a CRL signer.
  • dcm
    contains the SSP defined for a device configuration manager.
  • la
    contains the SSP defined for a linkage authority.
  • lop
    contains the SSP defined for a location obscurer proxy.
  • ma
    contains the SSP defined for a misbehavior authority.
  • ra
    contains the SSP defined for a registration authority.
  • ee
    contains the SSP defined for an end entity.
  • dc
    contains the SSP defined for a distribution center.
14
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest

ScopedCertificateRequest

This structure defines the all certificate request structures as a scoped version of the ScmsPdu.
25
IEEE1609dot2CrlSecuredCrl13
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid

SecurityMgmtPsid

This PSID, 0x23, identifies security management activities as defined in this document.
91
IEEE1609dot2SequenceOfCertificate41
Ieee1609Dot2Dot1CertManagementSequenceOfCrlInfoStatus

SequenceOfCrlInfoStatus

This type is used for clarity of definitions.
11
Ieee1609Dot2Dot1CertManagementSequenceOfCtlInfoStatus

SequenceOfCtlInfoStatus

This type is used for clarity of definitions.
11
IEEE1609dot2CrlBaseTypesSequenceOfGroupCrlEntry11
IEEE1609dot2CrlBaseTypesSequenceOfHashBasedRevocationInfo11
IEEE1609dot2BaseTypesSequenceOfHashedId3

SequenceOfHashedId3

This type is used for clarity of definitions.
11
IEEE1609dot2BaseTypesSequenceOfIdentifiedRegion

SequenceOfIdentifiedRegion

This type is used for clarity of definitions.
11
IEEE1609dot2CrlBaseTypesSequenceOfIMaxGroup11
IEEE1609dot2CrlBaseTypesSequenceOfIndividualRevocation11
IEEE1609dot2CrlBaseTypesSequenceOfJMaxGroup11
IEEE1609dot2CrlBaseTypesSequenceOfLAGroup11
Ieee1609Dot2Dot1CertManagementSequenceOfMaInfoStatus

SequenceOfMaInfoStatus

This type is used for clarity of definitions.
11
IEEE1609dot2BaseTypesSequenceOfOctetString

SequenceOfOctetString

This type is used for clarity of definitions.
1
IEEE1609dot2BaseTypesSequenceOfPsid

SequenceOfPsid

This type is used for clarity of definitions.
21
IEEE1609dot2SequenceOfPsidGroupPermissions21
IEEE1609dot2BaseTypesSequenceOfPsidSsp

SequenceOfPsidSsp

This type is used for clarity of definitions.
21
IEEE1609dot2BaseTypesSequenceOfPsidSspRange

SequenceOfPsidSspRange

This type is used for clarity of definitions.
11
IEEE1609dot2SequenceOfRecipientInfo11
IEEE1609dot2BaseTypesSequenceOfRectangularRegion

SequenceOfRectangularRegion

This type is used for clarity of definitions.
11
IEEE1609dot2BaseTypesSequenceOfRegionAndSubregions

SequenceOfRegionAndSubregions

This type is used for clarity of definitions.
11
IEEE1609dot2BaseTypesSequenceOfUint16

SequenceOfUint16

This type is used for clarity of definitions.
11
IEEE1609dot2BaseTypesSequenceOfUint8

SequenceOfUint8

This type is used for clarity of definitions.
11
Ieee1609Dot2Dot1ProtocolSequenceOfX509Certificate

SequenceOfX509Certificate

This type is used for clarity of definitions.
21
IEEE1609dot2BaseTypesServiceSpecificPermissions

ServiceSpecificPermissions

This structure represents the Service Specific Permissions (SSP) relevant to a given entry in a PsidSsp. The meaning of the SSP is specific to the associated Psid. SSPs may be PSID-specific octet strings or bitmap-based. See Annex C for further discussion of how application specifiers may choose which SSP form to use.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque and one of the entries in the opaque field in P is an OCTET STRING identical to the opaque field in A.
For consistency rules for other types of ServiceSpecificPermissions, see the following subclauses.
11
IEEE1609dot2BaseTypesSignature

Signature

This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
22
Ieee1609Dot2Dot1ProtocolSignature

Signature

This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate.
22
Ieee1609Dot2Dot1AcpcSignedAprvBinaryTree

SignedAprvBinaryTree

This is used to wrap an AprvBinaryTree in an Ieee1609Dot2Data for transmission if the policy is that the AprvBinaryTree be signed. See 9.5.6 for discussion.
3
Ieee1609Dot2Dot1ProtocolSignedCertificateRequest

SignedCertificateRequest

This structure defines the format of a signed certificate request. An overview of this structure is as follows:

The signature is generated on the hash of this structure, obtained per the rules specified for hashing data objects in 5.3.1 of IEEE Std 1609.2a-2017, with the parameter Data Input equal to the C-OER encoding of tbsRequest, and the parameter Signer Identifier Input equal to the signer's enrollment certificate.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tbsRequest
    contains the certificate request information that is signed by the recipient.
  • signer
    denotes the signing entity's identifier.
  • signature
    contains the request sender's signature.
14
IEEE1609dot2SignedData14
IEEE1609dot2SignedDataPayload12
Ieee1609Dot2Dot1AcpcSignedIndividualAprv

SignedIndividualAprv

This is used to wrap an IndividualAprv in an Ieee1609Dot2Data for transmission if the policy is that the IndividualAprv be signed. See 9.5.6 for discussion.
3
Ieee1609Dot2Dot1ProtocolSignedX509CertificateRequest

SignedX509CertificateRequest

This structure contains a certificate request signed with an ITU-T X.509 certificate. The only type of certificate request signed with an ITU-T X.509 certificate supported in this document is an authorization certificate request. An overview of this structure is as follows:

The signature is generated on the hash of this structure, obtained per the rules specified for hashing data objects in 5.3.1 of IEEE Std 1609.2a-2017, with the parameter Data Input equal to the C-OER encoding of tbsRequest, and the parameter Signer Identifier Input equal to the signer's certificate, that is, the ITU-T X.509 certificate contained in the OCTET STRING indicated by the first X509Certificate in signer.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tbsRequest
    contains the certificate request information that is signed by the recipient.
  • signer
    denotes the signing entity's identifier.
  • signature
    contains the request sender's signature.
14
IEEE1609dot2SignerIdentifier42
Ieee1609Dot2Dot1ProtocolSignerSelf

SignerSelf

This structure is used to indicate a SignerIdentifier of type self.
11
Ieee1609Dot2Dot1ProtocolSignerSingleCert

SignerSingleCert

This structure is used to indicate a SignerIdentifier with a certificate chain of size 1.
42
Ieee1609Dot2Dot1ProtocolSignerSingleX509Cert

SignerSingleX509Cert

This structure is used to indicate an X509SignerIdentifier with a certificate chain of size 1.
12
IEEE1609dot2BaseTypesSspRange

SspRange

This structure identifies the SSPs associated with a PSID for which the holder may issue or request certificates.

Consistency with issuing certificate.

If a certificate has a PsidSspRange A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) a PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque, and the sspRange field in A indicates opaque, and every OCTET STRING within the opaque in A is a duplicate of an OCTET STRING within the opaque in P.
If a certificate has a PsidSspRange A for which the ssp field is all, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the psid field in P is equal to the psid field in A and the sspRange field in P indicates all.
For consistency rules for other types of SspRange, see the following subclauses.

NOTE: The choice “all” may also be indicated by omitting the SspRange in the enclosing PsidSspRange structure. Omitting the SspRange is preferred to explicitly indicating “all”.
12
IEEE1609dot2BaseTypesSubjectAssurance

SubjectAssurance

This field contains the certificate holder’s assurance level, which indicates the security of both the platform and storage of secret keys as well as the confidence in this assessment.

This field is encoded as defined in Table 1, where “A” denotes bit fields specifying an assurance level, “R” reserved bit fields, and “C” bit fields specifying the confidence.

Table 1: Bitwise encoding of subject assurance
Bit number 7 6 5 4 3 2 1 0
Interpretation A A A R R R C C
In Table 1, bit number 0 denotes the least significant bit. Bit 7 to bit 5 denote the device’s assurance levels, bit 4 to bit 2 are reserved for future use, and bit 1 and bit 0 denote the confidence.

The specification of these assurance levels as well as the encoding of the confidence levels is outside the scope of the present document. It can be assumed that a higher assurance value indicates that the holder is more trusted than the holder of a certificate with lower assurance value and the same confidence value.

NOTE: This field was originally specified in ETSI TS 103 097 and future uses of this field are anticipated to be consistent with future versions of that document.
2
IEEE1609dot2SubjectPermissions11
IEEE1609dot2BaseTypesSymmAlgorithm

SymmAlgorithm

This enumerated value indicates supported symmetric algorithms. The only symmetric algorithm supported in this version of this standard is AES-CCM as specified in 5.3.7.
1
IEEE1609dot2SymmetricCiphertext21
IEEE1609dot2BaseTypesSymmetricEncryptionKey

SymmetricEncryptionKey

This structure provides the key bytes for use with an identified symmetric algorithm. The only supported symmetric algorithm is AES-128 in CCM mode as specified in 5.3.7.
1
IEEE1609dot2SymmRecipientInfo12
IEEE1609dot2TestCertificate1
IEEE1609dot2BaseTypesThreeDLocation

ThreeDLocation

This structure contains an estimate of 3D location. The details of the structure are given in the definitions of the individual fields below.

NOTE: The units used in this data structure are consistent with the location data structures used in SAE J2735, though the encoding is incompatible.
13
IEEE1609dot2BaseTypesTime32

Time32

This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 January, 2004.
181
IEEE1609dot2BaseTypesTime64

Time64

This type gives the number of (TAI) microseconds since 00:00:00 UTC, 1 January, 2004.
11
IEEE1609dot2ToBeSignedCertificate210
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate

ToBeSignedCertificate

This is the ToBeSignedCertificate structure from IEEE Std 1609.2, extended to support operations in this document. The fields in this structure that are defined in IEEE Std 1609.2 have the same semantics in this document as they do in IEEE Std 1609.2. The new fields in this document are defined as follows:
  • flags
    indicates additional yes/no properties of the certificate holder. The only bit with defined semantics in this string is cubk. If set, the cubk bit indicates that the certificate holder supports the compact unified butterfly key response. If this field is present at least one of the bits in the field shall be nonzero.
210
Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignature

ToBeSignedCtlSignature

This structure contains the CTL-instance-specific information used to generate a signature on the CTL. An overview of this structure is as follows:
  • electorGroupId
    contains the ElectorGroupId that appears in the CTL.
  • ctlType
    identifies the type of the CTL.
  • sequenceNumber
    contains the sequence number of the CTL being signed.
  • tbsCtlHash
    contains the hash of the C-OER encoded tbsCtl field in the MultiSignedCtl. The hash is calculated using the same hash algorithm that is used to generate the signature on this structure when it is contained in a CtlSignatureSpdu. This algorithm can be determined from the headers of the CtlSignatureSpdu.
14
IEEE1609dot2ToBeSignedData12
IEEE1609dot2CrlBaseTypesToBeSignedHashIdCrl12
IEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrl14
IEEE1609dot2BaseTypesTwoDLocation

TwoDLocation

This structure is used to define validity regions for use in certificates. The latitude and longitude fields contain the latitude and longitude as defined above.

NOTE: This data structure is consistent with the location encoding used in SAE J2735, except that values 900 000 001 for latitude (used to indicate that the latitude was not available) and 1 800 000 001 for longitude (used to indicate that the longitude was not available) are not valid.
32
IEEE1609dot2BaseTypesUint16

Uint16

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 65,535, i.e., (hex)ff ff.
10
IEEE1609dot2BaseTypesUint3

Uint3

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 7, i.e., (hex)07.
IEEE1609dot2BaseTypesUint32

Uint32

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 4,294,967,295, i.e., (hex)ff ff ff ff.
2
IEEE1609dot2BaseTypesUint64

Uint64

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 18,446,744,073,709,551,615, i.e., (hex)ff ff ff ff ff ff ff ff.
1
IEEE1609dot2BaseTypesUint8

Uint8

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 255, i.e., (hex)ff.
37
IEEE1609dot2BaseTypesUnknownLatitude

UnknownLatitude

The value 900,000,001 indicates that the latitude was not available to the sender.
1
IEEE1609dot2BaseTypesUnknownLongitude

UnknownLongitude

The value 1,800,000,001 indicates that the longitude was not available to the sender.
1
Ieee1609Dot2Dot1AcpcUnsecuredAprvBinaryTree

UnsecuredAprvBinaryTree

This is used to wrap an AprvBinaryTree in an Ieee1609Dot2Data for transmission if the policy is that the AprvBinaryTree need not be signed. See 9.5.6 for discussion.
2
IEEE1609dot2BaseTypesValidityPeriod

ValidityPeriod

This structure gives the validity period of a certificate. The start of the validity period is given by start and the end is given by start + duration. In this structure:
  • start
    contains the starting time of the validity period.
  • duration
    contains the duration of the validity period.
22
IEEE1609dot2VerificationKeyIndicator22
Ieee1609Dot2Dot1ProtocolX509Certificate

X509Certificate

This structure is a wrapper for an ITU-T X.509 certificate.

NOTE: ITU-T X.509 certificates are encoded with the ASN.1 DER rather than the OER used in this document and so cannot be "directly" imported into these structures.
1
Ieee1609Dot2Dot1ProtocolX509SignerIdentifier

X509SignerIdentifier

This structure identifies an ITU-T X.509 certificate used to sign a signed data structure. The only data structure currently defined that can be signed by an ITU-T X.509 certificate is SignedX509CertificateRequest.
21
Parameterized Type Assignments Table
Parameterized Type Assignments Table
Parameterized Type Assignments
Module nameType nameDescriptionParametersNumber of
incoming
references
Number of
outgoing
references
NameType or ClassDescription
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted

Ieee1609Dot2Data-Encrypted

This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
  • Tbe
    is first encrypted and the resulting ciphertext is used as input to the encryptedData field.
Tbe51
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpenSigned

Ieee1609Dot2Data-EncryptedOpenSigned

This structure defines a parameterized type for creating an encrypted then signed data as a subtype of Ieee1609Dot2Data. Unlike Ieee1609Dot2Data-EncryptedSigned, this structure does not specify the contents to be encrypted. This structure is intended for use in misbehavior report upload where the encrypted data is received by the RA that does not know the contents.
Psid12
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedSigned

Ieee1609Dot2Data-EncryptedSigned

This structure defines a parameterized type for creating an encrypted then signed data as a subtype of Ieee1609Dot2Data.
Tbes12
Psid
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed

Ieee1609Dot2Data-Signed

This structure defines a parameterized type for creating a signed data as a subtype of Ieee1609Dot2Data.
Tbs122
Psid
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequest

Ieee1609Dot2Data-SignedCertRequest

This structure defines a parameterized type for creating a signed certificate request as a subtype of Ieee1609Dot2Data.
Tbscr32
Signer
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncrypted

Ieee1609Dot2Data-SignedEncrypted

This structure defines a parameterized type for creating a signed then encrypted data as a subtype of Ieee1609Dot2Data.
Tbse12
Psid
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedCertRequest

Ieee1609Dot2Data-SignedEncryptedCertRequest

This structure defines a parameterized type for creating a signed then encrypted certificate request as a subtype of Ieee1609Dot2Data.
Tbstecr22
Signer
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedX509AuthenticatedCertRequest

Ieee1609Dot2Data-SignedX509AuthenticatedCertRequest

This structure defines a parameterized type for creating a certificate request, signed with an ITU-T X.509 certificate, as a subtype of Ieee1609Dot2Data. It makes use of the extension of Ieee1609Dot2Content defined in 11.2.3.
Tbscr12
Signer
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SymmEncryptedSingleRecipient

Ieee1609Dot2Data-SymmEncryptedSingleRecipient

This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
  • Tbe
    is first encrypted and the resulting ciphertext is used as input to the encryptedData field.
Tbe11
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured

Ieee1609Dot2Data-Unsecured

This structure defines a parameterized type for creating an unsecured data as a subtype of Ieee1609Dot2Data.
Tbu71
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped

ScmsPdu-Scoped

This structure defines a parameterized type for creating a scoped data as a subtype of ScmsPdu.
Pdu221
Value Assignments Table
Value Assignments Table
Value Assignments
Module nameValue nameTypeDescriptionNumber of
incoming
references
Number of
outgoing
references
Ieee1609Dot2Dot1CertManagementfullIeeeCtlIeee1609dot2dot1MsctlType21
Class Assignments Table
Class Assignments Table
Class Assignments
Module nameClass nameDescriptionNumber of
incoming
references
Number of
outgoing
references
Ieee1609Dot2Dot1CertManagementIEEE-1609-2-1-MSCTL

IEEE-1609-2-1-MSCTL

This is the ASN.1 Information Object Class used to associate multisigned CTL type identifiers, CTL contents, and unsigned material. In this structure:
  • type
    contains the type, an Ieee1609dot2dot1MsctlType.
  • TbsCtl
    contains the CTL contents.
  • UnsignedCtlMaterial
    contains unsigned material associated with the CTL, as specified in 7.3.11.
21
Object Set Assignments Table
Object Set Assignments Table
Object Set Assignments
Module nameObject set nameClassDescriptionNumber of
incoming
references
Number of
outgoing
references
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1CtlsIEEE-1609-2-1-MSCTL

Ieee1609dot2dot1Ctls

This is the Information Object Set containing the instances of the IEEE-1609-2-1-MSCTL class that are specified for use. Only one instance is specified for use in this version of this document.
14
Type Assignments Cross Reference Table
Type Assignments Cross Reference Table
Type Assignments Cross Reference
Module nameType nameIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
Ieee1609Dot2Dot1AcaEeInterfaceAcaEeCertResponseIeee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePdu1IEEE1609dot2Certificate1
IEEE1609dot2BaseTypesTime321
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolAcaEeCertResponseCubkSpduIeee1609Dot2Dot1AcaRaInterfaceAcaResponse1Ieee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePlainSpduIeee1609Dot2Dot1AcaRaInterfaceAcaResponse1Ieee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpduIeee1609Dot2Dot1AcaRaInterfaceAcaResponse1Ieee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedSigned1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePduIeee1609Dot2Dot1ProtocolAcaEeCertResponseCubkSpdu1Ieee1609Dot2Dot1AcaEeInterfaceAcaEeCertResponse1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePlainSpdu1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpdu1
Ieee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1AcaLaInterfaceAcaLaInterfacePduIeee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1AcaMaInterfaceAcaMaInterfacePduIeee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponseIeee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu1Ieee1609Dot2Dot1AcaRaInterfaceAcaResponse1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesTime321
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolAcaRaCertResponseSpduIeee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePduIeee1609Dot2Dot1ProtocolAcaRaCertResponseSpdu1Ieee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponse1
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpdu1Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest1
Ieee1609Dot2Dot1AcaRaInterfaceAcaResponseIeee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponse1Ieee1609Dot2Dot1ProtocolAcaEeCertResponseCubkSpdu1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePlainSpdu1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpdu1
Ieee1609Dot2Dot1ProtocolAcaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1AcpcAcpcNodeValueIeee1609Dot2Dot1AcpcAprvBinaryTree1
Ieee1609Dot2Dot1AcpcIndividualAprv1
Ieee1609Dot2Dot1AcpcAcpcPduIeee1609Dot2Dot1AcpcSignedAprvBinaryTree1Ieee1609Dot2Dot1AcpcAprvBinaryTree1
Ieee1609Dot2Dot1AcpcSignedIndividualAprv1Ieee1609Dot2Dot1AcpcIndividualAprv1
Ieee1609Dot2Dot1AcpcUnsecuredAprvBinaryTree1
Ieee1609Dot2Dot1AcpcAcpcPsidIeee1609Dot2Dot1AcpcSignedAprvBinaryTree1IEEE1609dot2BaseTypesPsid1
Ieee1609Dot2Dot1AcpcSignedIndividualAprv1
Ieee1609Dot2Dot1ProtocolAcpcSspIeee1609Dot2Dot1ProtocolCamSsp1
Ieee1609Dot2Dot1AcpcAcpcTreeIdIeee1609Dot2Dot1AcpcAprvBinaryTree1
Ieee1609Dot2Dot1AcpcAprvHashCalculationInput1
Ieee1609Dot2Dot1ProtocolCamSsp1
Ieee1609Dot2Dot1AcpcIndividualAprv1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo1
Ieee1609Dot2Dot1EeRaInterfaceAdditionalParamsIeee1609Dot2Dot1EeRaInterfaceEeRaCertRequest1Ieee1609Dot2Dot1EeRaInterfaceButterflyExpansion2
Ieee1609Dot2Dot1EeRaInterfaceButterflyParamsOriginal1
IEEE1609dot2BaseTypesPublicEncryptionKey1
IEEE1609dot2AesCcmCiphertextIEEE1609dot2SymmetricCiphertext1IEEE1609dot2BaseTypesOpaque1
Ieee1609Dot2Dot1ProtocolAnyMbrPsidIeee1609Dot2Dot1ProtocolEeRaEncryptedSignedMisbehaviorReportSpdu1Ieee1609Dot2Dot1ProtocolBaseMbrPsid1
IEEE1609dot2BaseTypesPsid1
Ieee1609Dot2Dot1AcpcAprvBinaryTreeIeee1609Dot2Dot1AcpcAcpcPdu1Ieee1609Dot2Dot1AcpcAcpcNodeValue1
Ieee1609Dot2Dot1AcpcAcpcTreeId1
IEEE1609dot2BaseTypesHashAlgorithm1
IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesTime321
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1AcpcAprvHashCalculationInputIeee1609Dot2Dot1AcpcAcpcTreeId1
IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolBaseMbrPsidIeee1609Dot2Dot1ProtocolAnyMbrPsid1IEEE1609dot2BaseTypesPsid1
IEEE1609dot2BaseTypesBasePublicEncryptionKeyIEEE1609dot2BaseTypesPublicEncryptionKey1IEEE1609dot2BaseTypesEccP256CurvePoint2
IEEE1609dot2BaseTypesBitmapSspIEEE1609dot2BaseTypesServiceSpecificPermissions1
IEEE1609dot2BaseTypesBitmapSspRangeIEEE1609dot2BaseTypesSspRange1
Ieee1609Dot2Dot1CamRaInterfaceBlindedKeyIeee1609Dot2Dot1CamRaInterfaceCamRaBatchResponse1IEEE1609dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2Dot1EeRaInterfaceButterflyExpansionIeee1609Dot2Dot1EeRaInterfaceAdditionalParams2
Ieee1609Dot2Dot1EeRaInterfaceButterflyParamsOriginal2
Ieee1609Dot2Dot1EeRaInterfaceButterflyParamsOriginalIeee1609Dot2Dot1EeRaInterfaceAdditionalParams1Ieee1609Dot2Dot1EeRaInterfaceButterflyExpansion2
IEEE1609dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2Dot1CamRaInterfaceCamRaBatchResponseIeee1609Dot2Dot1CamRaInterfaceCamRaInterfacePdu1Ieee1609Dot2Dot1CamRaInterfaceBlindedKey1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1CamRaInterfaceCamRaInterfacePduIeee1609Dot2Dot1CamRaInterfaceCamRaBatchResponse1
Ieee1609Dot2Dot1CamRaInterfaceRaCamBatchRequest1
Ieee1609Dot2Dot1ProtocolCamSspIeee1609Dot2Dot1ProtocolAcpcSsp1Ieee1609Dot2Dot1AcpcAcpcTreeId1
IEEE1609dot2CertificateIeee1609Dot2Dot1AcaEeInterfaceAcaEeCertResponse1IEEE1609dot2CertificateBase1
Ieee1609Dot2Dot1CertManagementCertificateChain1IEEE1609dot2ExplicitCertificate1
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponse1IEEE1609dot2ImplicitCertificate1
IEEE1609dot2HeaderInfo1
IEEE1609dot2SequenceOfCertificate1
IEEE1609dot2TestCertificate1
IEEE1609dot2CertificateBaseIEEE1609dot2Certificate1IEEE1609dot2CertificateType1
IEEE1609dot2ExplicitCertificate1IEEE1609dot2IssuerIdentifier1
IEEE1609dot2ImplicitCertificate1IEEE1609dot2BaseTypesSignature1
IEEE1609dot2ToBeSignedCertificate1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1CertManagementCertificateChainIeee1609Dot2Dot1CertManagementCertManagementPdu1IEEE1609dot2Certificate1
Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpdu1
Ieee1609Dot2Dot1ProtocolCertificateChainSpduIeee1609Dot2Dot1CertManagementCertManagementPdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
IEEE1609dot2CertificateIdIEEE1609dot2ToBeSignedCertificate1IEEE1609dot2BaseTypesHostname1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1IEEE1609dot2LinkageData1
Ieee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpduIeee1609Dot2Dot1CertManagementCertManagementPdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1CertManagementCertificateManagementInfoStatusIeee1609Dot2Dot1CertManagementCertManagementPdu1Ieee1609Dot2Dot1CertManagementSequenceOfCrlInfoStatus1
Ieee1609Dot2Dot1CertManagementSequenceOfCtlInfoStatus1
Ieee1609Dot2Dot1CertManagementSequenceOfMaInfoStatus1
IEEE1609dot2BaseTypesTime322
IEEE1609dot2CertificateTypeIEEE1609dot2CertificateBase1
Ieee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequest1
Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequest1
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1
Ieee1609Dot2Dot1CertManagementCertManagementPduIeee1609Dot2Dot1ProtocolCertificateChainSpdu1Ieee1609Dot2Dot1CertManagementCertificateChain1
Ieee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpdu1Ieee1609Dot2Dot1CertManagementCertificateManagementInfoStatus1
Ieee1609Dot2Dot1ProtocolCompositeCrlSpdu1Ieee1609Dot2Dot1CertManagementCompositeCrl1
Ieee1609Dot2Dot1ProtocolCtlSignatureSpdu1Ieee1609Dot2Dot1CertManagementMultiSignedCtl1
Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpdu1Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignature1
Ieee1609Dot2Dot1ProtocolScmsPdu1
IEEE1609dot2BaseTypesCircularRegionIEEE1609dot2BaseTypesGeographicRegion1IEEE1609dot2BaseTypesTwoDLocation1
IEEE1609dot2BaseTypesUint161
Ieee1609Dot2Dot1CertManagementCompositeCrlIeee1609Dot2Dot1CertManagementCertManagementPdu1Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpdu1
IEEE1609dot2CrlSecuredCrl1
Ieee1609Dot2Dot1ProtocolCompositeCrlSpduIeee1609Dot2Dot1CertManagementCertManagementPdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
IEEE1609dot2CountersignatureIEEE1609dot2Ieee1609Dot2Data1
IEEE1609dot2BaseTypesCountryAndRegionsIEEE1609dot2BaseTypesIdentifiedRegion1IEEE1609dot2BaseTypesCountryOnly1
IEEE1609dot2BaseTypesSequenceOfUint81
IEEE1609dot2BaseTypesCountryAndSubregionsIEEE1609dot2BaseTypesIdentifiedRegion1IEEE1609dot2BaseTypesCountryOnly1
IEEE1609dot2BaseTypesSequenceOfRegionAndSubregions1
IEEE1609dot2BaseTypesCountryOnlyIEEE1609dot2BaseTypesCountryAndRegions1IEEE1609dot2BaseTypesUint161
IEEE1609dot2BaseTypesCountryAndSubregions1
IEEE1609dot2BaseTypesIdentifiedRegion1
IEEE1609dot2CrlBaseTypesCrlContentsIEEE1609dot2CrlSecuredCrl1IEEE1609dot2CrlBaseTypesCrlPriorityInfo1
IEEE1609dot2BaseTypesCrlSeries1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesTime322
IEEE1609dot2CrlBaseTypesToBeSignedHashIdCrl2
IEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrl2
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1CertManagementCrlInfoStatusIeee1609Dot2Dot1CertManagementSequenceOfCrlInfoStatus1IEEE1609dot2BaseTypesCrlSeries1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesTime321
IEEE1609dot2CrlBaseTypesCrlPriorityInfoIEEE1609dot2CrlBaseTypesCrlContents1IEEE1609dot2BaseTypesUint81
IEEE1609dot2CrlCrlPsidIEEE1609dot2CrlSecuredCrl1IEEE1609dot2BaseTypesPsid1
IEEE1609dot2BaseTypesCrlSeriesIEEE1609dot2CrlBaseTypesCrlContents1IEEE1609dot2BaseTypesUint161
Ieee1609Dot2Dot1CertManagementCrlInfoStatus1
IEEE1609dot2MissingCrlIdentifier1
IEEE1609dot2ToBeSignedCertificate1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
Ieee1609Dot2Dot1ProtocolCrlSignerSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1CertManagementCtlElectorEntryIeee1609Dot2Dot1CertManagementFullIeeeTbsCtl2Ieee1609Dot2Dot1CertManagementHashedId481
Ieee1609Dot2Dot1CertManagementCtlInfoStatusIeee1609Dot2Dot1CertManagementSequenceOfCtlInfoStatus1Ieee1609Dot2Dot1CertManagementCtlSequenceNumber1
Ieee1609Dot2Dot1CertManagementElectorGroupId1
IEEE1609dot2BaseTypesTime321
Ieee1609Dot2Dot1CertManagementCtlRootCaEntryIeee1609Dot2Dot1CertManagementFullIeeeTbsCtl2Ieee1609Dot2Dot1CertManagementHashedId321
Ieee1609Dot2Dot1CertManagementCtlSequenceNumberIeee1609Dot2Dot1CertManagementCtlInfoStatus1
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl1
Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignature1
Ieee1609Dot2Dot1ProtocolCtlSignatureSpduIeee1609Dot2Dot1CertManagementMultiSignedCtl1Ieee1609Dot2Dot1CertManagementCertManagementPdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1ProtocolDcmSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolDcSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesDurationIEEE1609dot2BaseTypesValidityPeriod1IEEE1609dot2BaseTypesUint167
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponseIeee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu1IEEE1609dot2Certificate1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2SequenceOfCertificate1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolEcaEeCertResponseSpduIeee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePduIeee1609Dot2Dot1ProtocolEcaEeCertResponseSpdu1Ieee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponse1
Ieee1609Dot2Dot1ProtocolEeEcaCertRequestSpdu1Ieee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest1
Ieee1609Dot2Dot1ProtocolEcaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesEccP256CurvePointIEEE1609dot2BaseTypesBasePublicEncryptionKey2
Ieee1609Dot2Dot1CamRaInterfaceBlindedKey1
IEEE1609dot2BaseTypesEcdsaP256Signature1
IEEE1609dot2BaseTypesEciesP256EncryptedKey1
IEEE1609dot2BaseTypesPublicVerificationKey2
Ieee1609Dot2Dot1ProtocolPublicVerificationKey2
IEEE1609dot2VerificationKeyIndicator1
IEEE1609dot2BaseTypesEccP384CurvePointIEEE1609dot2BaseTypesEcdsaP384Signature1
IEEE1609dot2BaseTypesPublicVerificationKey1
Ieee1609Dot2Dot1ProtocolPublicVerificationKey2
IEEE1609dot2BaseTypesEcdsaP256SignatureIEEE1609dot2BaseTypesSignature2IEEE1609dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2Dot1ProtocolSignature2
IEEE1609dot2BaseTypesEcdsaP384SignatureIEEE1609dot2BaseTypesSignature1IEEE1609dot2BaseTypesEccP384CurvePoint1
Ieee1609Dot2Dot1ProtocolSignature2
IEEE1609dot2BaseTypesEciesP256EncryptedKeyIEEE1609dot2EncryptedDataEncryptionKey2IEEE1609dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequestIeee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu1IEEE1609dot2CertificateType1
IEEE1609dot2BaseTypesTime321
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolEeEcaCertRequestSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1Ieee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSignerSelf1
Ieee1609Dot2Dot1EeMaInterfaceEeMaInterfacePduIeee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpduIeee1609Dot2Dot1ProtocolEeRaCertRequestSpdu1Ieee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSignerSingleCert1
Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequestIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1Ieee1609Dot2Dot1EeRaInterfaceAdditionalParams1
IEEE1609dot2CertificateType1
IEEE1609dot2BaseTypesTime321
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolEeRaCertRequestSpduIeee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu1
IEEE1609dot2Ieee1609Dot2Data1
Ieee1609Dot2Dot1EeRaInterfaceEeRaDownloadRequestIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1IEEE1609dot2BaseTypesTime321
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestPlainSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncrypted1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1ProtocolEeRaEncryptedMisbehaviorReportSpduIeee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpen1
Ieee1609Dot2Dot1ProtocolEeRaEncryptedSignedMisbehaviorReportSpduIeee1609Dot2Dot1ProtocolAnyMbrPsid1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpenSigned1
Ieee1609Dot2Dot1EeRaInterfaceEeRaInterfacePduIeee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpdu1Ieee1609Dot2Dot1ProtocolEeEcaCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestPlainSpdu1Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequest1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestSpdu1Ieee1609Dot2Dot1EeRaInterfaceEeRaDownloadRequest1
Ieee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpdu1Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAck1
Ieee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu1Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo1
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertInfoSpdu1
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpdu1
Ieee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest2
Ieee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSignerSingleCert1
Ieee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpduIeee1609Dot2Dot1ProtocolEeRaCertRequestSpdu1Ieee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedX509AuthenticatedCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSignerSingleX509Cert1
Ieee1609Dot2Dot1ProtocolEeSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1CertManagementElectorGroupIdIeee1609Dot2Dot1CertManagementCtlInfoStatus1
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl1
Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignature1
Ieee1609Dot2Dot1ProtocolElectorSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesElevationIEEE1609dot2BaseTypesThreeDLocation1IEEE1609dot2BaseTypesUint161
IEEE1609dot2EncryptedDataIEEE1609dot2Ieee1609Dot2Content1IEEE1609dot2SequenceOfRecipientInfo1
IEEE1609dot2SymmetricCiphertext1
IEEE1609dot2EncryptedDataEncryptionKeyIEEE1609dot2PKRecipientInfo1IEEE1609dot2BaseTypesEciesP256EncryptedKey2
Ieee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLVIeee1609Dot2Dot1AcaRaInterfaceLinkageInfo2Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SymmEncryptedSingleRecipient1
IEEE1609dot2BaseTypesLaId1
Ieee1609Dot2Dot1AcaRaInterfacePreLinkageValue1
IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesEncryptionKeyIEEE1609dot2HeaderInfo1IEEE1609dot2BaseTypesPublicEncryptionKey1
IEEE1609dot2BaseTypesSymmetricEncryptionKey1
IEEE1609dot2EndEntityTypeIEEE1609dot2PsidGroupPermissions1
IEEE1609dot2ExplicitCertificateIEEE1609dot2Certificate1IEEE1609dot2CertificateBase1
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtlIeee1609Dot2Dot1CertManagementIeee1609dot2dot1Ctls1Ieee1609Dot2Dot1CertManagementCtlElectorEntry2
Ieee1609Dot2Dot1CertManagementCtlRootCaEntry2
Ieee1609Dot2Dot1CertManagementCtlSequenceNumber1
Ieee1609Dot2Dot1CertManagementElectorGroupId1
Ieee1609Dot2Dot1CertManagementfullIeeeCtl1
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1MsctlType1
IEEE1609dot2BaseTypesTime321
IEEE1609dot2BaseTypesGeographicRegionIEEE1609dot2ToBeSignedCertificate1IEEE1609dot2BaseTypesCircularRegion1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1IEEE1609dot2BaseTypesPolygonalRegion1
IEEE1609dot2BaseTypesSequenceOfIdentifiedRegion1
IEEE1609dot2BaseTypesSequenceOfRectangularRegion1
IEEE1609dot2CrlBaseTypesGroupCrlEntryIEEE1609dot2CrlBaseTypesSequenceOfGroupCrlEntry1IEEE1609dot2BaseTypesLaId2
IEEE1609dot2BaseTypesLinkageSeed2
IEEE1609dot2BaseTypesUint161
IEEE1609dot2BaseTypesGroupLinkageValueIEEE1609dot2LinkageData1
IEEE1609dot2BaseTypesHashAlgorithmIeee1609Dot2Dot1AcpcAprvBinaryTree1
IEEE1609dot2IssuerIdentifier1
Ieee1609Dot2Dot1ProtocolSignedCertificateRequest1
IEEE1609dot2SignedData1
Ieee1609Dot2Dot1ProtocolSignedX509CertificateRequest1
IEEE1609dot2CrlBaseTypesHashBasedRevocationInfoIEEE1609dot2CrlBaseTypesSequenceOfHashBasedRevocationInfo1IEEE1609dot2BaseTypesHashedId101
IEEE1609dot2BaseTypesTime321
IEEE1609dot2HashedDataIEEE1609dot2SignedDataPayload1
IEEE1609dot2BaseTypesHashedId10IEEE1609dot2CrlBaseTypesHashBasedRevocationInfo1
IEEE1609dot2BaseTypesHashedId3IEEE1609dot2HeaderInfo1
IEEE1609dot2MissingCrlIdentifier1
IEEE1609dot2BaseTypesSequenceOfHashedId31
IEEE1609dot2ToBeSignedCertificate1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
Ieee1609Dot2Dot1CertManagementHashedId32Ieee1609Dot2Dot1CertManagementCtlRootCaEntry1
Ieee1609Dot2Dot1CertManagementHashedId48Ieee1609Dot2Dot1CertManagementCtlElectorEntry1
Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignature1
IEEE1609dot2BaseTypesHashedId8Ieee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponse1
Ieee1609Dot2Dot1CamRaInterfaceCamRaBatchResponse1
IEEE1609dot2CrlBaseTypesCrlContents1
Ieee1609Dot2Dot1CertManagementCrlInfoStatus1
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponse1
IEEE1609dot2IssuerIdentifier2
IEEE1609dot2PKRecipientInfo1
IEEE1609dot2PreSharedKeyRecipientInfo1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAck1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo1
IEEE1609dot2SignerIdentifier1
IEEE1609dot2SymmRecipientInfo1
IEEE1609dot2HeaderInfoIEEE1609dot2ToBeSignedData1IEEE1609dot2Certificate1
IEEE1609dot2BaseTypesEncryptionKey1
IEEE1609dot2BaseTypesHashedId31
IEEE1609dot2MissingCrlIdentifier1
IEEE1609dot2BaseTypesPsid1
IEEE1609dot2BaseTypesSequenceOfHashedId31
IEEE1609dot2BaseTypesThreeDLocation1
IEEE1609dot2BaseTypesTime642
IEEE1609dot2BaseTypesHostnameIEEE1609dot2CertificateId1
Ieee1609Dot2Dot1ProtocolIcaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesIdentifiedRegionIEEE1609dot2BaseTypesSequenceOfIdentifiedRegion1IEEE1609dot2BaseTypesCountryAndRegions1
IEEE1609dot2BaseTypesCountryAndSubregions1
IEEE1609dot2BaseTypesCountryOnly1
IEEE1609dot2Ieee1609Dot2ContentIEEE1609dot2Ieee1609Dot2Data1IEEE1609dot2EncryptedData1
IEEE1609dot2BaseTypesOpaque3
IEEE1609dot2SignedData1
IEEE1609dot2Ieee1609Dot2DataIEEE1609dot2Countersignature1IEEE1609dot2Ieee1609Dot2Content1
Ieee1609Dot2Dot1ProtocolEeRaCertRequestSpdu1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted7
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpen1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed13
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequest5
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedX509AuthenticatedCertRequest2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SymmEncryptedSingleRecipient2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured8
IEEE1609dot2CrlSecuredCrl1
IEEE1609dot2SignedDataPayload1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpenIeee1609Dot2Dot1ProtocolEeRaEncryptedMisbehaviorReportSpdu1IEEE1609dot2Ieee1609Dot2Data1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpenSigned2
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1MsctlTypeIeee1609Dot2Dot1CertManagementfullIeeeCtl1
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl1
Ieee1609Dot2Dot1CertManagementIEEE-1609-2-1-MSCTL1
Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignature1
IEEE1609dot2CrlBaseTypesIMaxGroupIEEE1609dot2CrlBaseTypesSequenceOfIMaxGroup1IEEE1609dot2CrlBaseTypesSequenceOfIndividualRevocation1
IEEE1609dot2BaseTypesUint161
IEEE1609dot2ImplicitCertificateIEEE1609dot2Certificate1IEEE1609dot2CertificateBase1
Ieee1609Dot2Dot1AcpcIndividualAprvIeee1609Dot2Dot1AcpcAcpcPdu1Ieee1609Dot2Dot1AcpcAcpcNodeValue1
Ieee1609Dot2Dot1AcpcAcpcTreeId1
IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesTime321
IEEE1609dot2BaseTypesUint81
IEEE1609dot2CrlBaseTypesIndividualRevocationIEEE1609dot2CrlBaseTypesSequenceOfIndividualRevocation1IEEE1609dot2BaseTypesLinkageSeed2
IEEE1609dot2IssuerIdentifierIEEE1609dot2CertificateBase1IEEE1609dot2BaseTypesHashAlgorithm1
IEEE1609dot2BaseTypesHashedId82
IEEE1609dot2BaseTypesIValueIeee1609Dot2Dot1AcpcAprvBinaryTree1IEEE1609dot2BaseTypesUint161
Ieee1609Dot2Dot1AcpcAprvHashCalculationInput1
Ieee1609Dot2Dot1AcpcIndividualAprv1
IEEE1609dot2LinkageData1
Ieee1609Dot2Dot1CamRaInterfaceRaCamBatchRequest1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAck1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo1
IEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrl1
IEEE1609dot2CrlBaseTypesJMaxGroupIEEE1609dot2CrlBaseTypesSequenceOfJMaxGroup1IEEE1609dot2CrlBaseTypesSequenceOfLAGroup1
IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesKnownLatitudeIEEE1609dot2BaseTypesNinetyDegreeInt1
IEEE1609dot2BaseTypesKnownLongitudeIEEE1609dot2BaseTypesOneEightyDegreeInt1
IEEE1609dot2CrlBaseTypesLAGroupIEEE1609dot2CrlBaseTypesSequenceOfLAGroup1IEEE1609dot2BaseTypesLaId2
IEEE1609dot2CrlBaseTypesSequenceOfIMaxGroup1
IEEE1609dot2BaseTypesLaIdIeee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLV1
IEEE1609dot2CrlBaseTypesGroupCrlEntry2
IEEE1609dot2CrlBaseTypesLAGroup2
Ieee1609Dot2Dot1LaMaInterfaceLaMaInterfacePduIeee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1LaRaInterfaceLaRaInterfacePduIeee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolLaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint161
IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesLatitudeIEEE1609dot2BaseTypesThreeDLocation1IEEE1609dot2BaseTypesNinetyDegreeInt1
IEEE1609dot2BaseTypesTwoDLocation1
IEEE1609dot2LinkageDataIEEE1609dot2CertificateId1IEEE1609dot2BaseTypesGroupLinkageValue1
IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesLinkageValue1
Ieee1609Dot2Dot1AcaRaInterfaceLinkageInfoIeee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1Ieee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLV2
IEEE1609dot2BaseTypesLinkageSeedIEEE1609dot2CrlBaseTypesGroupCrlEntry2
IEEE1609dot2CrlBaseTypesIndividualRevocation2
IEEE1609dot2BaseTypesLinkageValueIEEE1609dot2LinkageData1
IEEE1609dot2BaseTypesLongitudeIEEE1609dot2BaseTypesThreeDLocation1IEEE1609dot2BaseTypesOneEightyDegreeInt1
IEEE1609dot2BaseTypesTwoDLocation1
Ieee1609Dot2Dot1ProtocolLopSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1CertManagementMaInfoStatusIeee1609Dot2Dot1CertManagementSequenceOfMaInfoStatus1IEEE1609dot2BaseTypesSequenceOfPsid1
IEEE1609dot2BaseTypesTime321
Ieee1609Dot2Dot1MaRaInterfaceMaRaInterfacePduIeee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolMaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesSequenceOfPsid1
IEEE1609dot2BaseTypesUint81
IEEE1609dot2MissingCrlIdentifierIEEE1609dot2HeaderInfo1IEEE1609dot2BaseTypesCrlSeries1
IEEE1609dot2BaseTypesHashedId31
Ieee1609Dot2Dot1CertManagementMultiSignedCtlIeee1609Dot2Dot1CertManagementCertManagementPdu1Ieee1609Dot2Dot1ProtocolCtlSignatureSpdu1
Ieee1609Dot2Dot1CertManagementIEEE-1609-2-1-MSCTL3
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1Ctls3
Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpduIeee1609Dot2Dot1CertManagementCertificateChain1Ieee1609Dot2Dot1CertManagementCertManagementPdu1
Ieee1609Dot2Dot1CertManagementCompositeCrl1Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
IEEE1609dot2BaseTypesNinetyDegreeIntIEEE1609dot2BaseTypesKnownLatitude1
IEEE1609dot2BaseTypesLatitude1
IEEE1609dot2BaseTypesUnknownLatitude1
IEEE1609dot2BaseTypesOneEightyDegreeIntIEEE1609dot2BaseTypesKnownLongitude1
IEEE1609dot2BaseTypesLongitude1
IEEE1609dot2BaseTypesUnknownLongitude1
IEEE1609dot2BaseTypesOpaqueIEEE1609dot2AesCcmCiphertext1
IEEE1609dot2Ieee1609Dot2Content3
Ieee1609Dot2Dot1ProtocolPgSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
IEEE1609dot2PKRecipientInfoIEEE1609dot2RecipientInfo3IEEE1609dot2EncryptedDataEncryptionKey1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesPolygonalRegionIEEE1609dot2BaseTypesGeographicRegion1IEEE1609dot2BaseTypesTwoDLocation1
Ieee1609Dot2Dot1AcaRaInterfacePreLinkageValueIeee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLV1
IEEE1609dot2PreSharedKeyRecipientInfoIEEE1609dot2RecipientInfo1IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesPsidIeee1609Dot2Dot1AcpcAcpcPsid1
Ieee1609Dot2Dot1ProtocolAnyMbrPsid1
Ieee1609Dot2Dot1ProtocolBaseMbrPsid1
IEEE1609dot2CrlCrlPsid1
IEEE1609dot2HeaderInfo1
IEEE1609dot2BaseTypesPsidSsp1
IEEE1609dot2BaseTypesPsidSspRange1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
IEEE1609dot2BaseTypesSequenceOfPsid1
IEEE1609dot2PsidGroupPermissionsIEEE1609dot2SequenceOfPsidGroupPermissions1IEEE1609dot2EndEntityType1
IEEE1609dot2SubjectPermissions1
IEEE1609dot2BaseTypesPsidSspIEEE1609dot2BaseTypesSequenceOfPsidSsp1IEEE1609dot2BaseTypesPsid1
IEEE1609dot2BaseTypesServiceSpecificPermissions1
IEEE1609dot2BaseTypesPsidSspRangeIEEE1609dot2BaseTypesSequenceOfPsidSspRange1IEEE1609dot2BaseTypesPsid1
IEEE1609dot2BaseTypesSspRange1
IEEE1609dot2BaseTypesPublicEncryptionKeyIeee1609Dot2Dot1EeRaInterfaceAdditionalParams1IEEE1609dot2BaseTypesBasePublicEncryptionKey1
Ieee1609Dot2Dot1EeRaInterfaceButterflyParamsOriginal1IEEE1609dot2BaseTypesSymmAlgorithm1
IEEE1609dot2BaseTypesEncryptionKey1
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1
IEEE1609dot2ToBeSignedCertificate1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
IEEE1609dot2BaseTypesPublicVerificationKeyIEEE1609dot2VerificationKeyIndicator1IEEE1609dot2BaseTypesEccP256CurvePoint2
IEEE1609dot2BaseTypesEccP384CurvePoint1
Ieee1609Dot2Dot1ProtocolPublicVerificationKeyIEEE1609dot2BaseTypesEccP256CurvePoint2
IEEE1609dot2BaseTypesEccP384CurvePoint2
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequestIeee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu1IEEE1609dot2CertificateType1
Ieee1609Dot2Dot1AcaRaInterfaceLinkageInfo1
IEEE1609dot2BaseTypesPublicEncryptionKey1
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequestFlags1
IEEE1609dot2BaseTypesTime321
IEEE1609dot2ToBeSignedCertificate1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequestFlagsIeee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpduIeee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequest1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSignerSingleCert1
Ieee1609Dot2Dot1CamRaInterfaceRaCamBatchRequestIeee1609Dot2Dot1CamRaInterfaceCamRaInterfacePdu1IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAckIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesTime322
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfoIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1Ieee1609Dot2Dot1AcpcAcpcTreeId1
IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2BaseTypesIValue1
IEEE1609dot2BaseTypesTime322
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolRaEeCertInfoSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpduIeee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsid1
Ieee1609Dot2Dot1ProtocolRaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
IEEE1609dot2RecipientInfoIEEE1609dot2SequenceOfRecipientInfo1IEEE1609dot2PKRecipientInfo3
IEEE1609dot2PreSharedKeyRecipientInfo1
IEEE1609dot2SymmRecipientInfo1
IEEE1609dot2BaseTypesRectangularRegionIEEE1609dot2BaseTypesSequenceOfRectangularRegion1IEEE1609dot2BaseTypesTwoDLocation2
IEEE1609dot2BaseTypesRegionAndSubregionsIEEE1609dot2BaseTypesSequenceOfRegionAndSubregions1IEEE1609dot2BaseTypesSequenceOfUint161
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolRootCaSspIeee1609Dot2Dot1ProtocolScmsSsp1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolScmsPduIeee1609Dot2Dot1ProtocolScmsPdu-Scoped26Ieee1609Dot2Dot1AcaEeInterfaceAcaEeInterfacePdu1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest1Ieee1609Dot2Dot1AcaLaInterfaceAcaLaInterfacePdu1
Ieee1609Dot2Dot1AcaMaInterfaceAcaMaInterfacePdu1
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu1
Ieee1609Dot2Dot1CertManagementCertManagementPdu1
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu1
Ieee1609Dot2Dot1EeMaInterfaceEeMaInterfacePdu1
Ieee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu1
Ieee1609Dot2Dot1LaMaInterfaceLaMaInterfacePdu1
Ieee1609Dot2Dot1LaRaInterfaceLaRaInterfacePdu1
Ieee1609Dot2Dot1MaRaInterfaceMaRaInterfacePdu1
IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolScmsSspIeee1609Dot2Dot1ProtocolAcaSsp1
Ieee1609Dot2Dot1ProtocolCrlSignerSsp1
Ieee1609Dot2Dot1ProtocolDcmSsp1
Ieee1609Dot2Dot1ProtocolDcSsp1
Ieee1609Dot2Dot1ProtocolEcaSsp1
Ieee1609Dot2Dot1ProtocolEeSsp1
Ieee1609Dot2Dot1ProtocolElectorSsp1
Ieee1609Dot2Dot1ProtocolIcaSsp1
Ieee1609Dot2Dot1ProtocolLaSsp1
Ieee1609Dot2Dot1ProtocolLopSsp1
Ieee1609Dot2Dot1ProtocolMaSsp1
Ieee1609Dot2Dot1ProtocolPgSsp1
Ieee1609Dot2Dot1ProtocolRaSsp1
Ieee1609Dot2Dot1ProtocolRootCaSsp1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequestIeee1609Dot2Dot1ProtocolSignedCertificateRequest1Ieee1609Dot2Dot1AcaRaInterfaceAcaRaInterfacePdu1
Ieee1609Dot2Dot1ProtocolSignedX509CertificateRequest1Ieee1609Dot2Dot1EcaEeInterfaceEcaEeInterfacePdu1
Ieee1609Dot2Dot1EeRaInterfaceEeRaInterfacePdu2
Ieee1609Dot2Dot1ProtocolScmsPdu1
Ieee1609Dot2Dot1ProtocolScmsPdu-Scoped4
IEEE1609dot2CrlSecuredCrlIeee1609Dot2Dot1CertManagementCompositeCrl1IEEE1609dot2CrlBaseTypesCrlContents1
IEEE1609dot2CrlCrlPsid1
IEEE1609dot2Ieee1609Dot2Data1
Ieee1609Dot2Dot1ProtocolSecurityMgmtPsidIeee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpdu1IEEE1609dot2BaseTypesPsid1
Ieee1609Dot2Dot1ProtocolAcaRaCertResponseSpdu1
Ieee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpdu1
Ieee1609Dot2Dot1ProtocolCtlSignatureSpdu1
Ieee1609Dot2Dot1ProtocolEcaEeCertResponseSpdu1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpdu1
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpdu1
IEEE1609dot2SequenceOfCertificateIeee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponse1IEEE1609dot2Certificate1
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1Ctls1
IEEE1609dot2SignerIdentifier1
Ieee1609Dot2Dot1ProtocolSignerSingleCert1
Ieee1609Dot2Dot1CertManagementSequenceOfCrlInfoStatusIeee1609Dot2Dot1CertManagementCertificateManagementInfoStatus1Ieee1609Dot2Dot1CertManagementCrlInfoStatus1
Ieee1609Dot2Dot1CertManagementSequenceOfCtlInfoStatusIeee1609Dot2Dot1CertManagementCertificateManagementInfoStatus1Ieee1609Dot2Dot1CertManagementCtlInfoStatus1
IEEE1609dot2CrlBaseTypesSequenceOfGroupCrlEntryIEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrl1IEEE1609dot2CrlBaseTypesGroupCrlEntry1
IEEE1609dot2CrlBaseTypesSequenceOfHashBasedRevocationInfoIEEE1609dot2CrlBaseTypesToBeSignedHashIdCrl1IEEE1609dot2CrlBaseTypesHashBasedRevocationInfo1
IEEE1609dot2BaseTypesSequenceOfHashedId3IEEE1609dot2HeaderInfo1IEEE1609dot2BaseTypesHashedId31
IEEE1609dot2BaseTypesSequenceOfIdentifiedRegionIEEE1609dot2BaseTypesGeographicRegion1IEEE1609dot2BaseTypesIdentifiedRegion1
IEEE1609dot2CrlBaseTypesSequenceOfIMaxGroupIEEE1609dot2CrlBaseTypesLAGroup1IEEE1609dot2CrlBaseTypesIMaxGroup1
IEEE1609dot2CrlBaseTypesSequenceOfIndividualRevocationIEEE1609dot2CrlBaseTypesIMaxGroup1IEEE1609dot2CrlBaseTypesIndividualRevocation1
IEEE1609dot2CrlBaseTypesSequenceOfJMaxGroupIEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrl1IEEE1609dot2CrlBaseTypesJMaxGroup1
IEEE1609dot2CrlBaseTypesSequenceOfLAGroupIEEE1609dot2CrlBaseTypesJMaxGroup1IEEE1609dot2CrlBaseTypesLAGroup1
Ieee1609Dot2Dot1CertManagementSequenceOfMaInfoStatusIeee1609Dot2Dot1CertManagementCertificateManagementInfoStatus1Ieee1609Dot2Dot1CertManagementMaInfoStatus1
IEEE1609dot2BaseTypesSequenceOfOctetStringIEEE1609dot2BaseTypesSspRange1
IEEE1609dot2BaseTypesSequenceOfPsidIeee1609Dot2Dot1CertManagementMaInfoStatus1IEEE1609dot2BaseTypesPsid1
Ieee1609Dot2Dot1ProtocolMaSsp1
IEEE1609dot2SequenceOfPsidGroupPermissionsIEEE1609dot2ToBeSignedCertificate2IEEE1609dot2PsidGroupPermissions1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate2
IEEE1609dot2BaseTypesSequenceOfPsidSspIEEE1609dot2ToBeSignedCertificate1IEEE1609dot2BaseTypesPsidSsp1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
IEEE1609dot2BaseTypesSequenceOfPsidSspRangeIEEE1609dot2SubjectPermissions1IEEE1609dot2BaseTypesPsidSspRange1
IEEE1609dot2SequenceOfRecipientInfoIEEE1609dot2EncryptedData1IEEE1609dot2RecipientInfo1
IEEE1609dot2BaseTypesSequenceOfRectangularRegionIEEE1609dot2BaseTypesGeographicRegion1IEEE1609dot2BaseTypesRectangularRegion1
IEEE1609dot2BaseTypesSequenceOfRegionAndSubregionsIEEE1609dot2BaseTypesCountryAndSubregions1IEEE1609dot2BaseTypesRegionAndSubregions1
IEEE1609dot2BaseTypesSequenceOfUint16IEEE1609dot2BaseTypesRegionAndSubregions1IEEE1609dot2BaseTypesUint161
IEEE1609dot2BaseTypesSequenceOfUint8IEEE1609dot2BaseTypesCountryAndRegions1IEEE1609dot2BaseTypesUint81
Ieee1609Dot2Dot1ProtocolSequenceOfX509CertificateIeee1609Dot2Dot1ProtocolSignerSingleX509Cert1Ieee1609Dot2Dot1ProtocolX509Certificate1
Ieee1609Dot2Dot1ProtocolX509SignerIdentifier1
IEEE1609dot2BaseTypesServiceSpecificPermissionsIEEE1609dot2BaseTypesPsidSsp1IEEE1609dot2BaseTypesBitmapSsp1
IEEE1609dot2BaseTypesSignatureIEEE1609dot2CertificateBase1IEEE1609dot2BaseTypesEcdsaP256Signature2
IEEE1609dot2SignedData1IEEE1609dot2BaseTypesEcdsaP384Signature1
Ieee1609Dot2Dot1ProtocolSignatureIeee1609Dot2Dot1ProtocolSignedCertificateRequest1IEEE1609dot2BaseTypesEcdsaP256Signature2
Ieee1609Dot2Dot1ProtocolSignedX509CertificateRequest1IEEE1609dot2BaseTypesEcdsaP384Signature2
Ieee1609Dot2Dot1AcpcSignedAprvBinaryTreeIeee1609Dot2Dot1AcpcAcpcPdu1
Ieee1609Dot2Dot1AcpcAcpcPsid1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolSignedCertificateRequestIeee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequest5IEEE1609dot2BaseTypesHashAlgorithm1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest1
Ieee1609Dot2Dot1ProtocolSignature1
IEEE1609dot2SignerIdentifier1
IEEE1609dot2SignedDataIEEE1609dot2Ieee1609Dot2Content1IEEE1609dot2BaseTypesHashAlgorithm1
IEEE1609dot2BaseTypesSignature1
IEEE1609dot2SignerIdentifier1
IEEE1609dot2ToBeSignedData1
IEEE1609dot2SignedDataPayloadIEEE1609dot2ToBeSignedData1IEEE1609dot2HashedData1
IEEE1609dot2Ieee1609Dot2Data1
Ieee1609Dot2Dot1AcpcSignedIndividualAprvIeee1609Dot2Dot1AcpcAcpcPdu1
Ieee1609Dot2Dot1AcpcAcpcPsid1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed1
Ieee1609Dot2Dot1ProtocolSignedX509CertificateRequestIeee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedX509AuthenticatedCertRequest2IEEE1609dot2BaseTypesHashAlgorithm1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest1
Ieee1609Dot2Dot1ProtocolSignature1
Ieee1609Dot2Dot1ProtocolX509SignerIdentifier1
IEEE1609dot2SignerIdentifierIeee1609Dot2Dot1ProtocolSignedCertificateRequest1IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2SignedData1IEEE1609dot2SequenceOfCertificate1
Ieee1609Dot2Dot1ProtocolSignerSelf1
Ieee1609Dot2Dot1ProtocolSignerSingleCert1
Ieee1609Dot2Dot1ProtocolSignerSelfIeee1609Dot2Dot1ProtocolEeEcaCertRequestSpdu1IEEE1609dot2SignerIdentifier1
Ieee1609Dot2Dot1ProtocolSignerSingleCertIeee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpdu1IEEE1609dot2SequenceOfCertificate1
Ieee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpdu1IEEE1609dot2SignerIdentifier1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed13
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolSignerSingleX509CertIeee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu1Ieee1609Dot2Dot1ProtocolSequenceOfX509Certificate1
Ieee1609Dot2Dot1ProtocolX509SignerIdentifier1
IEEE1609dot2BaseTypesSspRangeIEEE1609dot2BaseTypesPsidSspRange1IEEE1609dot2BaseTypesBitmapSspRange1
IEEE1609dot2BaseTypesSequenceOfOctetString1
IEEE1609dot2BaseTypesSubjectAssuranceIEEE1609dot2ToBeSignedCertificate1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1
IEEE1609dot2SubjectPermissionsIEEE1609dot2PsidGroupPermissions1IEEE1609dot2BaseTypesSequenceOfPsidSspRange1
IEEE1609dot2BaseTypesSymmAlgorithmIEEE1609dot2BaseTypesPublicEncryptionKey1
IEEE1609dot2SymmetricCiphertextIEEE1609dot2EncryptedData1IEEE1609dot2AesCcmCiphertext1
IEEE1609dot2SymmRecipientInfo1
IEEE1609dot2BaseTypesSymmetricEncryptionKeyIEEE1609dot2BaseTypesEncryptionKey1
IEEE1609dot2SymmRecipientInfoIEEE1609dot2RecipientInfo1IEEE1609dot2BaseTypesHashedId81
IEEE1609dot2SymmetricCiphertext1
IEEE1609dot2TestCertificateIEEE1609dot2Certificate1
IEEE1609dot2BaseTypesThreeDLocationIEEE1609dot2HeaderInfo1IEEE1609dot2BaseTypesElevation1
IEEE1609dot2BaseTypesLatitude1
IEEE1609dot2BaseTypesLongitude1
IEEE1609dot2BaseTypesTime32Ieee1609Dot2Dot1AcaEeInterfaceAcaEeCertResponse1IEEE1609dot2BaseTypesUint321
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponse1
Ieee1609Dot2Dot1AcpcAprvBinaryTree1
Ieee1609Dot2Dot1CertManagementCertificateManagementInfoStatus2
IEEE1609dot2CrlBaseTypesCrlContents2
Ieee1609Dot2Dot1CertManagementCrlInfoStatus1
Ieee1609Dot2Dot1CertManagementCtlInfoStatus1
Ieee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequest1
Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequest1
Ieee1609Dot2Dot1EeRaInterfaceEeRaDownloadRequest1
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl1
IEEE1609dot2CrlBaseTypesHashBasedRevocationInfo1
Ieee1609Dot2Dot1AcpcIndividualAprv1
Ieee1609Dot2Dot1CertManagementMaInfoStatus1
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAck2
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo2
IEEE1609dot2BaseTypesValidityPeriod1
IEEE1609dot2BaseTypesTime64IEEE1609dot2HeaderInfo2IEEE1609dot2BaseTypesUint641
IEEE1609dot2ToBeSignedCertificateIEEE1609dot2CertificateBase1IEEE1609dot2CertificateId1
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1IEEE1609dot2BaseTypesCrlSeries1
IEEE1609dot2BaseTypesGeographicRegion1
IEEE1609dot2BaseTypesHashedId31
IEEE1609dot2BaseTypesPublicEncryptionKey1
IEEE1609dot2SequenceOfPsidGroupPermissions2
IEEE1609dot2BaseTypesSequenceOfPsidSsp1
IEEE1609dot2BaseTypesSubjectAssurance1
IEEE1609dot2BaseTypesValidityPeriod1
IEEE1609dot2VerificationKeyIndicator1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificateIeee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequest1IEEE1609dot2CertificateId1
Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequest1IEEE1609dot2BaseTypesCrlSeries1
IEEE1609dot2BaseTypesGeographicRegion1
IEEE1609dot2BaseTypesHashedId31
IEEE1609dot2BaseTypesPublicEncryptionKey1
IEEE1609dot2SequenceOfPsidGroupPermissions2
IEEE1609dot2BaseTypesSequenceOfPsidSsp1
IEEE1609dot2BaseTypesSubjectAssurance1
IEEE1609dot2BaseTypesValidityPeriod1
IEEE1609dot2VerificationKeyIndicator1
Ieee1609Dot2Dot1CertManagementToBeSignedCtlSignatureIeee1609Dot2Dot1CertManagementCertManagementPdu1Ieee1609Dot2Dot1CertManagementCtlSequenceNumber1
Ieee1609Dot2Dot1CertManagementElectorGroupId1
Ieee1609Dot2Dot1CertManagementHashedId481
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1MsctlType1
IEEE1609dot2ToBeSignedDataIEEE1609dot2SignedData1IEEE1609dot2HeaderInfo1
IEEE1609dot2SignedDataPayload1
IEEE1609dot2CrlBaseTypesToBeSignedHashIdCrlIEEE1609dot2CrlBaseTypesCrlContents2IEEE1609dot2CrlBaseTypesSequenceOfHashBasedRevocationInfo1
IEEE1609dot2BaseTypesUint321
IEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrlIEEE1609dot2CrlBaseTypesCrlContents2IEEE1609dot2BaseTypesIValue1
IEEE1609dot2CrlBaseTypesSequenceOfGroupCrlEntry1
IEEE1609dot2CrlBaseTypesSequenceOfJMaxGroup1
IEEE1609dot2BaseTypesUint81
IEEE1609dot2BaseTypesTwoDLocationIEEE1609dot2BaseTypesCircularRegion1IEEE1609dot2BaseTypesLatitude1
IEEE1609dot2BaseTypesPolygonalRegion1IEEE1609dot2BaseTypesLongitude1
IEEE1609dot2BaseTypesRectangularRegion2
IEEE1609dot2BaseTypesUint16IEEE1609dot2BaseTypesCircularRegion1
IEEE1609dot2BaseTypesCountryOnly1
IEEE1609dot2BaseTypesCrlSeries1
IEEE1609dot2BaseTypesDuration7
IEEE1609dot2BaseTypesElevation1
IEEE1609dot2CrlBaseTypesGroupCrlEntry1
IEEE1609dot2CrlBaseTypesIMaxGroup1
IEEE1609dot2BaseTypesIValue1
Ieee1609Dot2Dot1ProtocolLaSsp1
IEEE1609dot2BaseTypesSequenceOfUint161
IEEE1609dot2BaseTypesUint3
IEEE1609dot2BaseTypesUint32IEEE1609dot2BaseTypesTime321
IEEE1609dot2CrlBaseTypesToBeSignedHashIdCrl1
IEEE1609dot2BaseTypesUint64IEEE1609dot2BaseTypesTime641
IEEE1609dot2BaseTypesUint8Ieee1609Dot2Dot1AcaEeInterfaceAcaEeCertResponse1
Ieee1609Dot2Dot1AcaRaInterfaceAcaRaCertResponse1
Ieee1609Dot2Dot1ProtocolAcaSsp1
Ieee1609Dot2Dot1AcpcAprvBinaryTree1
Ieee1609Dot2Dot1AcpcAprvHashCalculationInput1
Ieee1609Dot2Dot1CamRaInterfaceCamRaBatchResponse1
IEEE1609dot2CertificateBase1
IEEE1609dot2CrlBaseTypesCrlContents1
IEEE1609dot2CrlBaseTypesCrlPriorityInfo1
Ieee1609Dot2Dot1ProtocolCrlSignerSsp1
Ieee1609Dot2Dot1ProtocolDcmSsp1
Ieee1609Dot2Dot1ProtocolDcSsp1
Ieee1609Dot2Dot1EcaEeInterfaceEcaEeCertResponse1
Ieee1609Dot2Dot1ProtocolEcaSsp1
Ieee1609Dot2Dot1EcaEeInterfaceEeEcaCertRequest1
Ieee1609Dot2Dot1EeRaInterfaceEeRaCertRequest1
Ieee1609Dot2Dot1ProtocolEeSsp1
Ieee1609Dot2Dot1ProtocolElectorSsp1
Ieee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLV1
Ieee1609Dot2Dot1ProtocolIcaSsp1
IEEE1609dot2Ieee1609Dot2Data1
Ieee1609Dot2Dot1AcpcIndividualAprv1
IEEE1609dot2CrlBaseTypesJMaxGroup1
Ieee1609Dot2Dot1ProtocolLaSsp1
Ieee1609Dot2Dot1ProtocolLopSsp1
Ieee1609Dot2Dot1ProtocolMaSsp1
Ieee1609Dot2Dot1ProtocolPgSsp1
Ieee1609Dot2Dot1AcaRaInterfaceRaAcaCertRequest1
Ieee1609Dot2Dot1CamRaInterfaceRaCamBatchRequest1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertAck1
Ieee1609Dot2Dot1EeRaInterfaceRaEeCertInfo1
Ieee1609Dot2Dot1ProtocolRaSsp1
IEEE1609dot2BaseTypesRegionAndSubregions1
Ieee1609Dot2Dot1ProtocolRootCaSsp1
Ieee1609Dot2Dot1ProtocolScmsPdu1
IEEE1609dot2BaseTypesSequenceOfUint81
IEEE1609dot2CrlBaseTypesToBeSignedLinkageValueCrl1
IEEE1609dot2BaseTypesUnknownLatitudeIEEE1609dot2BaseTypesNinetyDegreeInt1
IEEE1609dot2BaseTypesUnknownLongitudeIEEE1609dot2BaseTypesOneEightyDegreeInt1
Ieee1609Dot2Dot1AcpcUnsecuredAprvBinaryTreeIeee1609Dot2Dot1AcpcAcpcPdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Unsecured1
IEEE1609dot2BaseTypesValidityPeriodIEEE1609dot2ToBeSignedCertificate1IEEE1609dot2BaseTypesDuration1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1IEEE1609dot2BaseTypesTime321
IEEE1609dot2VerificationKeyIndicatorIEEE1609dot2ToBeSignedCertificate1IEEE1609dot2BaseTypesEccP256CurvePoint1
Ieee1609Dot2Dot1ProtocolToBeSignedCertificate1IEEE1609dot2BaseTypesPublicVerificationKey1
Ieee1609Dot2Dot1ProtocolX509CertificateIeee1609Dot2Dot1ProtocolSequenceOfX509Certificate1
Ieee1609Dot2Dot1ProtocolX509SignerIdentifierIeee1609Dot2Dot1ProtocolSignedX509CertificateRequest1Ieee1609Dot2Dot1ProtocolSequenceOfX509Certificate1
Ieee1609Dot2Dot1ProtocolSignerSingleX509Cert1
Parameterized Type Assignments Cross Reference Table
Parameterized Type Assignments Cross Reference Table
Parameterized Type Assignments Cross Reference
Module nameType nameParametersIncoming referencesOutgoing references
NameType or ClassModule nameEntity nameNumberModule nameEntity nameNumber
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedTbeIeee1609Dot2Dot1ProtocolAcaEeCertResponseCubkSpdu1IEEE1609dot2Ieee1609Dot2Data7
Ieee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedSigned2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncrypted2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedCertRequest3
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpenSignedPsidIeee1609Dot2Dot1ProtocolEeRaEncryptedSignedMisbehaviorReportSpdu1Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpen2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedSignedTbesIeee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpdu1Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted2
PsidIeee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedTbsIeee1609Dot2Dot1ProtocolAcaRaCertResponseSpdu1IEEE1609dot2Ieee1609Dot2Data13
PsidIeee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpdu1Ieee1609Dot2Dot1ProtocolSignerSingleCert13
Ieee1609Dot2Dot1ProtocolCtlSignatureSpdu1
Ieee1609Dot2Dot1ProtocolEcaEeCertResponseSpdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedOpenSigned2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-EncryptedSigned2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncrypted2
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpdu1
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpdu1
Ieee1609Dot2Dot1AcpcSignedAprvBinaryTree1
Ieee1609Dot2Dot1AcpcSignedIndividualAprv1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequestTbscrIeee1609Dot2Dot1ProtocolEeEcaCertRequestSpdu1IEEE1609dot2Ieee1609Dot2Data5
SignerIeee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedCertRequest3Ieee1609Dot2Dot1ProtocolSignedCertificateRequest5
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedTbseIeee1609Dot2Dot1ProtocolEeRaDownloadRequestSpdu1Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted2
PsidIeee1609Dot2Dot1ProtocolIeee1609Dot2Data-Signed2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedEncryptedCertRequestTbstecrIeee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpdu1Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-Encrypted3
SignerIeee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpdu1Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedCertRequest3
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SignedX509AuthenticatedCertRequestTbscrIeee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu1IEEE1609dot2Ieee1609Dot2Data2
SignerIeee1609Dot2Dot1ProtocolSignedX509CertificateRequest2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-SymmEncryptedSingleRecipientTbeIeee1609Dot2Dot1AcaRaInterfaceEncryptedIndividualPLV1IEEE1609dot2Ieee1609Dot2Data2
Ieee1609Dot2Dot1ProtocolIeee1609Dot2Data-UnsecuredTbuIeee1609Dot2Dot1ProtocolAcaEeCertResponsePlainSpdu1IEEE1609dot2Ieee1609Dot2Data8
Ieee1609Dot2Dot1ProtocolCertificateChainSpdu1
Ieee1609Dot2Dot1ProtocolCompositeCrlSpdu1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestPlainSpdu1
Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertInfoSpdu1
Ieee1609Dot2Dot1AcpcUnsecuredAprvBinaryTree1
Ieee1609Dot2Dot1ProtocolScmsPdu-ScopedPduIeee1609Dot2Dot1ProtocolAcaEeCertResponseCubkSpdu1Ieee1609Dot2Dot1ProtocolScmsPdu26
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePlainSpdu1
Ieee1609Dot2Dot1ProtocolAcaEeCertResponsePrivateSpdu1
Ieee1609Dot2Dot1ProtocolAcaRaCertResponseSpdu1
Ieee1609Dot2Dot1ProtocolCertificateChainSpdu1
Ieee1609Dot2Dot1ProtocolCertificateManagementInformationStatusSpdu1
Ieee1609Dot2Dot1ProtocolCompositeCrlSpdu1
Ieee1609Dot2Dot1ProtocolCtlSignatureSpdu1
Ieee1609Dot2Dot1ProtocolEcaEeCertResponseSpdu1
Ieee1609Dot2Dot1ProtocolEeEcaCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolEeRa1609Dot2AuthenticatedCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestPlainSpdu1
Ieee1609Dot2Dot1ProtocolEeRaDownloadRequestSpdu1
Ieee1609Dot2Dot1ProtocolEeRaSuccessorEnrollmentCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolEeRaX509AuthenticatedCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolMultiSignedCtlSpdu1
Ieee1609Dot2Dot1ProtocolRaAcaCertRequestSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertAckSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertAndAcpcInfoSpdu1
Ieee1609Dot2Dot1ProtocolRaEeCertInfoSpdu1
Ieee1609Dot2Dot1ProtocolRaEeEnrollmentCertAckSpdu1
Ieee1609Dot2Dot1ProtocolScopedCertificateRequest4
Value Assignments Cross Reference Table
Value Assignments Cross Reference Table
Value Assignments Cross Reference
Module nameValue nameTypeIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
Ieee1609Dot2Dot1CertManagementfullIeeeCtlIeee1609dot2dot1MsctlTypeIeee1609Dot2Dot1CertManagementFullIeeeTbsCtl1Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1MsctlType1
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1Ctls1
Class Assignments Cross Reference Table
Class Assignments Cross Reference Table
Class Assignments Cross Reference
Module nameClass nameIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
Ieee1609Dot2Dot1CertManagementIEEE-1609-2-1-MSCTLIeee1609Dot2Dot1CertManagementIeee1609dot2dot1Ctls1Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1MsctlType1
Ieee1609Dot2Dot1CertManagementMultiSignedCtl3
Object Set Assignments Cross Reference Table
Object Set Assignments Cross Reference Table
Object Set Assignments Cross Reference
Module nameObject set nameClassIncoming referencesOutgoing references
Module nameEntity nameNumberModule nameEntity nameNumber
Ieee1609Dot2Dot1CertManagementIeee1609dot2dot1CtlsIEEE-1609-2-1-MSCTLIeee1609Dot2Dot1CertManagementMultiSignedCtl3Ieee1609Dot2Dot1CertManagementfullIeeeCtl1
Ieee1609Dot2Dot1CertManagementFullIeeeTbsCtl1
Ieee1609Dot2Dot1CertManagementIEEE-1609-2-1-MSCTL1
IEEE1609dot2SequenceOfCertificate1

Schema Files

This section contains the schema files that constitute the ASN.1 schema.

Schema File aca-ee.asn
Schema File aca-ee.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: ACA - EE Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1AcaEeInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) aca-ee (1) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

Time32, Uint8

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)}

FROM IEEE1609dot2BaseTypes {}

Certificate

FROM 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)};

FROM IEEE1609dot2 {};

IMPORTS;

AcaEeInterfacePdu

This is the parent structure for all structures exchanged between the ACA and the EE. The ACA – EE interface is a logical interface rather than a direct communications interface in that there is no direct message flow between the ACA and the EE: Messages from the ACA are stored by the RA and subsequently forwarded to the EE. The PDUs are identified as ACA-EE PDUs even though the RA acts as a forwarder for them because those PDUs are created by the ACA and encrypted for the EE, and not modified and frequently not read by the RA. An overview of this structure is as follows:
  • acaEeCertResponse
    contains the ACA's response to RaAcaCertRequestSPDU, which is meant for the EE and sent via the RA.

AcaEeInterfacePdu ::= CHOICE {

acaEeCertResponse AcaEeCertResponse,

...

}

AcaEeInterfacePdu ::= CHOICE {}

AcaEeCertResponse

This structure contains a certificate and associated data as generated by the ACA for the EE that will be the holder of that certificate. An overview of this structure is as follows:

NOTE: In the case where the butterfly expansion function is used to set certEncKey in RaAcaCertRequest, the value j is not communicated to the ACA. However, the EE that receives the certificate response can only decrypt the response if it knows j. The RA is therefore anticipated to store j so that it can be associated with the appropriate certificate response. The RA encodes j in the filename.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of AcaEeCertResponse.
  • certificate
    contains an authorization certificate generated by the ACA. It is of the type indicated by the type field in the corresponding request (if the requester requested an incorrect type, the response would be an error not an instance of this structure).
  • privateKeyInfo
    is an optional field that is as follows:
    1. Present and contains the private key randomization value, if the field certificate.type is explicit and the butterfly key mechanism was used to generate the certificate. This is used by the EE in deriving the butterfly private key for explicit certificates as specified in 9.3.
    2. Present and contains the private key reconstruction value, if the field certificate.type is implicit. This is used by the EE as specified in 5.3.2 of IEEE Std 1609.2a-2017 (also 9.3 if the butterfly key mechanism is used).
    3. Absent otherwise.

AcaEeCertResponse ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

certificate Certificate,

privateKeyInfo OCTET STRING (SIZE (32)) OPTIONAL,

...

}

AcaEeCertResponse ::= SEQUENCE {}

END

Schema File aca-la.asn
Schema File aca-la.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: ACA - LA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1AcaLaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) aca-la (2) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

AcaLaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.

AcaLaInterfacePdu ::= NULL

END

Schema File aca-ma.asn
Schema File aca-ma.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: ACA - MA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1AcaMaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) aca-ma (3) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

AcaMaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.

AcaMaInterfacePdu ::= NULL

END

Schema File aca-ra.asn
Schema File aca-ra.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: ACA - RA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1AcaRaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) aca-ra (4) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

HashAlgorithm, HashedId8, LaId, PublicEncryptionKey, Time32, Uint8

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)}

FROM IEEE1609dot2BaseTypes {}

CertificateType, ToBeSignedCertificate

FROM 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)}

FROM IEEE1609dot2 {}

AcaEeCertResponsePlainSpdu, AcaEeCertResponsePrivateSpdu,

AcaEeCertResponseCubkSpdu, Ieee1609Dot2Data-SymmEncryptedSingleRecipient

FROM Ieee1609Dot2Dot1Protocol {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) protocol (17)

major-version-2 (2)};

FROM Ieee1609Dot2Dot1Protocol {};

IMPORTS;

AcaRaInterfacePDU

This is the parent structure for all structures exchanged between the ACA and the RA. An overview of this structure is as follows:
  • raAcaCertRequest
    contains the request for an authorization certificate from the RA to the ACA on behalf of the EE.
  • acaRaCertResponse
    contains the ACA's response to RaAcaCertRequest.

AcaRaInterfacePdu ::= CHOICE {

raAcaCertRequest RaAcaCertRequest,

acaRaCertResponse AcaRaCertResponse,

...

}

AcaRaInterfacePdu ::= CHOICE {}

RaAcaCertRequest

This structure contains parameters needed to request an individual authorization certificate. An overview of this structure is as follows:

NOTE 1: In the case where the butterfly key mechanism is used to set certEncKey, the value of j is not communicated to the ACA. However, the EE that receives the certificate response can only decrypt the response if it knows j. The RA is therefore anticipated to store j so that it can be associated with the appropriate certificate response.

NOTE 2: The cracaId and crlSeries are set to the indicated values in the request. The ACA replaces these values with the appropriate values in the response.

NOTE 3: The ACA is not bound by the contents of the request and can issue certificates that are different from those requested, if so directed by policy.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of RaAcaCertRequest.
  • type
    indicates whether the request is for an explicit or implicit certificate (see 4.1.1, 4.1.3.3.1).
  • flags
    contains the flags related to the use of the butterfly key mechanism, and provides the following instructions to the ACA as to how to generate the response:
    1. If the flag butterflyExplicit is set, the request is valid only if the type field is set to explicit. In this case, the ACA uses the butterfly key derivation for explicit certificates as specified in 9.3. The field tbsCert.verifyKeyIndicator.verificationKey is used by the ACA as the cocoon public key for signing. The field privateKeyInfo in the corresponding AcaEeCertResponse is used by the EE as the random integer to recover the butterfly private key for signing.
    2. If the flag cubk is set, the request is valid only if the certEncKey field is absent. In this case, the ACA uses the compact unified variation of the butterfly key mechanism as specified in 9.3. This means that the ACA generates an AcaEeCertResponseCubkSpdu instead of an AcaEeCertResponsePrivateSpdu, and the response is valid only if the ACA certificate has the flag cubk set.
  • linkageInfo
    contains the encrypted prelinkage values needed to generate the linkage value for the certificate. If linkageInfo is present, the field tbsCert.id is of type LinkageData, where the iCert field is set to the actual i-period value and the linkage-value field is set to a dummy value to be replaced by the ACA with the actual linkage value. The encrypted prelinkage values are encrypted for the ACA by the LAs.
  • certEncKey
    is used in combination with flags.cubk to indicate the type of response that is expected from the ACA. It is as follows:
    1. Absent and flags.cubk is not set if the ACA's response doesn't need to be encrypted. In this case, the ACA responds with AcaEeCertResponsePlainSpdu.
    2. Absent and flags.cubk is set if the ACA's response is to be encrypted with the verification key from the request and not signed. In this case, the ACA responds with AcaEeCertResponseCubkSpdu.
    3. Present and flags.cubk is not set if the ACA's response is to be encrypted with certEncKey and then signed by the ACA. In this case, the ACA responds with AcaEeCertResponsePrivateSpdu.
  • tbsCert
    contains parameters of the requested certificate. The certificate type depends on the field type, as follows:
    1. If type is explicit, the request is valid only if tbsCert.verifyKeyIndicator is a verificationKey.
    2. If type is implicit, the request is valid only if tbsCert.verifyKeyIndicator is a reconstructionValue.

RaAcaCertRequest ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

type CertificateType,

flags RaAcaCertRequestFlags,

linkageInfo LinkageInfo OPTIONAL,

certEncKey PublicEncryptionKey OPTIONAL,

tbsCert ToBeSignedCertificate (WITH COMPONENTS {

...,

cracaId ('000000'H),

crlSeries (0),

appPermissions PRESENT,

certIssuePermissions ABSENT,

certRequestPermissions ABSENT

}),

tbsCert ToBeSignedCertificate (WITH COMPONENTS {}),

...

}

RaAcaCertRequest ::= SEQUENCE {}

RaAcaCertRequestFlags

This structure is used to convey information from the RA to the ACA about operations to be carried out when generating the certificate. For more details see the specification of RaAcaCertRequest. An overview of this structure is as follows:

RaAcaCertRequestFlags ::= BIT STRING {

butterflyExplicit (0),

cubk (1)

} (SIZE (8))

RaAcaCertRequestFlags ::= BIT STRING {} (SIZE (8))

LinkageInfo

This structure contains parameters needed to generate a linkage value for a given (EE, i, j). An overview of this structure is as follows:

NOTE: See Annex D for further discussion of LAs.
  • encPlv1
    contains the EncryptedIndividualPLV from one of the LAs.
  • encPlv2
    contains the EncryptedIndividualPLV from the other LA.

LinkageInfo ::= SEQUENCE {

encPlv1 EncryptedIndividualPLV,

encPlv2 EncryptedIndividualPLV,

...

}

LinkageInfo ::= SEQUENCE {}

EncryptedIndividualPLV

This structure contains an individual prelinkage value encrypted by the LA for the ACA using the shared secret key. An overview of this structure is as follows:

NOTE: How the ACA obtains the shared symmetric key and how the RA associates the encPlv1 and encPlv2 with the correct certificate request are outside the scope of this document.
  • version
    contains the current version of the structure.
  • laId
    contains the ID of the LA that created the prelinkage value. See Annex D for further discussion of LA IDs.
  • encPlv
    contains the encrypted individual prelinkage value, that is, the ciphertext field decrypts to a PreLinkageValue. It contains a pointer (hash of the shared symmetric key) to the used shared secret encryption key.

PreLinkageValue

This structure contains an individual prelinkage value. It is an octet string of length 9 octets.

PreLinkageValue ::= OCTET STRING (SIZE (9))

AcaRaCertResponse

This structure contains a certificate response by the ACA, encapsulated for consumption by the EE, as well as associated data for consumption by the RA. The response is of form AcaEeCertResponsePlainSpdu, AcaEeCertResponsePrivateSpdu, or AcaEeCertResponseCubkSpdu, and is generated in response to a successful RaAcaCertRequestSpdu. In this structure:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of AcaRaCertResponse.
  • requestHash
    contains the hash of the corresponding RaAcaCertRequestSPDU.
  • acaResponse
    contains the certificate for the EE in a suitable form as determined from the corresponding RaAcaCertRequestSPDU.

AcaRaCertResponse ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

requestHash HashedId8,

acaResponse AcaResponse,

...

}

AcaRaCertResponse ::= SEQUENCE {}

AcaResponse

This structure contains the certificate for the EE in a suitable form as determined from the corresponding RaAcaCertRequestSPDU. In this structure:
  • plain
    contains the certificate for the EE in plain, that is, without encryption or signature. This choice is used only when the field certEncKey is absent and flags.cubk is not set in the corresponding RaAcaCertRequest.
  • private
    contains the certificate for the EE in an encrypted then signed form to protect the EE's privacy from the RA. This choice is used only when the field certEncKey is present and flags.cubk is not set in the corresponding RaAcaCertRequest.
  • cubk
    contains the certificate for the EE in an encrypted form. This choice is used only when the field certEncKey is absent and flags.cubk is set in the corresponding RaAcaCertRequest.

END

Schema File acpc.asn
Schema File acpc.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: ACPC --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1Acpc {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) acpc (18) major-version-1 (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

HashAlgorithm, IValue, Psid, Time32, Uint8

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)}

FROM IEEE1609dot2BaseTypes {}

Ieee1609Dot2Data-Unsecured, Ieee1609Dot2Data-Signed

FROM Ieee1609Dot2Dot1Protocol {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) protocol (17)

major-version-2 (2)};

FROM Ieee1609Dot2Dot1Protocol {};

IMPORTS;

AcpcPdu

This structure contains an APrV structure produced by the CAM. An overview of this structure is as follows:
  • tree
    contains an AprvBinaryTree.
  • aprv
    contains a single IndividualAprv.

AcpcPdu ::= CHOICE {

tree AprvBinaryTree,

aprv IndividualAprv,

...

}

AcpcPdu ::= CHOICE {}

AprvBinaryTree

This structure encodes a binary tree. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of AprvBinaryTree.
  • currentI
    contains the i-value associated with the batch of certificates.
  • acpcTreeId
    contains an identifier for the CAM creating this binary tree.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tree
    contains a bit string indicating which nodes of the tree are present. It is calculated as specified in 9.5.4.2, and can be used by the EE to determine which entry in nodeValueList to use to derive that EE's APrV as specified in 9.5.2.
  • nodeValueList
    contains the values of the nodes that are present in the order indicated by tree.

AprvBinaryTree ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

currentI IValue,

acpcTreeId AcpcTreeId,

hashAlgorithmId HashAlgorithm,

tree BIT STRING,

nodeValueList SEQUENCE (SIZE (1..MAX)) OF AcpcNodeValue,

...

}

AprvBinaryTree ::= SEQUENCE {}

AcpcPsid

This is the PSID used to indicate activities in ACPC as specified in this document.

AcpcPsid ::= Psid (2113696)

UnsecuredAprvBinaryTree

This is used to wrap an AprvBinaryTree in an Ieee1609Dot2Data for transmission if the policy is that the AprvBinaryTree need not be signed. See 9.5.6 for discussion.

SignedAprvBinaryTree

This is used to wrap an AprvBinaryTree in an Ieee1609Dot2Data for transmission if the policy is that the AprvBinaryTree be signed. See 9.5.6 for discussion.

IndividualAprv

This structure contains an individual APrV. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of IndividualAprv.
  • currentI
    contains the i-value associated with the batch of certificates.
  • acpcTreeId
    contains an identifier for the CAM creating this binary tree.
  • nodeId
    contains the identifier of the node.
  • nodeValue
    contains the value of the node.

IndividualAprv ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

currentI IValue,

acpcTreeId AcpcTreeId,

nodeId BIT STRING,

nodeValue AcpcNodeValue,

...

}

IndividualAprv ::= SEQUENCE {}

SignedIndividualAprv

This is used to wrap an IndividualAprv in an Ieee1609Dot2Data for transmission if the policy is that the IndividualAprv be signed. See 9.5.6 for discussion.

AcpcTreeId

This is an 8 byte string that identifies an ACPC tree series. It is required to be globally unique within the system and is the same for all ACPC tree instances within the ACPC tree series. Registration of AcpcTreeId values is managed by the IEEE RA; see http://standards.ieee.org/regauth. A list of assigned AcpcTreeId values is provided in L.2.

AcpcTreeId ::= OCTET STRING (SIZE (8))

AcpcNodeValue

This is a 16 byte string that represents the value of a node in the ACPC tree.

AcpcNodeValue ::= OCTET STRING (SIZE (16))

AprvHashCalculationInput

This structure, C-OER encoded, is the input to the hash function to calculate child node values from a parent node. By including the ID fields it "firewalls" the hash function so that an attacker who inverts the hash has only found the hash preimage for a specific node, in a specific tree, for a specific time period. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • acpcTreeId
    contains an identifier for this ACPC tree series.
  • acpcPeriod
    contains an identifier for the time period for this tree. If the certificates for which this set of APrVs are intended have an IValue field, acpcPeriod in this structure shall be equal to the IValue field in the certificates. How the RA and the CAM synchronize on this value is outside the scope of this document.
  • childNodeId
    contains a bit string of length l encoding the node location within the l'th level.
  • parentNodeValue
    contains the value of the parent node.

AprvHashCalculationInput ::= SEQUENCE {

version Uint8 (2),

acpcTreeId AcpcTreeId,

acpcPeriod IValue,

childNodeId BIT STRING,

parentNodeValue OCTET STRING (SIZE (16)),

...

}

AprvHashCalculationInput ::= SEQUENCE {}

END

Schema File cam-ra.asn
Schema File cam-ra.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: CAM - RA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1CamRaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) cam-ra (19) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

EccP256CurvePoint, HashedId8, IValue, Uint8

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)};

FROM IEEE1609dot2BaseTypes {};

IMPORTS;

CamRaInterfacePDU

This is the parent structure for all structures exchanged between the CAM and the RA during ACPC enrollment. An overview of this structure is as follows:

CamRaInterfacePdu ::= CHOICE {

raCamBatchRequest RaCamBatchRequest,

camRaBatchResponse CamRaBatchResponse,

...

}

CamRaInterfacePdu ::= CHOICE {}

RaCamBatchRequest

This structure contains parameters needed to request a blinded batch of keys for the EE during ACPC enrollment. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • eeId
    contains the EE's ID generated by the RA for the production of ACPC batch keys by the CAM.
  • periodList
    contains the list of i-periods covered by the batch.

RaCamBatchRequest ::= SEQUENCE {

version Uint8 (2),

eeId OCTET STRING (SIZE (5)),

periodList SEQUENCE OF IValue,

...

}

RaCamBatchRequest ::= SEQUENCE {}

CamRaBatchResponse

This structure contains a blinded batch of keys for the EE during ACPC enrollment. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • requestHash
    contains the hash of the corresponding request RaCamBatchRequest.
  • batch
    contains a sequence of blinded keys, each mapped to one IValue from the periodList field of the request.

CamRaBatchResponse ::= SEQUENCE {

version Uint8 (2),

requestHash HashedId8,

batch SEQUENCE OF BlindedKey,

...

}

CamRaBatchResponse ::= SEQUENCE {}

BlindedKey

This is a blinded ACPC encryption key produced by the CAM.

BlindedKey ::= EccP256CurvePoint

END

Schema File cert-management.asn
Schema File cert-management.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: Certificate Management --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1CertManagement {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) cert-management (7)

major-version-2 (2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

HashedId8, Time32, Uint8

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)}

FROM IEEE1609dot2BaseTypes {}

Certificate, SequenceOfCertificate

FROM 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)}

FROM IEEE1609dot2 {}

CrlSeries

FROM IEEE1609dot2CrlBaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

crl (3) base-types (2) major-version-2 (2)}

SecuredCrl

FROM IEEE1609dot2Crl {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

crl (3) protocol (1) major-version-2 (2)}

FROM IEEE1609dot2Crl {}

CtlSignatureSpdu, MultiSignedCtlSpdu, SequenceOfPsid

FROM Ieee1609Dot2Dot1Protocol {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) protocol (17)

major-version-2 (2)};

FROM Ieee1609Dot2Dot1Protocol {};

IMPORTS;

HashedId32

This data structure contains the hash of another data structure, calculated with a hash function with at least 32 bytes of output length. The HashedId32 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order 32 bytes of the hash output if necessary. If the data structure is subject to canonicalization it is canonicalized before hashing.

HashedId32 ::= OCTET STRING (SIZE (32))

HashedId48

This data structure contains the hash of another data structure, calculated with a hash function with at least 48 bytes of output length. The HashedId48 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order 48 bytes of the hash output if necessary. If the data structure is subject to canonicalization it is canonicalized before hashing.

HashedId48 ::= OCTET STRING (SIZE (48))

CertManagementPdu

This is the parent structure for all SCMS component certificate management structures. An overview of this structure is as follows:
  • compositeCrl
    contains zero or more SecuredCrl as defined in IEEE Std 1609.2, and the CTL.
  • certificateChain
    contains a collection of certificates and the CTL.
  • multiSignedCtl
    contains the CTL signed by multiple signers, the electors.
  • tbsCtlSignature
    contains the CTL-instance-specific information used to generate a signature on the CTL.

CertManagementPdu ::= CHOICE {

compositeCrl CompositeCrl,

certificateChain CertificateChain,

multiSignedCtl MultiSignedCtl,

tbsCtlSignature ToBeSignedCtlSignature,

infoStatus CertificateManagementInfoStatus,

...

}

CertManagementPdu ::= CHOICE {}

CompositeCrl

This structure is used to encapsulate CRLs and a CTL. An overview of this structure is as follows:
  • crl
    contains a list of signed CRLs for different (CRACA ID, CRL series) pairs. The CRLs are signed individually, and this document does not specify the order in which they should appear.
  • homeCtl
    contains a CTL. If the composite CRL was requested via the mechanisms given in 6.3.5.8, the ElectorGroupId in this CTL is the same as the ElectorGroupId provided in the request. The intent is that this is the “home” CTL of the requester, but this field can in practice be used to provide any CTL with any ElectorGroupId value.

CompositeCrl ::= SEQUENCE {

crl SEQUENCE SIZE (0..MAX) OF SecuredCrl,

homeCtl MultiSignedCtlSpdu,

...

}

CompositeCrl ::= SEQUENCE {}

CertificateChain

This structure is used to encapsulate certificates and a CTL. An overview of this structure is as follows:
  • homeCtl
    contains a CTL. If the certificate chain was requested via the mechanisms given in 6.3.5.7, the ElectorGroupId in this CTL is the same as the ElectorGroupId provided in the request. The intent is that this is the “home” CTL of the requester, but this field can in practice be used to provide any CTL.
  • others
    contains additional valid certificates of the CAs and the MAs chosen by means outside the scope of this document.

CertificateChain ::= SEQUENCE {

homeCtl MultiSignedCtlSpdu,

others SEQUENCE SIZE (0..MAX) OF Certificate,

...

}

CertificateChain ::= SEQUENCE {}

MultiSignedCtl

This structure a certificate trust list (CTL) signed by multiple signers, the electors. An overview of this structure is as follows:
  • type
    contains the type of the multi-signed CTL. Only one type of multi-signed CTL is supported in this version of this document.
  • tbsCtl
    contains the CTL contents.
  • unsigned
    contains data that are associated with the CTL and that are not included directly in tbsCtl. For example, if the type is fullIeeeCtlType, the FullIeeeTbsCtl contains the hashes of the certificates, and the certificates themselves are contained in unsigned.
  • signatures
    contains the signatures. How the signatures are calculated is specified in the definition of ToBeSignedCtlSignature. The number of signatures shall be no more than the number of electors. Each signature shall have been generated by a distinct elector.

MultiSignedCtl ::= SEQUENCE {}

IEEE-1609-2-1-MSCTL

This is the ASN.1 Information Object Class used to associate multisigned CTL type identifiers, CTL contents, and unsigned material. In this structure:
  • type
    contains the type, an Ieee1609dot2dot1MsctlType.
  • TbsCtl
    contains the CTL contents.
  • UnsignedCtlMaterial
    contains unsigned material associated with the CTL, as specified in 7.3.11.

IEEE-1609-2-1-MSCTL ::= CLASS {

&type Ieee1609dot2dot1MsctlType,

&TbsCtl,

&UnsignedCtlMaterial

}

IEEE-1609-2-1-MSCTL ::= CLASS {}

WITH SYNTAX {

&TbsCtl IDENTIFIED BY &type USING &UnsignedCtlMaterial

}

WITH SYNTAX {}

Ieee1609dot2dot1Ctls

This is the Information Object Set containing the instances of the IEEE-1609-2-1-MSCTL class that are specified for use. Only one instance is specified for use in this version of this document.

Ieee1609dot2dot1MsctlType

This is the integer used to identify the type of the CTL.

Ieee1609dot2dot1MsctlType ::= INTEGER (0..255)

fullIeeeCtl Ieee1609dot2dot1MsctlType ::= 1

FullIeeeTbsCtl

This structure specifies a CTL that contains information about the complete set of certificates trusted by the electors that sign the CTL. An overview of this structure is as follows:

NOTE 1: If in future CTL types are defined that contain the same information as, or a subset of the information in, the fullIeeeCtl, those types are anticipated to contain the same sequence number as the corresponding fullIeeeCtl.

NOTE 2: Any root CA or elector certificate that is not on the CTL is not trusted. The electorRemove and rootCaRemove are intended to be used only if the SCMS manager wants to explicitly indicate that a previously trusted entity (elector or root CA) is now not trusted even though that entity's certificate is still within its validity period. In practice, it is anticipated that the remove fields (electorRemove and rootCaRemove) will almost always be sequences of length 0.
  • type
    contains the type of the CTL. It is identical to the type field that appears in the enclosing MultiSignedCtl. The field is included here as well to provide the simplest mechanism to help ensure that the type is included in the calculated CTL hash.
  • electorGroupId
    contains the group of electors that have signed the CTL. It plays a role similar to CrlSeries in a CRL. This field is intended to be globally unique in the universe of all systems that use the MultiSignedCtl. See the specification of ElectorGroupId for discussion of a convention that can be followed to enable uniqueness.
  • sequenceNumber
    contains the sequence number of the CTL. This is incremented by 1 every time a new FullIeeeTbsCtl is issued.
  • effectiveDate
    contains the time when the CTL is to take effect. This is to be greater than or equal to the effectiveDate field in the CTL with the same electorGroupId and the previous sequence number.
  • electorApprove
    contains the list of hashes of the elector certificates that are approved as of the effective date. The hash is calculated with the same hash algorithm that is used to hash the elector certificate for signing.
  • electorRemove
    contains the list of hashes of the elector certificates that are valid (that is, not expired) on the effective date and are not approved, as of the effective date, to sign a CTL. The hash is calculated with the same hash algorithm that is used to hash the elector certificate for signing. This field is to be considered informational as a certificate that is not included in electorApprove is not valid even if it does not appear in electorRemove.
  • rootCaApprove
    contains the list of root CA certificates that are approved as of the effective date. The hash is calculated with the same hash algorithm that is used to hash the root certificate for signing. If the root certificate is signed with a hash function with a 48 octet output, this is truncated to the low-order 32 bytes for inclusion in the CTL.
  • rootCaRemove
    contains the list of root CA certificates that are valid (that is, not expired) on the effective date and are not approved, as of the effective date, to issue certificates or carry out other activities. If the root certificate is signed with a hash function with a 48 octet output, this is truncated to the low-order 32 bytes for inclusion in the CTL. This field is to be considered informational as a certificate that is not included in rootCaApprove is not valid even if it does not appear in rootCaRemove.
  • quorum
    contains the quorum, that is, the number of the electors required to sign the next CTL with the same ElectorGroupId value for that CTL to be trusted. If this field is absent, the quorum for the next CTL is equal to the quorum for the current CTL.

FullIeeeTbsCtl ::= SEQUENCE {

type Ieee1609dot2dot1MsctlType (fullIeeeCtl),

electorGroupId ElectorGroupId,

sequenceNumber CtlSequenceNumber,

effectiveDate Time32,

electorApprove SEQUENCE OF CtlElectorEntry,

electorRemove SEQUENCE OF CtlElectorEntry,

rootCaApprove SEQUENCE OF CtlRootCaEntry,

rootCaRemove SEQUENCE OF CtlRootCaEntry,

...,

quorum INTEGER

}

FullIeeeTbsCtl ::= SEQUENCE {}

ElectorGroupId

This structure identifies a group of electors that sign a series of CTLs for a specific purpose. Registration of ElectorGroupId values is managed by the IEEE RA; see http://standards.ieee.org/regauth. A list of assigned ElectorGroupId values is provided in K.1.

ElectorGroupId ::= OCTET STRING (SIZE (8))

CtlSequenceNumber

This structure is used to encode the CTL sequence number. This document does not specify semantics of this type once it reaches its maximum value.

CtlSequenceNumber ::= INTEGER (0..65535)

CtlElectorEntry

This structure contains the hash of an elector certificate.

CtlElectorEntry ::= HashedId48

CtlRootCaEntry

This structure contains the hash of a root CA certificate.

CtlRootCaEntry ::= HashedId32

ToBeSignedCtlSignature

This structure contains the CTL-instance-specific information used to generate a signature on the CTL. An overview of this structure is as follows:
  • electorGroupId
    contains the ElectorGroupId that appears in the CTL.
  • ctlType
    identifies the type of the CTL.
  • sequenceNumber
    contains the sequence number of the CTL being signed.
  • tbsCtlHash
    contains the hash of the C-OER encoded tbsCtl field in the MultiSignedCtl. The hash is calculated using the same hash algorithm that is used to generate the signature on this structure when it is contained in a CtlSignatureSpdu. This algorithm can be determined from the headers of the CtlSignatureSpdu.

ToBeSignedCtlSignature ::= SEQUENCE {

electorGroupId ElectorGroupId,

ctlType Ieee1609dot2dot1MsctlType,

sequenceNumber CtlSequenceNumber,

tbsCtlHash HashedId48

}

ToBeSignedCtlSignature ::= SEQUENCE {}

CertificateManagementInfoStatus

This structure contains the status of different certificate management information, including CRLs, CTLs, and individual certificates of CAs, MAs, and the RA.
  • crl
    contains the status information for CRLs.
  • ctl
    contains the status information for CTLs.
  • caCcf
    contains the time of the last update of any of the CA certificates in the CCF.
  • ma
    contains the status information for MA certificates.
  • ra
    contains the time of the last update of the RA's certificate. It is omitted if this structure is not sent by an RA.

SequenceOfCtlInfoStatus

This type is used for clarity of definitions.

SequenceOfCtlInfoStatus ::= SEQUENCE OF CtlInfoStatus

CtlInfoStatus

This structure contains the status information for a CTL.

CtlInfoStatus ::= SEQUENCE {

electorGroupId ElectorGroupId,

sequenceNumber CtlSequenceNumber,

lastUpdate Time32,

...

}

CtlInfoStatus ::= SEQUENCE {}

SequenceOfCrlInfoStatus

This type is used for clarity of definitions.

SequenceOfCrlInfoStatus ::= SEQUENCE OF CrlInfoStatus

SequenceOfCrlInfoStatus

This structure contains the status information for a CRL.
  • cracaId
    contains the CRACA ID of the CRL.
  • series
    contains the CRL series of the CRL.
  • issueDate
    contains the time of the last update of the CRL.

CrlInfoStatus ::= SEQUENCE {

cracaId HashedId8,

series CrlSeries,

issueDate Time32,

...

}

CrlInfoStatus ::= SEQUENCE {}

SequenceOfMaInfoStatus

This type is used for clarity of definitions.

SequenceOfMaInfoStatus ::= SEQUENCE OF MaInfoStatus

MaInfoStatus

This structure contains the status information for an MA's certificate.
  • psids
    contains the PSIDs associated with the misbehavior that is to be reported to that MA.
  • updated
    contains the time of the last update of the MA's certificate.

MaInfoStatus ::= SEQUENCE {

psids SequenceOfPsid,

updated Time32,

...

}

MaInfoStatus ::= SEQUENCE {}

END

Schema File eca-ee.asn
Schema File eca-ee.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: ECA - EE Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1EcaEeInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) eca-ee (9) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

EccP256CurvePoint, HashedId8, Time32, Uint8

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)}

FROM IEEE1609dot2BaseTypes {}

Certificate, CertificateType, SequenceOfCertificate

FROM 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)}

FROM IEEE1609dot2 {}

PublicVerificationKey, ToBeSignedCertificate

FROM Ieee1609Dot2Dot1Protocol {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) protocol (17)

major-version-2 (2)};

FROM Ieee1609Dot2Dot1Protocol {};

IMPORTS;

EcaEeInterfacePDU

This is the parent structure for all structures exchanged between the ECA and the EE. An overview of this structure is as follows:
  • eeEcaCertRequest
    contains the enrollment certificate request sent by the EE to the ECA.
  • ecaEeCertResponse
    contains the enrollment certificate response sent by the ECA to the EE.

EcaEeInterfacePdu ::= CHOICE {

eeEcaCertRequest EeEcaCertRequest,

ecaEeCertResponse EcaEeCertResponse,

...

}

EcaEeInterfacePdu ::= CHOICE {}

EeEcaCertRequest

This structure contains parameters needed to request an enrollment certificate from the ECA. The ECA may, subject to policy, issue an enrollment certificate with different contents than the contents requested. An overview of this structure is as follows:

NOTE 1: The tbsCert.cracaId and tbsCert.crlSeries are set to the indicated values in the corresponding EeEcaCertRequest. In the issued enrollment certificate, they may have different values, set by the ECA.

NOTE 2: The EE uses the type field to indicate whether it is requesting an explicit or an implicit enrollment certificate. A policy is anticipated that determines what type of certificate is appropriate for a given set of circumstances (such as PSIDs, other end entity information, and locality) and that if the EE has requested a kind of certificate that is not allowed by policy, the ECA returns an error to the EE.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of EeEcaCertRequest.
  • type
    indicates whether the request is for an explicit or implicit certificate (see 4.1.1, 4.1.4.3.1).
  • tbsCert
    contains the parameters used by the ECA to generate the enrollment certificate. tbsCert.verifyKeyIndicator.verificationKey contains the public key information sent by the requester. The verifyKeyIndicator field indicates the choice verificationKey even if type is implicit, as this allows the requester to indicate which signature algorithm and curve they are requesting. The value in this field is used as the verification key in the certificate if the certificate issued in response to this request is explicit, and as the input public key value for implicit certificate generation if the certificate issued in response to this request is implicit.
  • canonicalId
    is the canonical identifier for the device per 4.1.4.2. If it is present, it indicates that the enclosing EeEcaCertRequestSpdu has been signed by the canonical private key. The receiver is intended to use the canonicalId to look up the canonical public key to verify the certificate request.

EeEcaCertRequest ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

type CertificateType,

tbsCert ToBeSignedCertificate (WITH COMPONENTS {

...,

id (WITH COMPONENTS {

...,

linkageData ABSENT

}),

id (WITH COMPONENTS {}),

cracaId ('000000'H),

crlSeries (0),

appPermissions ABSENT,

certIssuePermissions ABSENT,

certRequestPermissions PRESENT,

verifyKeyIndicator (WITH COMPONENTS {verificationKey})

}),

tbsCert ToBeSignedCertificate (WITH COMPONENTS {}),

canonicalId IA5String OPTIONAL,

...

}

EeEcaCertRequest ::= SEQUENCE {}

EcaEeCertResponse

This structure is used by the ECA to respond to an EE's enrollment certificate request. Additional bootstrapping information including the RA's certificate are provided by the DCM. The specification of the DCM is outside the scope of this document. An overview of this structure is as follows:

NOTE: The ECA uses the tbsCert.verifyKeyIndicator field in the EeEcaCertRequest to determine whether the EE is requesting an explicit or an implicit enrollment certificate. A policy is anticipated that determines what type of certificate is appropriate for a given set of circumstances (such as PSIDs, other end entity information, and locality) and that if the EE has requested a kind of certificate that is not allowed by policy, the ECA returns an error to the EE.
  • version
    contains the current version of the structure.
  • requestHash
    contains the following hash:
    1. EeEcaCertRequestSPDU, if the corresponding request was EeEcaCertRequestSPDU.
    2. EeRaSuccessorEnrollmentCertRequestSpd, if the corresponding request was EeRaSuccessorEnrollmentCertRequestSpd.
  • ecaCertChain
    contains the ECA's currently valid certificate and the certificate chain, up to and including the root CA.
  • certificate
    contains the enrollment certificate generated by the ECA, which shall be of the type indicated by the type field in the corresponding request.
  • privateKeyInfo
    contains the private key reconstruction value, if certificate.type is implicit. This is used by the EE as specified in 9.3.5.1.

EcaEeCertResponse ::= SEQUENCE {

version Uint8 (2),

requestHash HashedId8,

ecaCertChain SequenceOfCertificate,

certificate Certificate,

privateKeyInfo OCTET STRING (SIZE (32)) OPTIONAL,

...

}

EcaEeCertResponse ::= SEQUENCE {}

END

Schema File ee-ma.asn
Schema File ee-ma.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: EE - MA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1EeMaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) ee-ma (10) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

EeMaInterfacePdu

This structure is currently being defined outside of this document, so it is defined as NULL for purposes of this document.

EeMaInterfacePdu ::= NULL

END

Schema File ee-ra.asn
Schema File ee-ra.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: EE - RA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1EeRaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) ee-ra (11) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

HashedId8, IValue, PublicEncryptionKey, Time32, Uint8

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)}

FROM IEEE1609dot2BaseTypes {}

CertificateType

FROM 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)}

FROM IEEE1609dot2 {}

EeEcaCertRequestSpdu, PublicVerificationKey, ToBeSignedCertificate

FROM Ieee1609Dot2Dot1Protocol {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) protocol (17)

major-version-2 (2)}

AcpcTreeId

FROM Ieee1609Dot2Dot1Acpc {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) acpc (18) major-version-1

(1)};

FROM Ieee1609Dot2Dot1Acpc {};

IMPORTS;

EeRaInterfacePDU

This is the parent structure for all structures exchanged between the EE and the RA. An overview of this structure is as follows:

NOTE: This CHOICE does not include a PDU type for encrypted misbehavior report upload; see 4.1.5.
  • eeRaCertRequest
    contains the certificate generation request sent by the EE to the RA.
  • raEeCertAck
    contains the RA's acknowledgement of the receipt of EeRaCertRequestSpdu.
  • raEeCertInfo
    contains the information about certificate download.
  • eeRaDownloadRequest
    contains the download request sent by the EE to the RA.
  • eeRaSuccessorEnrollmentCertRequest
    contains a self-signed request for an enrollment certificate, identical in format to the one submitted for an initial enrollment certificate. (This becomes a request for a successor enrollment certificate by virtue of being signed by the current enrollment certificate.)

EeRaInterfacePdu ::= CHOICE {

eeRaCertRequest EeRaCertRequest,

raEeCertAck RaEeCertAck,

raEeCertInfo RaEeCertInfo,

eeRaDownloadRequest EeRaDownloadRequest,

eeRaSuccessorEnrollmentCertRequest EeEcaCertRequestSpdu,

...

}

EeRaInterfacePdu ::= CHOICE {}

EeRaCertRequest

This structure contains parameters needed to request different types of authorization certificates. An overview of this structure is as follows:

NOTE 1: In the case where the butterfly key mechanism is used to derive the certificate encryption key, the value j is not communicated to the ACA. However, the EE that receives the certificate response can only decrypt the response if it knows j. The RA is therefore anticipated to store j so that it can be associated with the appropriate certificate response.

NOTE 2: The EE uses the type field to indicate whether it is requesting an explicit or an implicit authorization certificate. A policy is anticipated that determines what type of certificate is appropriate for a given set of circumstances (such as PSIDs, other end entity information, locality, ...) and that if the EE has requested a kind of certificate that is not allowed by policy, the ACA returns an error to the EE. This implies that the certificate issued by the ACA is always of type indicated in the EeRaCertRequest.

NOTE 3 This document does not specify a method to include an encryptionKey in the requested certificates, if the butterfly key mechanism is used. The EE using such a certificate to sign a message can request an encrypted response using the tbsData.headerInfo.encryptionKey field of the SignedData; see 6.3.9, 6.3.33, 6.3.34, and 6.3.36 of IEEE Std 1609.2 for more details.
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of EeRaCertRequest.
  • type
    indicates whether the request is for an explicit or implicit certificate (see 4.1.1 and 4.1.4.3.1).
  • tbsCert
    contains the parameters to be used by the ACA to generate authorization certificate(s).
    1. id contains the identity information sent by the requester. If the type is LinkageData, the RA replaces that in the certificates with the linkage values generated with the help of the LAs and the ACA; see Annex D.
    2. validityPeriod contains the requested validity period of the first batch of certificates.
    3. region, assuranceLevel, canRequestRollover, and encryptionKey, if present, contain the information sent by the requester for the requested certificates.
    4. verifyKeyIndicator.verificationKey contains the public key information sent by the requester. The verifyKeyIndicator field indicates the choice verificationKey even if type is implicit, as this allows the requester to indicate which signature algorithm and curve they are requesting.
      1. If the certificate issued in response to this request is explicit and butterfly expansion is not used, the value in this field is the verification key that appears in that certificate.
      2. If the certificate issued in response to this request is implicit and butterfly expansion is not used, the value in this field is the input public key value for implicit certificate generation.
      3. If butterfly expansion is used, that is, if one of (original, unified, compactUnified) options is present in the field additionalParams, the value in this field is combined with the values in the additionalParams field as specified in 9.3.
  • additionalParams
    contains relevant parameters for generating the requested certificates using the butterfly key mechanism as specified in 9.3, or for encrypting the certificates without using the butterfly key mechanism. If present, the field tbsCert.verifyKeyIndicator shall be used as the caterpillar public key for signing in the butterfly key mechanism.

EeRaCertRequest ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

type CertificateType,

tbsCert ToBeSignedCertificate (WITH COMPONENTS {

...,

cracaId ('000000'H),

crlSeries (0),

appPermissions PRESENT,

certIssuePermissions ABSENT,

certRequestPermissions ABSENT,

verifyKeyIndicator (WITH COMPONENTS {verificationKey})

}),

tbsCert ToBeSignedCertificate (WITH COMPONENTS {}),

additionalParams AdditionalParams OPTIONAL,

...

}

EeRaCertRequest ::= SEQUENCE {}

AdditionalParams

This structure contains parameters for the butterfly key mechanism. An overview of this structure is as follows:
  • original
    contains the parameters for the original variant.
  • unified
    contains the expansion function for signing to be used for the unified variant. The caterpillar public key and expansion function for encryption are the same as those for signing.
  • compactUnified
    contains the expansion function for signing to be used for the compact unified variant. The caterpillar public key and expansion function for encryption are the same as those for signing.
  • encryptionKey
    contains the public key for encrypting the certificate if the butterfly key mechanism is not used.

AdditionalParams ::= CHOICE {

original ButterflyParamsOriginal,

unified ButterflyExpansion,

compactUnified ButterflyExpansion,

encryptionKey PublicEncryptionKey,

...

}

AdditionalParams ::= CHOICE {}

ButterflyParamsOriginal

This structure contains parameters for the original variation of the butterfly key mechanism. An overview of this structure is as follows:

ButterflyParamsOriginal ::= SEQUENCE {

signingExpansion ButterflyExpansion,

encryptionKey PublicEncryptionKey,

encryptionExpansion ButterflyExpansion

}

ButterflyParamsOriginal ::= SEQUENCE {}

ButterflyExpansion

This structure contains material used in the butterfly key calculations as specified in 9.3.5.1 and 9.3.5.2. An overview of this structure is as follows:
  • aes128
    indicates that the symmetric algorithm used in the expansion function is AES-128 with the indicated 16 byte string used as the key.

ButterflyExpansion ::= CHOICE {

aes128 OCTET STRING (SIZE (16)),

...

}

ButterflyExpansion ::= CHOICE {}

RaEeCertAck

This structure is used to create the acknowledgement for certificate requests. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of RaEeCertAck.
  • requestHash
    contains the hash of the corresponding EeRaCertRequestSpdu.
  • firstI
    contains the i-value that will be associated with the first certificate or certificate batch that will be made available to the EE. The EE uses this to form the download filename for the download request as specified in 8.2.2.
  • nextDlTime
    contains the time after which the EE should connect to the RA to download the certificates.

RaEeCertAck ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

requestHash HashedId8,

firstI IValue OPTIONAL,

nextDlTime Time32,

...

}

RaEeCertAck ::= SEQUENCE {}

RaEeCertInfo

This structure is used to create the info file that accompanies a batch of certificates for download as specified in 8.2.3. It is used when certificates were generated using the butterfly key expansion mechanism specified in 9.3. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • generationTime
    contains the generation time of RaEeCertInfo.
  • currentI
    contains the i-value associated with the batch of certificates.
  • requestHash
    contains the hash of the corresponding EeRaCertRequestSpdu.
  • nextDlTime
    contains the time after which the EE should connect to the RA to download the certificates.
  • acpcTreeId
    contains the ACPC Tree Id if the certificates were generated using ACPC as specified in 9.5.

RaEeCertInfo ::= SEQUENCE {

version Uint8 (2),

generationTime Time32,

currentI IValue,

requestHash HashedId8,

nextDlTime Time32,

acpcTreeId AcpcTreeId OPTIONAL,

...

}

RaEeCertInfo ::= SEQUENCE {}

EeRaDownloadRequest

This structure contains parameters needed to request the download of certificates from the RA. An overview of this structure is as follows:
  • generationTime
    contains the generation time of EeRaDownloadRequest.
  • filename
    contains the name of the file requested for download, formed as specified in 8.2.2.

EeRaDownloadRequest ::= SEQUENCE {

generationTime Time32,

filename UTF8String (SIZE (0..255)),

...

}

EeRaDownloadRequest ::= SEQUENCE {}

END

Schema File la-ma.asn
Schema File la-ma.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: LA - MA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1LaMaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) la-ma (12) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

LaMaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.

LaMaInterfacePdu ::= NULL

END

Schema File la-ra.asn
Schema File la-ra.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: LA - RA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1LaRaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) la-ra (13) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

LaRaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.

LaRaInterfacePdu ::= NULL

END

Schema File ma-ra.asn
Schema File ma-ra.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: MA - RA Interface --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1MaRaInterface {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) ma-ra (14) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

MaRaInterfacePdu

This structure is not used by EEs, so it is defined as NULL for purposes of this document.

MaRaInterfacePdu ::= NULL

END

Schema File protocol.asn
Schema File protocol.asn

--***************************************************************************--

-- IEEE Std 1609.2.1: Protocol --

--***************************************************************************--

NOTE: Section references in this file are to clauses in IEEE Std 1609.2.1 unless indicated otherwise. Full forms of acronyms and abbreviations used in this file are specified in 3.2.

Ieee1609Dot2Dot1Protocol {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) protocol (17) major-version-2

(2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

CrlSeries, EccP256CurvePoint, EccP384CurvePoint, EcdsaP256Signature,

EcdsaP384Signature, GeographicRegion, HashAlgorithm, HashedId3, Psid,

PublicEncryptionKey, SequenceOfPsid, SequenceOfPsidSsp, SubjectAssurance,

Uint8, Uint16, 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)}

FROM IEEE1609dot2BaseTypes {}

Certificate, CertificateId, Ieee1609Dot2Data, SequenceOfCertificate,

SequenceOfPsidGroupPermissions, SignerIdentifier, VerificationKeyIndicator

FROM 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)}

FROM IEEE1609dot2 {}

AcaEeInterfacePdu

FROM Ieee1609Dot2Dot1AcaEeInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ee (1)

major-version-2 (2)}

AcaLaInterfacePdu

FROM Ieee1609Dot2Dot1AcaLaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-la (2)

major-version-2 (2)}

AcaMaInterfacePdu

FROM Ieee1609Dot2Dot1AcaMaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ma (3)

major-version-2 (2)}

AcaRaInterfacePdu

FROM Ieee1609Dot2Dot1AcaRaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) aca-ra (4)

major-version-2 (2)}

AcpcTreeId

FROM Ieee1609Dot2Dot1Acpc {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

extension-standards (255) dot1 (1) interfaces (1) acpc (18) major-version-1

(1)}

FROM Ieee1609Dot2Dot1Acpc {}

CertManagementPdu

FROM Ieee1609Dot2Dot1CertManagement {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) cert-management (7)

major-version-2 (2)}

EcaEeInterfacePdu

FROM Ieee1609Dot2Dot1EcaEeInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) eca-ee (9)

major-version-2 (2)}

EeMaInterfacePdu

FROM Ieee1609Dot2Dot1EeMaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ee-ma (10)

major-version-2 (2)}

EeRaInterfacePdu

FROM Ieee1609Dot2Dot1EeRaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ee-ra (11)

major-version-2 (2)}

LaMaInterfacePdu

FROM Ieee1609Dot2Dot1LaMaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) la-ma (12)

major-version-2 (2)}

LaRaInterfacePdu

FROM Ieee1609Dot2Dot1LaRaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) la-ra (13)

major-version-2 (2)}

MaRaInterfacePdu

FROM Ieee1609Dot2Dot1MaRaInterface {iso (1) identified-organization (3) ieee

(111) standards-association-numbered-series-standards (2) wave-stds (1609)

dot2 (2) extension-standards (255) dot1 (1) interfaces (1) ma-ra (14)

major-version-2 (2)};

IMPORTS;

SecurityMgmtPsid

This PSID, 0x23, identifies security management activities as defined in this document.

SecurityMgmtPsid ::= Psid (35)

ScmsPdu

This is the parent structure that encompasses all parent structures of interfaces defined in the SCMS. An overview of this structure is as follows:
  • version
    contains the current version of the structure.
  • aca-ee
    contains the interface structures defined for interaction between the ACA and the EE.
  • aca-la
    contains the interface structures defined for interaction between the ACA and the LA.
  • aca-ma
    contains the interface structures defined for interaction between the ACA and the MA.
  • aca-ra
    contains the interface structures defined for interaction between the ACA and the RA.
  • cert
    contains the interface structures defined for certificate management.
  • eca-ee
    contains the interface structures defined for interaction between the ECA and the EE.
  • ee-ma
    contains the interface structures defined for interaction between the EE and the MA.
  • ee-ra
    contains the interface structures defined for interaction between the EE and the RA.
  • la-ma
    contains the interface structures defined for interaction between the LA and the MA.
  • la-ra
    contains the interface structures defined for interaction between the LA and the RA.
  • ma-ra
    contains the interface structures defined for interactions between the MA and the RA.

ScmsPdu ::= SEQUENCE {

version Uint8 (2),

content CHOICE {}

}

ScmsPdu ::= SEQUENCE {}

--***************************************************************************--

-- Types from IEEE 1609.2 Redefined --

--***************************************************************************--

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3 of IEEE Std 1609.2a-2017.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields:
  • If present, this is a critical information field as defined in 5.2.6 of IEEE Std 1609.2-2016. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

PublicVerificationKey ::= CHOICE {

ecdsaNistP256 EccP256CurvePoint,

ecdsaBrainpoolP256r1 EccP256CurvePoint,

...,

ecdsaBrainpoolP384r1 EccP384CurvePoint,

ecdsaNistP384 EccP384CurvePoint

}

PublicVerificationKey ::= CHOICE {}

Signature

This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate.

Signature ::= CHOICE {

ecdsaNistP256Signature EcdsaP256Signature,

ecdsaBrainpoolP256r1Signature EcdsaP256Signature,

...,

ecdsaBrainpoolP384r1Signature EcdsaP384Signature,

ecdsaNistP384Signature EcdsaP384Signature

}

Signature ::= CHOICE {}

ToBeSignedCertificate

This is the ToBeSignedCertificate structure from IEEE Std 1609.2, extended to support operations in this document. The fields in this structure that are defined in IEEE Std 1609.2 have the same semantics in this document as they do in IEEE Std 1609.2. The new fields in this document are defined as follows:
  • flags
    indicates additional yes/no properties of the certificate holder. The only bit with defined semantics in this string is cubk. If set, the cubk bit indicates that the certificate holder supports the compact unified butterfly key response. If this field is present at least one of the bits in the field shall be nonzero.

ToBeSignedCertificate ::= SEQUENCE {

id CertificateId,

cracaId HashedId3,

crlSeries CrlSeries,

validityPeriod ValidityPeriod,

region GeographicRegion OPTIONAL,

assuranceLevel SubjectAssurance OPTIONAL,

appPermissions SequenceOfPsidSsp OPTIONAL,

certIssuePermissions SequenceOfPsidGroupPermissions OPTIONAL,

certRequestPermissions SequenceOfPsidGroupPermissions OPTIONAL,

canRequestRollover NULL OPTIONAL,

encryptionKey PublicEncryptionKey OPTIONAL,

verifyKeyIndicator VerificationKeyIndicator,

...,

flags BIT STRING {cubk (0)} (SIZE (8)) OPTIONAL

} (WITH COMPONENTS {

ToBeSignedCertificate ::= SEQUENCE {} (WITH COMPONENTS {

...,

appPermissions PRESENT

} | WITH COMPONENTS {

...,

certIssuePermissions PRESENT

} | WITH COMPONENTS {

} | WITH COMPONENTS {} | WITH COMPONENTS {

...,

certRequestPermissions PRESENT

})

--***************************************************************************--

-- Parameterized Types --

--***************************************************************************--

ScmsPdu-Scoped

This structure defines a parameterized type for creating a scoped data as a subtype of ScmsPdu.

ScmsPdu-Scoped {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured

This structure defines a parameterized type for creating an unsecured data as a subtype of Ieee1609Dot2Data.

Ieee1609Dot2Data-Unsecured {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed

This structure defines a parameterized type for creating a signed data as a subtype of Ieee1609Dot2Data.

Ieee1609Dot2Data-Signed {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Encrypted

This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
  • Tbe
    is first encrypted and the resulting ciphertext is used as input to the encryptedData field.

Ieee1609Dot2Data-Encrypted {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (CONSTRAINED BY {

--encryption of--

Tbe

})

encryptedData (CONSTRAINED BY {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-EncryptedOpen

This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. This structure differs from Ieee1609Dot2Data-Encrypted in that it does not specify the contents of the encrypted data.

Ieee1609Dot2Data-EncryptedOpen ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData})

})

Ieee1609Dot2Data-EncryptedOpen ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-SignedCertRequest

This structure defines a parameterized type for creating a signed certificate request as a subtype of Ieee1609Dot2Data.

Ieee1609Dot2Data-SignedCertRequest {Tbscr, Signer} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedCertificateRequest (CONTAINING SignedCertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

X509Certificate

This structure is a wrapper for an ITU-T X.509 certificate.

NOTE: ITU-T X.509 certificates are encoded with the ASN.1 DER rather than the OER used in this document and so cannot be "directly" imported into these structures.

X509Certificate ::= OCTET STRING

SequenceOfX509Certificate

This type is used for clarity of definitions.

SequenceOfX509Certificate ::= SEQUENCE OF X509Certificate

X509SignerIdentifier

This structure identifies an ITU-T X.509 certificate used to sign a signed data structure. The only data structure currently defined that can be signed by an ITU-T X.509 certificate is SignedX509CertificateRequest.

X509SignerIdentifier ::= CHOICE {

certificate SequenceOfX509Certificate,

...

}

X509SignerIdentifier ::= CHOICE {}

Ieee1609Dot2Data-SignedX509AuthenticatedCertRequest

This structure defines a parameterized type for creating a certificate request, signed with an ITU-T X.509 certificate, as a subtype of Ieee1609Dot2Data. It makes use of the extension of Ieee1609Dot2Content defined in 11.2.3.

Ieee1609Dot2Data-SignedX509AuthenticatedCertRequest {Tbscr, Signer} ::=

Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedX509CertificateRequest (CONTAINING SignedX509CertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-SignedEncrypted

This structure defines a parameterized type for creating a signed then encrypted data as a subtype of Ieee1609Dot2Data.

Ieee1609Dot2Data-SignedEncrypted {Tbse, Psid} ::= Ieee1609Dot2Data-Encrypted

{Ieee1609Dot2Data-Signed {Tbse, Psid}}

Ieee1609Dot2Data-EncryptedSigned

This structure defines a parameterized type for creating an encrypted then signed data as a subtype of Ieee1609Dot2Data.

Ieee1609Dot2Data-EncryptedSigned {Tbes, Psid} ::= Ieee1609Dot2Data-Signed

{Ieee1609Dot2Data-Encrypted {Tbes}, Psid}

Ieee1609Dot2Data-EncryptedOpenSigned

This structure defines a parameterized type for creating an encrypted then signed data as a subtype of Ieee1609Dot2Data. Unlike Ieee1609Dot2Data-EncryptedSigned, this structure does not specify the contents to be encrypted. This structure is intended for use in misbehavior report upload where the encrypted data is received by the RA that does not know the contents.

Ieee1609Dot2Data-EncryptedOpenSigned {Psid} ::= Ieee1609Dot2Data-Signed

{Ieee1609Dot2Data-EncryptedOpen, Psid}

Ieee1609Dot2Data-SignedEncryptedCertRequest

This structure defines a parameterized type for creating a signed then encrypted certificate request as a subtype of Ieee1609Dot2Data.

Ieee1609Dot2Data-SignedEncryptedCertRequest {Tbstecr, Signer} ::=

Ieee1609Dot2Data-Encrypted

Ieee1609Dot2Data-SymmEncryptedSingleRecipient

This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
  • Tbe
    is first encrypted and the resulting ciphertext is used as input to the encryptedData field.

Ieee1609Dot2Data-SymmEncryptedSingleRecipient {Tbe} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (CONSTRAINED BY {

--contains only one RecipientInfo, of form symmRecipinfo

--symmetric encryption of--

Tbe

})

encryptedData (CONSTRAINED BY {})

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

--***************************************************************************--

-- Signer Types --

--***************************************************************************--

SignerSingleCert

This structure is used to indicate a SignerIdentifier with a certificate chain of size 1.

SignerSingleCert ::= SignerIdentifier (WITH COMPONENTS {certificate

(SequenceOfCertificate (SIZE (1)))})

SignerSingleCert ::= SignerIdentifier (WITH COMPONENTS {})

SignerSingleX509Cert

This structure is used to indicate an X509SignerIdentifier with a certificate chain of size 1.

SignerSelf

This structure is used to indicate a SignerIdentifier of type self.

SignerSelf ::= SignerIdentifier (WITH COMPONENTS {self})

--***************************************************************************--

-- Certificate Requests --

--***************************************************************************--

ScopedCertificateRequest

This structure defines the all certificate request structures as a scoped version of the ScmsPdu.

{} | ScmsPdu-Scoped

{EeRaInterfacePdu (WITH COMPONENTS

{eeRaCertRequest})} | ScmsPdu-Scoped

{} | ScmsPdu-Scoped

{})

SignedCertificateRequest

This structure defines the format of a signed certificate request. An overview of this structure is as follows:

The signature is generated on the hash of this structure, obtained per the rules specified for hashing data objects in 5.3.1 of IEEE Std 1609.2a-2017, with the parameter Data Input equal to the C-OER encoding of tbsRequest, and the parameter Signer Identifier Input equal to the signer's enrollment certificate.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tbsRequest
    contains the certificate request information that is signed by the recipient.
  • signer
    denotes the signing entity's identifier.
  • signature
    contains the request sender's signature.

SignedCertificateRequest ::= SEQUENCE {

hashAlgorithmId HashAlgorithm,

tbsRequest ScopedCertificateRequest,

signer SignerIdentifier,

signature Signature

}

SignedCertificateRequest ::= SEQUENCE {}

SignedX509CertificateRequest

This structure contains a certificate request signed with an ITU-T X.509 certificate. The only type of certificate request signed with an ITU-T X.509 certificate supported in this document is an authorization certificate request. An overview of this structure is as follows:

The signature is generated on the hash of this structure, obtained per the rules specified for hashing data objects in 5.3.1 of IEEE Std 1609.2a-2017, with the parameter Data Input equal to the C-OER encoding of tbsRequest, and the parameter Signer Identifier Input equal to the signer's certificate, that is, the ITU-T X.509 certificate contained in the OCTET STRING indicated by the first X509Certificate in signer.
  • hashAlgorithmId
    contains the identifier of the hash algorithm used inside the binary tree.
  • tbsRequest
    contains the certificate request information that is signed by the recipient.
  • signer
    denotes the signing entity's identifier.
  • signature
    contains the request sender's signature.

SignedX509CertificateRequest ::= SEQUENCE {

hashAlgorithmId HashAlgorithm,

tbsRequest ScopedCertificateRequest,

signer X509SignerIdentifier,

signature Signature

}

SignedX509CertificateRequest ::= SEQUENCE {}

--***************************************************************************--

-- ACA - EE Interface --

--***************************************************************************--

AcaEeCertResponsePlainSpdu

This structure contains a certificate response for consumption by the EE. In the architecture of this document, although it is created by the ACA, it is made available to the EE via the RA as described in 8.2.

The ACA creates this response when 1) the compact unified butterfly key mechanism is not being used (that is, some other flavor of butterfly key is being used, or butterfly keys are not being used) and 2) it is not necessary to protect the EE's privacy from the RA, for example, when the certificate being returned is not a pseudonym certificate.

AcaEeCertResponsePrivateSpdu

This structure contains a certificate response for consumption by the EE. In the architecture of this document, although it is created by the ACA, it is made available to the EE via the RA as described in 8.2.

The ACA creates this response when 1) the compact unified butterfly key mechanism is not being used (that is, some other flavor of butterfly key is being used, or butterfly keys are not being used) and 2) it is necessary to protect the EE's privacy from the RA, for example when the certificate being returned is a pseudonym certificate.

The structure consists of a signed SPDU containing an encrypted SPDU.

The encrypted SPDU is encrypted with the response encryption key that was provided to the ACA for that purpose. This key is determined as follows:
  • If the original EeRaCertRequest from the end entity indicated a single response encryption key, that is, if the additionalParams.encryptionKey field was present in the request, then the response is encrypted with that key.
  • If the original EeRaCertRequest from the end entity indicated a response encryption key generated with the “original” butterfly key mechanism, that is, the additionalParams.original field was provided in the request, then the response is encrypted with the cocoon encryption key derived from additionalParams.original.encryptionKey and additionalParams.original.encryptionExpansion as specified in 9.3.4.2 and the corresponding decryption private key is derived as specified in 9.3.4.1.
  • If the original EeRaCertRequest from the end entity indicated a response encryption key generated with the “unified” butterfly key mechanism, that is, the additionalParams.unified field was provided in the request, then the response is encrypted with the cocoon encryption key derived from tbsCert.verifyKeyIndicator and additionalParams.unified as specified in 9.3.4.2 and the corresponding decryption private key is derived as specified in 9.3.4.1.
See 9.3 for more material about butterfly keys.

The resulting Ieee1609Dot2Data of content type encryptedData is signed by the same ACA certificate that was used to issue the certificate field in the AcaEeCertResponse. If this structure is signed by a different ACA certificate, it is invalid. The ACA certificate shall follow the ACA certificate profile given in 7.7.3.2.

NOTE 1: Other potential responses to an authorization certificate request. If the original request indicated the use of “compact unified” butterfly key mechanism by including the additionalParams.compactUnified field, the response shall be a AcaEeCertResponseCubkSpdu, not a AcaEeCertResponsePrivateSpdu.

NOTE 2: How the ACA obtains the response encryption key. This document provides the RaAcaCertRequest structure to allow the RA to indicate whether the original or unified butterfly key mechanism is to be used via the flags field. The encryption key for encrypting AcaEeCertResponse is calculated by the indicated method even if the RA does not use an RaAcaCertRequest as defined in this document to communicate the certificate request to the ACA.

NOTE 3: Consistency between inner and outer signers, and the IEEE Std 1609.2 model. This SPDU introduces a new type of validity condition by requiring that the ACA that signs the outer signed SPDU is also the ACA that issued the certificate inside the encrypted SPDU. This requires that to verify the inner “SPDU”, that is, the certificate, the verifier needs to store the information from the outer SPDU. This is not a violation of the IEEE 1609.2 model: Subclause 4.2.2.3 of IEEE Std 1609.2 considers all operations carried out on received data to be atomic and does not put any restrictions on the information that is stored between operations. However, it should be noted that because the IEEE 1609.2 approach enables SPDUs to be nested within one another as Ieee1609Dot2Data, in principle an implementation could be built that iterated through the layers of a nested SPDU within a single call from the invoking application instance. (And it should also be noted that IEEE Std 1609.2 was consciously designed to enable this approach: Although the primitives provided in IEEE Std 1609.2 only support the series-of-single-operations approach, an implementation could layer this “one-invocation processing” on top of the IEEE 1609.2 interface as an optimization.) A “one-invocation processing” implementation of that type would have to anticipate situations of coupling between inner and outer SPDUs like the one created by this AcaEeCertResponsePrivateSpdu, and allow the invoking certificate management service to check consistency at the application layer, perhaps by (for example) returning the signing certificates for all nested signed SPDUs. How this is to be implemented is implementation specific; this note is intended as a notification of this potential issue to implementers planning to implement one-invocation processing.

AcaEeCertResponsePrivateSpdu ::= Ieee1609Dot2Data-EncryptedSigned

AcaEeCertResponseCubkSpdu

This structure contains a certificate response for consumption by the EE. In the architecture of this document, although it is created by the ACA, it is made available to the EE via the RA as described in 8.2.

The ACA creates a certificate response in this form when the compact unified butterfly key mechanism is being used. If the RaAcaCertRequest structure was used to communicate between the RA and the ACA, the RA indicated use of compact unified butterfly keys by setting the cubk (1) bit in the bkType field in the corresponding RaAcaCertRequest.

The AcaEeCertResponse is encrypted by the ACA using the cocoon public key for encryption. See 9.3.4.2 for how the ACA derives the cocoon public key for encryption, using the tbsCert.verifyKeyIndicator field in the corresponding RaAcaCertRequest as the input cocoon public key for signing Bt. See 9.3.4.1 for how the EE derives the corresponding cocoon private key for encryption.

--***************************************************************************--

-- ACA - LA Interface --

--***************************************************************************--

--***************************************************************************--

-- ACA - MA Interface --

--***************************************************************************--

--***************************************************************************--

-- ACA - RA Interface --

--***************************************************************************--

RaAcaCertRequestSpdu

This structure is the SPDU used to send a signed RaAcaCertRequest. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9, contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating RaSsp. The toBeSigned.certRequestPermissions field of the RA certificate shall permit the requested permissions in the raAcaCertRequest.tbsCert.appPermissions field.

AcaRaCertResponseSpdu

This structure is the SPDU used to send a signed AcaRaCertResponse. For the signature to be valid the signing certificate shall contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating AcaSsp.

--***************************************************************************--

-- Certificate Management --

--***************************************************************************--

CompositeCrlSpdu

This structure is the SPDU used to send an unsecured CompositeCrl. It is used to create composite CRL files as specified in 8.5.

CertificateChainSpdu

This structure is the SPDU used to send an unsecured CertificateChain. It is used to create certificate chain files as specified in 8.4.

MultiSignedCtlSpdu

This structure is the SPDU used to send an unsecured MultiSignedCtl.

CtlSignatureSpdu

This structure is the SPDU used to send a signed ToBeSignedCtlSignature. For the signature to be valid, the signing certificate shall match the elector certificate profile in 7.7.3.7. This means that the signature is calculated as specified in IEEE Std 1609.2, with the data input to the hash process consisting of the C-OER encoding of the tbsData that includes the ToBeSignedCtlSignature.

CertificateManagementInformationStatusSpdu

This structure is the SPDU used to send a signed CertManagementInfoStatus. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9 or the DC certificate profile given in 7.7.3.10.

CertificateManagementInformationStatusSpdu ::= Ieee1609Dot2Data-Signed

{}

--***************************************************************************--

-- ECA - EE Interface --

--***************************************************************************--

EeEcaCertRequestSpdu

This structure is the SPDU used to send a signed EeEcaCertRequest, as follows:
  • If eeEcaCertRequest.canonicalId is not present, the EE signs this structure using the private key corresponding to the tbsCert.verifyKeyIndicator field of the EeEcaCertRequest.
  • If eeEcaCertRequest.canonicalId is present, the EE signs this structure using the canonical private key as specified in 4.1.4.2.

EcaEeCertResponseSpdu

This structure is the SPDU used to send a signed EcaEeCertResponse. For the signature to be valid, the signing certificate shall contain a PSID equal to SecurityMgmtPsid (0x23) and a corresponding SSP containing the C-OER encoding of an ScmsSsp indicating EcaSsp.

--***************************************************************************--

-- EE - MA Interface --

--***************************************************************************--

--***************************************************************************--

-- EE - RA Interface --

--***************************************************************************--

EeRaCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted EeRaCertRequest. It is a choice of the IEEE 1609.2 authenticated certificate request, which may be any kind of EE-RA certificate request, and the ITU-T X.509 certificate request, which is required to be an authorization certificate request.

EeRaCertRequestSpdu ::= Ieee1609Dot2Data

(EeRa1609Dot2AuthenticatedCertRequestSpdu |

EeRaX509AuthenticatedCertRequestSpdu)

EeRa1609Dot2AuthenticatedCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted IEEE 1609.2 authenticated certificate request. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.

EeRa1609Dot2AuthenticatedCertRequestSpdu ::=

Ieee1609Dot2Data-SignedEncryptedCertRequest

{}

EeRaX509AuthenticatedCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted ITU-T X.509authenticated certificate request. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.6. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.

EeRaX509AuthenticatedCertRequestSpdu ::= Ieee1609Dot2Data-Encrypted

RaEeCertAckSpdu

This structure is the SPDU used to send a signed RaEeCertAck to acknowledge the receipt of an EeRaCertRequestSpdu. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.

RaEeCertInfoSpdu

This structure is the SPDU used to create an unsigned .info file to be included in a certificate batch zip file as specified in 8.2. This SPDU is used if the RaEeCertInfo does not contain an acpcTreeId field.

RaEeCertAndAcpcInfoSpdu

This structure is the SPDU used to create a signed .info file to be included in a certificate batch zip file as specified in 8.2. This SPDU is used if the RaEeCertInfo contains an acpcTreeId field. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.

EeRaDownloadRequestPlainSpdu

This structure is the SPDU used to send an unsecured EeRaDownloadRequest.

EeRaDownloadRequestSpdu

This structure is the SPDU used to send an signed then encrypted EeRaDownloadRequest. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.

EeRaSuccessorEnrollmentCertRequestSpdu

This structure is the SPDU used to send a signed then encrypted EeEcaCertRequestSpdu. The EE signs this structure using its enrollment certificate. The enrollment certificate shall conform to the enrollment certificate profile given in 7.7.3.5. The EE encrypts the signed structure using the encryptionKey from the RA's certificate.

EeRaSuccessorEnrollmentCertRequestSpdu ::=

Ieee1609Dot2Data-SignedEncryptedCertRequest

RaEeEnrollmentCertAckSpdu

This structure is the SPDU used to send a signed RaEeCertInfo. For the signature to be valid the signing certificate shall conform to the RA certificate profile given in 7.7.3.9.

EeRaEncryptedSignedMisbehaviorReportSpdu

This structure is used for misbehavior report upload when EE authentication is done at the SCMS REST API v2 level (see 6.3.5.6). The contents of the encrypted data are misbehavior report specific and outside the scope of this document. The contents are encrypted for the MA certificate.

EeRaEncryptedSignedMisbehaviorReportSpdu ::=

Ieee1609Dot2Data-EncryptedOpenSigned {AnyMbrPsid}

EeRaEncryptedMisbehaviorReportSpdu

This structure is used for misbehavior report upload when EE authentication is done at the Web API level (see 6.3.5.6). The contents of the encrypted data are misbehavior report specific and outside the scope of this document. The contents are encrypted for the MA certificate.

EeRaEncryptedMisbehaviorReportSpdu ::= Ieee1609Dot2Data-EncryptedOpen

AnyMbrPsid

This structure is a list of the PSIDs entitled to authorize misbehavior report upload. It currently only lists one PSID. It is intended to be extensible as additional misbehavior reporting PSIDs are defined and to take the form AnyMbrPsid = Psid (BaseMbrPsid | MbrPsid2 | MbrPsid3 | etc.).

AnyMbrPsid ::= Psid (BaseMbrPsid)

BaseMbrPsid

This PSID identifies misbehavior reporting for a baseline set of applications. It is owned by CAMP.

BaseMbrPsid ::= Psid (38)

--***************************************************************************--

-- LA - MA Interface --

--***************************************************************************--

--***************************************************************************--

-- LA - RA Interface --

--***************************************************************************--

--***************************************************************************--

-- MA - RA Interface --

--***************************************************************************--

--***************************************************************************--

-- Service Specific Permissions --

--***************************************************************************--

ScmsSsp

This parent structure defines the SSP for PSID 0x23 and encompasses all SSP structures defined in this document. An overview of this structure is as follows:

NOTE: The LOP is in the SSP for backward compatibility reasons, and in practice, in this design the LOP does not have a certificate.
  • elector
    contains the SSP defined for an elector.
  • root
    contains the SSP defined for a root CA.
  • pg
    contains the SSP defined for a policy generator.
  • ica
    contains the SSP defined for an intermediate CA.
  • eca
    contains the SSP defined for an enrollment CA.
  • aca
    contains the SSP defined for an authorization CA.
  • crl
    contains the SSP defined for a CRL signer.
  • dcm
    contains the SSP defined for a device configuration manager.
  • la
    contains the SSP defined for a linkage authority.
  • lop
    contains the SSP defined for a location obscurer proxy.
  • ma
    contains the SSP defined for a misbehavior authority.
  • ra
    contains the SSP defined for a registration authority.
  • ee
    contains the SSP defined for an end entity.
  • dc
    contains the SSP defined for a distribution center.

ScmsSsp ::= CHOICE {

elector ElectorSsp,

root RootCaSsp,

pg PgSsp,

ica IcaSsp,

eca EcaSsp,

aca AcaSsp,

crl CrlSignerSsp,

dcm DcmSsp,

la LaSsp,

lop LopSsp,

ma MaSsp,

ra RaSsp,

ee EeSsp,

...,

dc DcSsp

}

ScmsSsp ::= CHOICE {}

ElectorSsp

This structure defines the SSP for an elector when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

ElectorSsp ::= SEQUENCE {

version Uint8 (2),

...

}

ElectorSsp ::= SEQUENCE {}

RootCaSsp

This structure defines the SSP for a root CA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

RootCaSsp ::= SEQUENCE {

version Uint8 (2),

...

}

RootCaSsp ::= SEQUENCE {}

PgSsp

This structure defines the SSP for a policy generator when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

PgSsp ::= SEQUENCE {

version Uint8 (2),

...

}

PgSsp ::= SEQUENCE {}

IcaSsp

This structure defines the SSP for an intermediate CA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

IcaSsp ::= SEQUENCE {

version Uint8 (2),

...

}

IcaSsp ::= SEQUENCE {}

EcaSsp

This structure defines the SSP for an enrollment CA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

EcaSsp ::= SEQUENCE {

version Uint8 (2),

...

}

EcaSsp ::= SEQUENCE {}

AcaSsp

This structure defines the SSP for an ACA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

AcaSsp ::= SEQUENCE {

version Uint8 (2),

...

}

AcaSsp ::= SEQUENCE {}

CrlSignerSsp

This structure defines the SSP for a CRL signer when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

NOTE: The SSP for a CRL signer when signing CRLs is associated with PSID 0x0100 and is defined in IEEE Std 1609.2.

CrlSignerSsp ::= SEQUENCE {

version Uint8 (2),

...

}

CrlSignerSsp ::= SEQUENCE {}

DcmSsp

This structure defines the SSP for a device configuration manager when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

DcmSsp ::= SEQUENCE {

version Uint8 (2),

...

}

DcmSsp ::= SEQUENCE {}

LaSsp

This structure defines the SSP for a linkage authority when it is authorizing Security Management messages (PSID 0x23). The SSP contains the 16 bit LA ID for that linkage authority.

LaSsp ::= SEQUENCE {

version Uint8 (2),

laId Uint16,

...

}

LaSsp ::= SEQUENCE {}

LopSsp

This structure defines the SSP for a location obscurer proxy (LOP) when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

NOTE: The LOP is in the SSP for backward compatibility reasons, and in practice, in this design the LOP does not have a certificate.

LopSsp ::= SEQUENCE {

version Uint8 (2),

...

}

LopSsp ::= SEQUENCE {}

MaSsp

This structure defines the SSP for a misbehavior authority when it is authorizing Security Management messages (PSID 0x23). Its parameters indicate the PSIDs associated with the misbehavior that is to be reported to that MA (see 4.1.5 for further details). The certificate containing this SSP is the MA Certificate to which an end entity should encrypt misbehavior reports related to the indicated PSIDs.

MaSsp ::= SEQUENCE {

version Uint8 (2),

relevantPsids SequenceOfPsid,

...

}

MaSsp ::= SEQUENCE {}

RaSsp

This structure defines the SSP for an RA when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

RaSsp ::= SEQUENCE {

version Uint8 (2),

...

}

RaSsp ::= SEQUENCE {}

EeSsp

This structure defines the SSP for an end entity when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

EeSsp ::= SEQUENCE {

version Uint8 (2),

...

}

EeSsp ::= SEQUENCE {}

AcpcSsp

This is a container for ACPC-related SSPs, specifying one SSP for each role. The only SSP defined in this document is the CamSsp, used in the CAM certificate that signs a SignedAprvBinaryTree or a SignedIndividualAprv. The SSP shall be C-OER encoded for inclusion in the CAM certificate. New versions of the CAM SSP should be handled by extending this structure rather than by use of a version number in the CamSsp structure.

The AcpcSsp is associated with the AcpcPsid in the CAM certificate's appPermissions field.

AcpcSsp ::= CHOICE {

cam CamSsp,

...

}

AcpcSsp ::= CHOICE {}

CamSsp

This is a list of the ACPC Tree IDs for which the containing CAM certificate is entitled to sign a SignedAprvBinaryTree or a SignedIndividualAprv. The SSP entitles the certificate holder to sign either of these structures.

CamSsp ::= SEQUENCE (SIZE (1..MAX)) OF AcpcTreeId

DcSsp

This structure defines the SSP for a distribution center when it is authorizing Security Management messages (PSID 0x23). It has no parameters other than the version number.

DcSsp ::= SEQUENCE {

version Uint8 (2),

...

}

DcSsp ::= SEQUENCE {}

Ieee1609Dot2Data-Encrypted-1 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData (CONSTRAINED BY

{ --encryption of--Tbe})})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted-1 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Encrypted-2 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData (CONSTRAINED BY

{ --encryption of--Tbe})})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted-2 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Encrypted-3 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData (CONSTRAINED BY

{ --encryption of--Tbe})})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted-3 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Encrypted-4 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData (CONSTRAINED BY

{ --encryption of--Tbe})})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted-4 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Encrypted-5 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData (CONSTRAINED BY

{ --encryption of--Tbe})})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted-5 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Encrypted-6 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {encryptedData (CONSTRAINED BY

{ --encryption of--Tbe})})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Encrypted-6 {Tbe} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-1 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-1 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-2 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-2 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-3 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-3 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-4 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-4 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-5 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-5 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-6 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-6 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-7 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-7 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-8 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-8 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-9 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-9 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-10 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-10 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-11 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-11 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Signed-12 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

Tbs)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (Psid),

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

}),

tbsData (WITH COMPONENTS {}),

signer (SignerSingleCert)

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Signed-12 {Tbs, Psid} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-SignedCertRequest-1 {Tbscr, Signer} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedCertificateRequest (CONTAINING SignedCertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

Ieee1609Dot2Data-SignedCertRequest-2 {Tbscr, Signer} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedCertificateRequest (CONTAINING SignedCertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

Ieee1609Dot2Data-SignedCertRequest-3 {Tbscr, Signer} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedCertificateRequest (CONTAINING SignedCertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

Ieee1609Dot2Data-SignedCertRequest-4 {Tbscr, Signer} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedCertificateRequest (CONTAINING SignedCertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

Ieee1609Dot2Data-SignedX509AuthenticatedCertRequest-1 {Tbscr, Signer} ::=

Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedX509CertificateRequest (CONTAINING SignedX509CertificateRequest (WITH

COMPONENTS {

...,

tbsRequest (Tbscr),

signer (Signer)

}))

COMPONENTS {}))

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-SymmEncryptedSingleRecipient-1 {Tbe} ::= Ieee1609Dot2Data (WITH

COMPONENTS {

...,

content (WITH COMPONENTS {

encryptedData (CONSTRAINED BY {

--contains only one RecipientInfo, of form symmRecipinfo

--symmetric encryption of--

--contains only one RecipientInfo, of form symmRecipinfo

Tbe

})

encryptedData (CONSTRAINED BY {})

})

content (WITH COMPONENTS {})

})

COMPONENTS {})

Ieee1609Dot2Data-Unsecured-1 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-1 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured-2 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-2 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured-3 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-3 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured-4 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-4 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured-5 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-5 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured-6 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-6 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

Ieee1609Dot2Data-Unsecured-7 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {

content (WITH COMPONENTS {

...,

unsecuredData (CONTAINING Tbu)

})

content (WITH COMPONENTS {})

})

Ieee1609Dot2Data-Unsecured-7 {Tbu} ::= Ieee1609Dot2Data (WITH COMPONENTS {})

ScmsPdu-Scoped-1 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-1 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-2 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-2 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-3 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-3 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-4 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-4 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-5 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-5 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-6 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-6 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-7 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-7 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-8 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-8 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-9 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-9 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-10 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-10 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-11 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-11 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-12 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-12 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-13 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-13 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-14 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-14 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-15 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-15 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-16 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-16 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-17 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-17 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-18 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-18 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-19 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-19 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-20 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-20 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-21 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-21 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-22 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-22 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-23 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-23 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-24 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-24 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

ScmsPdu-Scoped-25 {Pdu} ::= ScmsPdu (WITH COMPONENTS {

...,

content (CONSTRAINED BY {Pdu})

})

ScmsPdu-Scoped-25 {Pdu} ::= ScmsPdu (WITH COMPONENTS {})

END

Schema File std_ieee_1609dot2-base-types.asn
Schema File std_ieee_1609dot2-base-types.asn

--***************************************************************************--

-- IEEE Std 1609.2: Base Data Types --

--***************************************************************************--

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. The minor version of this module is 1.

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)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

--***************************************************************************--

-- Integer Types --

--***************************************************************************--

Uint3

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 7, i.e., (hex)07.

Uint3 ::= INTEGER (0..7)

Uint8

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 255, i.e., (hex)ff.

Uint8 ::= INTEGER (0..255)

Uint16

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 65,535, i.e., (hex)ff ff.

Uint16 ::= INTEGER (0..65535)

Uint32

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 4,294,967,295, i.e., (hex)ff ff ff ff.

Uint32 ::= INTEGER (0..4294967295)

Uint64

This atomic type is used in the definition of other data structures. It is for non-negative integers up to 18,446,744,073,709,551,615, i.e., (hex)ff ff ff ff ff ff ff ff.

Uint64 ::= INTEGER (0..18446744073709551615)

SequenceOfUint8

This type is used for clarity of definitions.

SequenceOfUint8 ::= SEQUENCE OF Uint8

SequenceOfUint16

This type is used for clarity of definitions.

SequenceOfUint16 ::= SEQUENCE OF Uint16

--***************************************************************************--

-- OCTET STRING Types --

--***************************************************************************--

Opaque

This is a synonym for ASN.1 OCTET STRING, and is used in the definition of other data structures.

Opaque ::= OCTET STRING

HashedId3

This type contains the truncated hash of another data structure. The HashedId3 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order three bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order three bytes are the last three bytes of the 32-byte hash when represented in network byte order. See Example below.

Example: Consider the SHA-256 hash of the empty string:
SHA-256(“”) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId3 derived from this hash corresponds to the following:
HashedId3 = 52b855.

HashedId3 ::= OCTET STRING (SIZE (3))

HashedId8

This type contains the truncated hash of another data structure. The HashedId8 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order eight bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order eight bytes are the last eight bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId8 within a structure depends on the context. In this standard, for each structure that includes a HashedId8 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256(“”) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId8 derived from this hash corresponds to the following:
HashedId8 = a495991b7852b855.

HashedId8 ::= OCTET STRING (SIZE (8))

HashedId10

This type contains the truncated hash of another data structure. The HashedId10 for a given data structure is calculated by calculating the hash of the encoded data structure and taking the low-order ten bytes of the hash output. If the data structure is subject to canonicalization it is canonicalized before hashing. The low-order ten bytes are the last ten bytes of the hash when represented in network byte order. See Example below.

The hash algorithm to be used to calculate a HashedId10 within a structure depends on the context. In this standard, for each structure that includes a HashedId10 field, the corresponding text indicates how the hash algorithm is determined.

Example: Consider the SHA-256 hash of the empty string:
SHA-256(“”) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The HashedId10 derived from this hash corresponds to the following:
HashedId10 = 934ca495991b7852b855.

HashedId10 ::= OCTET STRING (SIZE (10))

SequenceOfHashedId3

This type is used for clarity of definitions.

SequenceOfHashedId3 ::= SEQUENCE OF HashedId3

--***************************************************************************--

-- Time Structures --

--***************************************************************************--

Time32

This type gives the number of (TAI) seconds since 00:00:00 UTC, 1 January, 2004.

Time32 ::= Uint32

Time64

This type gives the number of (TAI) microseconds since 00:00:00 UTC, 1 January, 2004.

Time64 ::= Uint64

ValidityPeriod

This structure gives the validity period of a certificate. The start of the validity period is given by start and the end is given by start + duration. In this structure:
  • start
    contains the starting time of the validity period.
  • duration
    contains the duration of the validity period.

ValidityPeriod ::= SEQUENCE {

start Time32,

duration Duration

}

ValidityPeriod ::= SEQUENCE {}

Duration

This structure represents the duration of validity of a certificate. The Uint16 value is the duration, given in the units denoted by the indicated choice. A year is considered to be 31556952 seconds, which is the average number of seconds in a year; if it is desired to map years more closely to wall-clock days, this can be done using the hours choice for up to seven years and the sixtyHours choice for up to 448. In this structure:
  • microseconds
    contains the duration in microseconds.
  • milliseconds
    contains the duration in milliseconds.
  • seconds
    contains the duration in seconds.
  • minutes
    contains the duration in minutes.
  • hours
    contains the duration in hours.
  • sixtyHours
    contains the duration in sixty-hour periods.
  • years
    contains the duration in years.

Duration ::= CHOICE {

microseconds Uint16,

milliseconds Uint16,

seconds Uint16,

minutes Uint16,

hours Uint16,

sixtyHours Uint16,

years Uint16

}

Duration ::= CHOICE {}

--***************************************************************************--

-- Location Structures --

--***************************************************************************--

GeographicRegion

This structure represents a geographic region of a specified form. A certificate is not valid if any part of the region indicated in its scope field lies outside the region indicated in the scope of its issuer.

Critical information fields:
  1. If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.
  2. If selected, rectangularRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of RectangularRegion in rectangularRegions when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support rectangularRegions fields containing at least eight entries.
  3. If selected, identifiedRegion is a critical information field as defined in 5.2.6. An implementation that does not support the number of IdentifiedRegion in identifiedRegion shall reject the signed SPDU as invalid. A compliant implementation shall support identifiedRegion fields containing at least eight entries.
In this structure:
  • circularRegion
    contains a single instance of the CircularRegion structure.
  • rectangularRegion
    is an array of RectangularRegion structures containing at least one entry. This field is interpreted as a series of rectangles, which may overlap or be disjoint. The permitted region is any point within any of the rectangles.
  • polygonalRegion
    contains a single instance of the PolygonalRegion structure.
  • identifiedRegion
    is an array of IdentifiedRegion structures containing at least one entry. The permitted region is any point within any of the identified regions.

GeographicRegion ::= CHOICE {

circularRegion CircularRegion,

rectangularRegion SequenceOfRectangularRegion,

polygonalRegion PolygonalRegion,

identifiedRegion SequenceOfIdentifiedRegion,

...

}

GeographicRegion ::= CHOICE {}

CircularRegion

This structure specifies a circle with its center at center, its radius given in meters, and located tangential to the reference ellipsoid. The indicated region is all the points on the surface of the reference ellipsoid whose distance to the center point over the reference ellipsoid is less than or equal to the radius. A point which contains an elevation component is considered to be within the circular region if its horizontal projection onto the reference ellipsoid lies within the region.

CircularRegion ::= SEQUENCE {

center TwoDLocation,

radius Uint16

}

CircularRegion ::= SEQUENCE {}

RectangularRegion

This structure specifies a rectangle formed by connecting in sequence: (northWest.latitude, northWest.longitude), (southEast.latitude, northWest.longitude), (southEast.latitude, southEast.longitude), and (northWest.latitude, southEast.longitude). The points are connected by lines of constant latitude or longitude. A point which contains an elevation component is considered to be within the rectangular region if its horizontal projection onto the reference ellipsoid lies within the region. A RectangularRegion is valid only if the northWest value is north and west of the southEast value, i.e., the two points cannot have equal latitude or equal longitude.

RectangularRegion ::= SEQUENCE {

northWest TwoDLocation,

southEast TwoDLocation

}

RectangularRegion ::= SEQUENCE {}

SequenceOfRectangularRegion

This type is used for clarity of definitions.

SequenceOfRectangularRegion ::= SEQUENCE OF RectangularRegion

PolygonalRegion

This structure defines a region using a series of distinct geographic points, defined on the surface of the reference ellipsoid. The region is specified by connecting the points in the order they appear, with each pair of points connected by the geodesic on the reference ellipsoid. The polygon is completed by connecting the final point to the first point. The allowed region is the interior of the polygon and its boundary.
A point which contains an elevation component is considered to be within the polygonal region if its horizontal projection onto the reference ellipsoid lies within the region.
A valid PolygonalRegion contains at least three points. In a valid PolygonalRegion, the implied lines that make up the sides of the polygon do not intersect.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not support the number of TwoDLocation in the PolygonalRegion when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support PolygonalRegions containing at least eight TwoDLocation entries.

PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation

TwoDLocation

This structure is used to define validity regions for use in certificates. The latitude and longitude fields contain the latitude and longitude as defined above.

NOTE: This data structure is consistent with the location encoding used in SAE J2735, except that values 900 000 001 for latitude (used to indicate that the latitude was not available) and 1 800 000 001 for longitude (used to indicate that the longitude was not available) are not valid.

TwoDLocation ::= SEQUENCE {

latitude Latitude,

longitude Longitude

}

TwoDLocation ::= SEQUENCE {}

IdentifiedRegion

This structure indicates the region of validity of a certificate using region identifiers.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

IdentifiedRegion ::= CHOICE {

countryOnly CountryOnly,

countryAndRegions CountryAndRegions,

countryAndSubregions CountryAndSubregions,

...

}

IdentifiedRegion ::= CHOICE {}

SequenceOfIdentifiedRegion

This type is used for clarity of definitions.

SequenceOfIdentifiedRegion ::= SEQUENCE OF IdentifiedRegion

CountryOnly

This is the integer representation of the country or area identifier as defined by the United Nations Statistics Division in October 2013 (see normative references in Clause 2).

CountryOnly ::= Uint16

CountryAndRegions

In this structure:
  • countryOnly
    is a CountryOnly as defined above.
  • region
    identifies one or more regions within the country. If countryOnly indicates the United States of America, the values in this field identify the state or statistically equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of countryOnly, the meaning of region is not defined in this version of this standard.

CountryAndRegions ::= SEQUENCE {

countryOnly CountryOnly,

regions SequenceOfUint8

}

CountryAndRegions ::= SEQUENCE {}

CountryAndSubregions

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize RegionAndSubregions or CountryAndSubregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid. A compliant implementation shall support CountryAndSubregions containing at least eight RegionAndSubregions entries.

In this structure:
  • country
    is a CountryOnly as defined above.
  • regionAndSubregions
    identifies one or more subregions within country. If country indicates the United States of America, the values in this field identify the county or county equivalent entity using the integer version of the 2010 FIPS codes as provided by the U.S. Census Bureau (see normative references in Clause 2). For other values of country, the meaning of regionAndSubregions is not defined in this version of this standard.

CountryAndSubregions ::= SEQUENCE {

country CountryOnly,

regionAndSubregions SequenceOfRegionAndSubregions

}

CountryAndSubregions ::= SEQUENCE {}

RegionAndSubregions

Critical information fields: RegionAndSubregions is a critical information field as defined in 5.2.5. An implementation that does not detect or recognize the the region or subregions values when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

In this structure:
  • region
    identifies a region within a country as specified under CountryAndRegions.
  • subregions
    identifies one or more subregions as specified under CountryAndSubregions.

RegionAndSubregions ::= SEQUENCE {

region Uint8,

subregions SequenceOfUint16

}

RegionAndSubregions ::= SEQUENCE {}

SequenceOfRegionAndSubregions

This type is used for clarity of definitions.

SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions

ThreeDLocation

This structure contains an estimate of 3D location. The details of the structure are given in the definitions of the individual fields below.

NOTE: The units used in this data structure are consistent with the location data structures used in SAE J2735, though the encoding is incompatible.

ThreeDLocation ::= SEQUENCE {

latitude Latitude,

longitude Longitude,

elevation Elevation

}

ThreeDLocation ::= SEQUENCE {}

Latitude

This type contains an INTEGER encoding an estimate of the latitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.

Latitude ::= NinetyDegreeInt

Longitude

This type contains an INTEGER encoding an estimate of the longitude with precision 1/10th microdegree relative to the World Geodetic System (WGS)-84 datum as defined in NIMA Technical Report TR8350.2.

Longitude ::= OneEightyDegreeInt

Elevation

This structure contains an estimate of the geodetic altitude above or below the WGS84 ellipsoid. The 16-bit value is interpreted as an integer number of decimeters representing the height above a minimum height of −409.5 m, with the maximum height being 6143.9 m.

Elevation ::= Uint16

NinetyDegreeInt

The integer in the latitude field is no more than 900,000,000 and no less than −900,000,000, except that the value 900,000,001 is used to indicate the latitude was not available to the sender.

NinetyDegreeInt ::= INTEGER {

min (-900000000),

max (900000000),

unknown (900000001)

} (-900000000..900000001)

NinetyDegreeInt ::= INTEGER {} (-900000000..900000001)

KnownLatitude

The known latitudes are from -900,000,000 to +900,000,000 in 0.1 microdegree intervals.

KnownLatitude ::= NinetyDegreeInt (min..max)

UnknownLatitude

The value 900,000,001 indicates that the latitude was not available to the sender.

UnknownLatitude ::= NinetyDegreeInt (unknown)

OneEightyDegreeInt

The integer in the longitude field is no more than 1,800,000,000 and no less than −1,799,999,999, except that the value 1,800,000,001 is used to indicate that the longitude was not available to the sender.

OneEightyDegreeInt ::= INTEGER {

min (-1799999999),

max (1800000000),

unknown (1800000001)

} (-1799999999..1800000001)

OneEightyDegreeInt ::= INTEGER {} (-1799999999..1800000001)

KnownLongitude

The known longitudes are from -1,799,999,999 to +1,800,000,000 in 0.1 microdegree intervals.

KnownLongitude ::= OneEightyDegreeInt (min..max)

UnknownLongitude

The value 1,800,000,001 indicates that the longitude was not available to the sender.

UnknownLongitude ::= OneEightyDegreeInt (unknown)

--***************************************************************************--

-- Crypto Structures --

--***************************************************************************--

Signature

This structure represents a signature for a supported public key algorithm. It may be contained within SignedData or Certificate.

Critical information fields: If present, this is a critical information field as defined in 5.2.5. An implementation that does not recognize the indicated CHOICE for this type when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

Signature ::= CHOICE {

ecdsaNistP256Signature EcdsaP256Signature,

ecdsaBrainpoolP256r1Signature EcdsaP256Signature,

...,

ecdsaBrainpoolP384r1Signature EcdsaP384Signature

}

Signature ::= CHOICE {}

EcdsaP256Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP256CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP256CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 256-bit curve, is bounded above by approximately square-root(p)/p or 2^(−128). For the 256-bit curves in this standard, the exact values of n and p in hexadecimal are:

NISTp256:
  • p = FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
  • n = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551
Brainpoolp256:
  • p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377
  • n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7

EcdsaP256Signature ::= SEQUENCE {

rSig EccP256CurvePoint,

sSig OCTET STRING (SIZE (32))

}

EcdsaP256Signature ::= SEQUENCE {}

EcdsaP384Signature

This structure represents an ECDSA signature. The signature is generated as specified in 5.3.1.

If the signature process followed the specification of FIPS 186-4 and output the integer r, r is represented as an EccP384CurvePoint indicating the selection x-only.

If the signature process followed the specification of SEC 1 and output the elliptic curve point R to allow for fast verification, R is represented as an EccP384CurvePoint indicating the choice compressed-y-0, compressed-y-1, or uncompressed at the sender’s discretion.

Encoding considerations: If this structure is encoded for hashing, the EccP256CurvePoint in rSig shall be taken to be of form x-only.

NOTE: When the signature is of form x-only, the x-value in rSig is an integer mod n, the order of the group; when the signature is of form compressed-y-*, the x-value in rSig is an integer mod p, the underlying prime defining the finite field. In principle this means that to convert a signature from form compressed-y-* to form x-only, the x-value should be checked to see if it lies between n and p and reduced mod n if so. In practice this check is unnecessary: Haase’s Theorem states that difference between n and p is always less than 2*square-root(p), and so the chance that an integer lies between n and p, for a 384-bit curve, is bounded above by approximately square-root(p)/p or 2^(−192). For the 384-bit curve in this standard, the exact values of n and p in hexadecimal are:
  • p = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123 ACD3A729901D1A71874700133107EC53
  • n = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7 CF3AB6AF6B7FC3103B883202E9046565

EcdsaP384Signature ::= SEQUENCE {

rSig EccP384CurvePoint,

sSig OCTET STRING (SIZE (48))

}

EcdsaP384Signature ::= SEQUENCE {}

EccP256CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 256-bit prime number. This encompasses both NIST p256 as defined in FIPS 186-4 and Brainpool p256r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 32 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 32 octets in network byte order.

EccP256CurvePoint ::= CHOICE {

x-only OCTET STRING (SIZE (32)),

fill NULL,

compressed-y-0 OCTET STRING (SIZE (32)),

compressed-y-1 OCTET STRING (SIZE (32)),

uncompressedP256 SEQUENCE {

x OCTET STRING (SIZE (32)),

y OCTET STRING (SIZE (32))

}

uncompressedP256 SEQUENCE {}

}

EccP256CurvePoint ::= CHOICE {}

EccP384CurvePoint

This structure specifies a point on an elliptic curve in Weierstrass form defined over a 384-bit prime number. The only supported such curve in this standard is Brainpool p384r1 as defined in RFC 5639. The fields in this structure are OCTET STRINGS produced with the elliptic curve point encoding and decoding methods defined in subclause 5.5.6 of IEEE Std 1363-2000. The x-coordinate is encoded as an unsigned integer of length 48 octets in network byte order for all values of the CHOICE; the encoding of the y-coordinate y depends on whether the point is x-only, compressed, or uncompressed. If the point is x-only, y is omitted. If the point is compressed, the value of type depends on the least significant bit of y: if the least significant bit of y is 0, type takes the value compressed-y-0, and if the least significant bit of y is 1, type takes the value compressed-y-1. If the point is uncompressed, y is encoded explicitly as an unsigned integer of length 48 octets in network byte order.

EccP384CurvePoint ::= CHOICE {

x-only OCTET STRING (SIZE (48)),

fill NULL,

compressed-y-0 OCTET STRING (SIZE (48)),

compressed-y-1 OCTET STRING (SIZE (48)),

uncompressedP384 SEQUENCE {

x OCTET STRING (SIZE (48)),

y OCTET STRING (SIZE (48))

}

uncompressedP384 SEQUENCE {}

}

EccP384CurvePoint ::= CHOICE {}

SymmAlgorithm

This enumerated value indicates supported symmetric algorithms. The only symmetric algorithm supported in this version of this standard is AES-CCM as specified in 5.3.7.

SymmAlgorithm ::= ENUMERATED {aes128Ccm, ...}

HashAlgorithm

This structure identifies a hash algorithm. The value is sha256, indicates SHA-256 as specified in 5.3.3. The value sha384 indicates SHA-384 as specified in 5.3.3.

Critical information fields: This is a critical information field as defined in 5.2.6. An implementation that does not recognize the enumerated value of this type in a signed SPDU when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

HashAlgorithm ::= ENUMERATED {sha256, ..., sha384}

EciesP256EncryptedKey

This data structure is used to transfer a 16-byte symmetric key encrypted using ECIES as specified in IEEE Std 1363a-2004.

Encryption and decryption are carried out as specified in 5.3.4.

In this structure:
  • v
    is the sender’s ephemeral public key, which is the output V from encryption as specified in 5.3.4.
  • c
    is the encrypted symmetric key, which is the output C from encryption as specified in 5.3.4. The algorithm for the symmetric key is identified by the CHOICE indicated in the following SymmetricCiphertext.
  • t
    is the authentication tag, which is the output tag from encryption as specified in 5.3.4.

EciesP256EncryptedKey ::= SEQUENCE {

v EccP256CurvePoint,

c OCTET STRING (SIZE (16)),

t OCTET STRING (SIZE (16))

}

EciesP256EncryptedKey ::= SEQUENCE {}

EncryptionKey

This structure contains an encryption key, which may be a public or a symmetric key.

EncryptionKey ::= CHOICE {

public PublicEncryptionKey,

symmetric SymmetricEncryptionKey

}

EncryptionKey ::= CHOICE {}

PublicEncryptionKey

This structure specifies a public encryption key and the associated symmetric algorithm which is used for bulk data encryption when encrypting for that public key.

PublicEncryptionKey ::= SEQUENCE {

supportedSymmAlg SymmAlgorithm,

publicKey BasePublicEncryptionKey

}

PublicEncryptionKey ::= SEQUENCE {}

BasePublicEncryptionKey

This structure specifies the bytes of a public encryption key for a particular algorithm. The only algorithm supported is ECIES over either the NIST P256 or the Brainpool P256r1 curve as specified in 5.3.4.

BasePublicEncryptionKey ::= CHOICE {

eciesNistP256 EccP256CurvePoint,

eciesBrainpoolP256r1 EccP256CurvePoint,

...

}

BasePublicEncryptionKey ::= CHOICE {}

PublicVerificationKey

This structure represents a public key and states with what algorithm the public key is to be used. Cryptographic mechanisms are defined in 5.3.

An EccP256CurvePoint or EccP384CurvePoint within a PublicVerificationKey structure is invalid if it indicates the choice x-only.

Critical information fields: If present, this is a critical information field as defined in 5.2.6. An implementation that does not recognize the indicated CHOICE when verifying a signed SPDU shall indicate that the signed SPDU is invalid.

PublicVerificationKey ::= CHOICE {

ecdsaNistP256 EccP256CurvePoint,

ecdsaBrainpoolP256r1 EccP256CurvePoint,

...,

ecdsaBrainpoolP384r1 EccP384CurvePoint

}

PublicVerificationKey ::= CHOICE {}

SymmetricEncryptionKey

This structure provides the key bytes for use with an identified symmetric algorithm. The only supported symmetric algorithm is AES-128 in CCM mode as specified in 5.3.7.

SymmetricEncryptionKey ::= CHOICE {

aes128Ccm OCTET STRING (SIZE (16)),

...

}

SymmetricEncryptionKey ::= CHOICE {}

--***************************************************************************--

-- PSID / ITS-AID --

--***************************************************************************--

PsidSsp

This structure represents the permissions that the certificate holder has with respect to data for a single application area, identified by a Psid. If the ServiceSpecificPermissions field is omitted, it indicates that the certificate holder has the default permissions associated with that Psid.

Consistency with signed SPDU. As noted in 5.1.1, consistency between the SSP and the signed SPDU is defined by rules specific to the given PSID and is out of scope for this standard.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is omitted, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • The psid field in P is equal to the psid field in A and one of the following is true:
    • The sspRange field in P indicates all.
    • The sspRange field in P indicates opaque and one of the entries in opaque is an OCTET STRING of length 0.
For consistency rules for other forms of the ssp field, see the following subclauses.

PsidSsp ::= SEQUENCE {

psid Psid,

ssp ServiceSpecificPermissions OPTIONAL

}

PsidSsp ::= SEQUENCE {}

SequenceOfPsidSsp

This type is used for clarity of definitions.

SequenceOfPsidSsp ::= SEQUENCE OF PsidSsp

Psid

This type represents the PSID defined in IEEE Std 1609.12.

Psid ::= INTEGER (0..MAX)

SequenceOfPsid

This type is used for clarity of definitions.

SequenceOfPsid ::= SEQUENCE OF Psid

ServiceSpecificPermissions

This structure represents the Service Specific Permissions (SSP) relevant to a given entry in a PsidSsp. The meaning of the SSP is specific to the associated Psid. SSPs may be PSID-specific octet strings or bitmap-based. See Annex C for further discussion of how application specifiers may choose which SSP form to use.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque and one of the entries in the opaque field in P is an OCTET STRING identical to the opaque field in A.
For consistency rules for other types of ServiceSpecificPermissions, see the following subclauses.

ServiceSpecificPermissions ::= CHOICE {

opaque OCTET STRING (SIZE (0..MAX)),

...,

bitmapSsp BitmapSsp

}

ServiceSpecificPermissions ::= CHOICE {}

BitmapSsp

This structure represents a bitmap representation of a SSP. The mapping of the bits of the bitmap to constraints on the signed SPDU is PSID-specific.

Consistency with issuing certificate.

If a certificate has an appPermissions entry A for which the ssp field is bitmapSsp, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • EITHER The sspRange field in P indicates all
      • OR The sspRange field in P indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in P, the bit in the identical position in the sspValue in A is set equal to the bit in that position in the sspValue in P.
NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every bit set to 1 in the sspBitmask in R, the bit in the identical position in B is set equal to the bit in that position in the sspValue in R. For each bit set to 0 in the sspBitmask in R, the corresponding bit in the identical position in B may be freely set to 0 or 1, i.e., if a bit is set to 0 in the sspBitmask in R, the value of corresponding bit in the identical position in B has no bearing on whether B and R are consistent.

BitmapSsp ::= OCTET STRING (SIZE (0..31))

PsidSspRange

This structure represents the certificate issuing or requesting permissions of the certificate holder with respect to one particular set of application permissions. In this structure:
  • psid
    identifies the application area.
  • sspRange
    identifies the SSPs associated with that PSID for which the holder may issue or request certificates. If sspRange is omitted, the holder may issue or request certificates for any SSP for that PSID.

PsidSspRange ::= SEQUENCE {

psid Psid,

sspRange SspRange OPTIONAL

}

PsidSspRange ::= SEQUENCE {}

SequenceOfPsidSspRange

This type is used for clarity of definitions.

SequenceOfPsidSspRange ::= SEQUENCE OF PsidSspRange

SspRange

This structure identifies the SSPs associated with a PSID for which the holder may issue or request certificates.

Consistency with issuing certificate.

If a certificate has a PsidSspRange A for which the ssp field is opaque, A is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) a PsidSspRange P for which the following holds:
    • The psid field in P is equal to the psid field in A and one of the following is true:
      • The sspRange field in P indicates all.
      • The sspRange field in P indicates opaque, and the sspRange field in A indicates opaque, and every OCTET STRING within the opaque in A is a duplicate of an OCTET STRING within the opaque in P.
If a certificate has a PsidSspRange A for which the ssp field is all, A is consistent with the issuing certificate if the issuing certificate contains a PsidSspRange P for which the following holds:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in A;
  • (OPTION 2) A PsidSspRange P for which the psid field in P is equal to the psid field in A and the sspRange field in P indicates all.
For consistency rules for other types of SspRange, see the following subclauses.

NOTE: The choice “all” may also be indicated by omitting the SspRange in the enclosing PsidSspRange structure. Omitting the SspRange is preferred to explicitly indicating “all”.

SspRange ::= CHOICE {

opaque SequenceOfOctetString,

all NULL,

...,

bitmapSspRange BitmapSspRange

}

SspRange ::= CHOICE {}

BitmapSspRange

This structure represents a bitmap representation of a SSP. The sspValue indicates permissions. The sspBitmask contains an octet string used to permit or constrain sspValue fields in issued certificates. The sspValue and sspBitmask fields shall be of the same length.

Consistency with issuing certificate.

If a certificate has an PsidSspRange value P for which the sspRange field is bitmapSspRange, P is consistent with the issuing certificate if the issuing certificate contains one of the following:
  • (OPTION 1) A SubjectPermissions field indicating the choice all and no PsidSspRange field containing the psid field in P;
  • (OPTION 2) A PsidSspRange R for which the following holds:
    • The psid field in R is equal to the psid field in P and one of the following is true:
      • EITHER The sspRange field in R indicates all
      • OR The sspRange field in R indicates bitmapSspRange and for every bit set to 1 in the sspBitmask in R:
        • The bit in the identical position in the sspBitmask in P is set equal to 1, AND
        • The bit in the identical position in the sspValue in P is set equal to the bit in that position in the sspValue in R.

Reference ETSI TS 103 097 for more information on bitmask SSPs.

BitmapSspRange ::= SEQUENCE {

sspValue OCTET STRING (SIZE (1..32)),

sspBitmask OCTET STRING (SIZE (1..32))

}

BitmapSspRange ::= SEQUENCE {}

SequenceOfOctetString

This type is used for clarity of definitions.

SequenceOfOctetString ::= SEQUENCE (SIZE (0..MAX)) OF OCTET STRING (SIZE

(0..MAX))

--***************************************************************************--

-- Certificate Components --

--***************************************************************************--

SubjectAssurance

This field contains the certificate holder’s assurance level, which indicates the security of both the platform and storage of secret keys as well as the confidence in this assessment.

This field is encoded as defined in Table 1, where “A” denotes bit fields specifying an assurance level, “R” reserved bit fields, and “C” bit fields specifying the confidence.

Table 1: Bitwise encoding of subject assurance
Bit number 7 6 5 4 3 2 1 0
Interpretation A A A R R R C C
In Table 1, bit number 0 denotes the least significant bit. Bit 7 to bit 5 denote the device’s assurance levels, bit 4 to bit 2 are reserved for future use, and bit 1 and bit 0 denote the confidence.

The specification of these assurance levels as well as the encoding of the confidence levels is outside the scope of the present document. It can be assumed that a higher assurance value indicates that the holder is more trusted than the holder of a certificate with lower assurance value and the same confidence value.

NOTE: This field was originally specified in ETSI TS 103 097 and future uses of this field are anticipated to be consistent with future versions of that document.

SubjectAssurance ::= OCTET STRING (SIZE (1))

CrlSeries

This integer identifies a series of CRLs issued under the authority of a particular CRACA.

CrlSeries ::= Uint16

--***************************************************************************--

-- Pseudonym Linkage --

--***************************************************************************--

IValue

This atomic type is used in the definition of other data structures.

IValue ::= Uint16

Hostname

This is a UTF-8 string as defined in IETF RFC 3629. The contents are determined by policy.

Hostname ::= UTF8String (SIZE (0..255))

LinkageValue

This is the individual linkage value. See 5.1.3 and 7.3 for details of use.

LinkageValue ::= OCTET STRING (SIZE (9))

GroupLinkageValue

This is the group linkage value. See 5.1.3 and 7.3 for details of use.

GroupLinkageValue ::= SEQUENCE {

jValue OCTET STRING (SIZE (4)),

value OCTET STRING (SIZE (9))

}

GroupLinkageValue ::= SEQUENCE {}

LaId

This structure contains a LA Identifier for use in the algorithms specified in 5.1.3.4.

LaId ::= OCTET STRING (SIZE (2))

LinkageSeed

This structure contains a linkage seed value for use in the algorithms specified in 5.1.3.4.

LinkageSeed ::= OCTET STRING (SIZE (16))

END

Schema File std_ieee_1609dot2-schema.asn
Schema File std_ieee_1609dot2-schema.asn

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: 1

--******************************************************************************

--

-- IEEE P1609.2 Data Types

--

--******************************************************************************

-- Minor version: 1

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

--

--*********************************************************************

--

-- Structures for describing secured data

--

--*********************************************************************

-- Necessary to get certain tools to generate sample PDUs

-- TestIeee1609Dot2Data ::= Ieee1609Dot2Data

-- TestCertificate ::= Certificate

-- this structure belongs later in the file but putting it here avoids

-- compiler errors with certain tools

-- Structures for describing secured data

SignedDataPayload ::= SEQUENCE {

data Ieee1609Dot2Data OPTIONAL,

extDataHash HashedData OPTIONAL,

...

} (WITH COMPONENTS {

SignedDataPayload ::= SEQUENCE {} (WITH COMPONENTS {

...,

data PRESENT

} | WITH COMPONENTS {

...,

extDataHash PRESENT

})

} | WITH COMPONENTS {})

Ieee1609Dot2Data ::= SEQUENCE {

protocolVersion Uint8 (3),

content Ieee1609Dot2Content

}

Ieee1609Dot2Data ::= SEQUENCE {}

Ieee1609Dot2Content ::= CHOICE {

unsecuredData Opaque,

signedData SignedData,

encryptedData EncryptedData,

signedCertificateRequest Opaque,

...,

signedX509CertificateRequest Opaque

}

Ieee1609Dot2Content ::= CHOICE {}

SignedData ::= SEQUENCE {

hashId HashAlgorithm,

tbsData ToBeSignedData,

signer SignerIdentifier,

signature Signature

}

SignedData ::= SEQUENCE {}

SignerIdentifier ::= CHOICE {

digest HashedId8,

certificate SequenceOfCertificate,

self NULL,

...

}

SignerIdentifier ::= CHOICE {}

ToBeSignedData ::= SEQUENCE {

payload SignedDataPayload,

headerInfo HeaderInfo

}

ToBeSignedData ::= SEQUENCE {}

HashedData ::= CHOICE {

sha256HashedData OCTET STRING (SIZE (32)),

...

}

HashedData ::= CHOICE {}

HeaderInfo ::= SEQUENCE {

psid Psid,

generationTime Time64 OPTIONAL,

expiryTime Time64 OPTIONAL,

generationLocation ThreeDLocation OPTIONAL,

p2pcdLearningRequest HashedId3 OPTIONAL,

missingCrlIdentifier MissingCrlIdentifier OPTIONAL,

encryptionKey EncryptionKey OPTIONAL,

...,

inlineP2pcdRequest SequenceOfHashedId3 OPTIONAL,

requestedCertificate Certificate OPTIONAL

}

HeaderInfo ::= SEQUENCE {}

MissingCrlIdentifier ::= SEQUENCE {

cracaId HashedId3,

crlSeries CrlSeries,

...

}

MissingCrlIdentifier ::= SEQUENCE {}

Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

...,

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

...,

payload (WITH COMPONENTS {

...,

data ABSENT,

extDataHash PRESENT

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

generationTime PRESENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

Countersignature ::= Ieee1609Dot2Data (WITH COMPONENTS {})

--**********************************************************************

--

-- Structures for describing encrypted data

--

--**********************************************************************

-- Structures for describing encrypted data

EncryptedData ::= SEQUENCE {

recipients SequenceOfRecipientInfo,

ciphertext SymmetricCiphertext

}

EncryptedData ::= SEQUENCE {}

RecipientInfo ::= CHOICE {

pskRecipInfo PreSharedKeyRecipientInfo,

symmRecipInfo SymmRecipientInfo,

certRecipInfo PKRecipientInfo,

signedDataRecipInfo PKRecipientInfo,

rekRecipInfo PKRecipientInfo

}

RecipientInfo ::= CHOICE {}

SequenceOfRecipientInfo ::= SEQUENCE OF RecipientInfo

PreSharedKeyRecipientInfo ::= HashedId8

SymmRecipientInfo ::= SEQUENCE {

recipientId HashedId8,

encKey SymmetricCiphertext

}

SymmRecipientInfo ::= SEQUENCE {}

PKRecipientInfo ::= SEQUENCE {

recipientId HashedId8,

encKey EncryptedDataEncryptionKey

}

PKRecipientInfo ::= SEQUENCE {}

EncryptedDataEncryptionKey ::= CHOICE {

eciesNistP256 EciesP256EncryptedKey,

eciesBrainpoolP256r1 EciesP256EncryptedKey,

...

}

EncryptedDataEncryptionKey ::= CHOICE {}

SymmetricCiphertext ::= CHOICE {

aes128ccm AesCcmCiphertext,

...

}

SymmetricCiphertext ::= CHOICE {}

AesCcmCiphertext ::= SEQUENCE {

nonce OCTET STRING (SIZE (12)),

ccmCiphertext Opaque -- 16 bytes longer than plaintext

}

AesCcmCiphertext ::= SEQUENCE {}

--**********************************************************************

--

-- Certificates and other security management data structures

--

--**********************************************************************

-- Certificates are implicit (type = implicit, toBeSigned includes

-- reconstruction value, signature absent) or explicit (type = explicit,

-- toBeSigned includes verification key, signature present).

-- Certificates and other security management data structures

Certificate ::= CertificateBase (ImplicitCertificate |

ExplicitCertificate)

TestCertificate ::= Certificate

SequenceOfCertificate ::= SEQUENCE OF Certificate

CertificateBase ::= SEQUENCE {

version Uint8 (3),

type CertificateType,

issuer IssuerIdentifier,

toBeSigned ToBeSignedCertificate,

signature Signature OPTIONAL

}

CertificateBase ::= SEQUENCE {}

CertificateType ::= ENUMERATED {explicit, implicit, ...}

ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {

...,

type (implicit),

toBeSigned (WITH COMPONENTS {

...,

verifyKeyIndicator (WITH COMPONENTS {reconstructionValue})

}),

toBeSigned (WITH COMPONENTS {}),

signature ABSENT

})

ImplicitCertificate ::= CertificateBase (WITH COMPONENTS {})

ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {

...,

type (explicit),

toBeSigned (WITH COMPONENTS {

...,

verifyKeyIndicator (WITH COMPONENTS {verificationKey})

}),

toBeSigned (WITH COMPONENTS {}),

signature PRESENT

})

ExplicitCertificate ::= CertificateBase (WITH COMPONENTS {})

IssuerIdentifier ::= CHOICE {

sha256AndDigest HashedId8,

self HashAlgorithm,

...,

sha384AndDigest HashedId8

}

IssuerIdentifier ::= CHOICE {}

ToBeSignedCertificate ::= SEQUENCE {

id CertificateId,

cracaId HashedId3,

crlSeries CrlSeries,

validityPeriod ValidityPeriod,

region GeographicRegion OPTIONAL,

assuranceLevel SubjectAssurance OPTIONAL,

appPermissions SequenceOfPsidSsp OPTIONAL,

certIssuePermissions SequenceOfPsidGroupPermissions OPTIONAL,

certRequestPermissions SequenceOfPsidGroupPermissions OPTIONAL,

canRequestRollover NULL OPTIONAL,

encryptionKey PublicEncryptionKey OPTIONAL,

verifyKeyIndicator VerificationKeyIndicator,

...

} (WITH COMPONENTS {

ToBeSignedCertificate ::= SEQUENCE {} (WITH COMPONENTS {

...,

appPermissions PRESENT

} | WITH COMPONENTS {

...,

certIssuePermissions PRESENT

} | WITH COMPONENTS {

} | WITH COMPONENTS {} | WITH COMPONENTS {

...,

certRequestPermissions PRESENT

})

CertificateId ::= CHOICE {

linkageData LinkageData,

name Hostname,

binaryId OCTET STRING (SIZE (1..64)),

none NULL,

...

}

CertificateId ::= CHOICE {}

LinkageData ::= SEQUENCE {

iCert IValue,

linkage-value LinkageValue,

group-linkage-value GroupLinkageValue OPTIONAL

}

LinkageData ::= SEQUENCE {}

EndEntityType ::= BIT STRING {

app (0),

enrol (1)

} (SIZE (8)) (ALL EXCEPT {})

EndEntityType ::= BIT STRING {} (SIZE (8)) (ALL EXCEPT {})

PsidGroupPermissions ::= SEQUENCE {

subjectPermissions SubjectPermissions,

minChainLength INTEGER DEFAULT 1,

chainLengthRange INTEGER DEFAULT 0,

eeType EndEntityType DEFAULT {app}

}

PsidGroupPermissions ::= SEQUENCE {}

SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions

SubjectPermissions ::= CHOICE {

explicit SequenceOfPsidSspRange,

all NULL,

...

}

SubjectPermissions ::= CHOICE {}

VerificationKeyIndicator ::= CHOICE {

verificationKey PublicVerificationKey,

reconstructionValue EccP256CurvePoint,

...

}

VerificationKeyIndicator ::= CHOICE {}

END

IEEE1609dot2END

Schema File std_ieee_crl-base-types.asn
Schema File std_ieee_crl-base-types.asn

IEEE1609dot2CrlBaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

crl (3) base-types (2) major-version-2 (2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

CrlSeries, GeographicRegion, HashedId8, HashedId10, IValue, LaId, LinkageSeed,

Opaque, Psid, Signature, Time32, Uint3, Uint8, Uint16, 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)};

FROM IEEE1609dot2BaseTypes {};

IMPORTS;

--

--

-- CRL contents

--

--

-- CRL contents

CrlContents ::= SEQUENCE {

version Uint8 (1),

crlSeries CrlSeries,

cracaId HashedId8,

issueDate Time32,

nextCrl Time32,

priorityInfo CrlPriorityInfo,

typeSpecific CHOICE {

fullHashCrl ToBeSignedHashIdCrl,

deltaHashCrl ToBeSignedHashIdCrl,

fullLinkedCrl ToBeSignedLinkageValueCrl,

deltaLinkedCrl ToBeSignedLinkageValueCrl,

...

}

typeSpecific CHOICE {}

}

CrlContents ::= SEQUENCE {}

CrlPriorityInfo ::= SEQUENCE {

priority Uint8 OPTIONAL,

...

}

CrlPriorityInfo ::= SEQUENCE {}

ToBeSignedHashIdCrl ::= SEQUENCE {

crlSerial Uint32,

entries SequenceOfHashBasedRevocationInfo,

...

}

ToBeSignedHashIdCrl ::= SEQUENCE {}

HashBasedRevocationInfo ::= SEQUENCE {

id HashedId10,

expiry Time32

}

HashBasedRevocationInfo ::= SEQUENCE {}

SequenceOfHashBasedRevocationInfo ::= SEQUENCE OF HashBasedRevocationInfo

ToBeSignedLinkageValueCrl ::= SEQUENCE {

iRev IValue,

indexWithinI Uint8,

individual SequenceOfJMaxGroup OPTIONAL,

groups SequenceOfGroupCrlEntry OPTIONAL,

...

} (WITH COMPONENTS {

ToBeSignedLinkageValueCrl ::= SEQUENCE {} (WITH COMPONENTS {

...,

individual PRESENT

} | WITH COMPONENTS {

...,

groups PRESENT

})

} | WITH COMPONENTS {})

JMaxGroup ::= SEQUENCE {

jmax Uint8,

contents SequenceOfLAGroup,

...

}

JMaxGroup ::= SEQUENCE {}

SequenceOfJMaxGroup ::= SEQUENCE OF JMaxGroup

LAGroup ::= SEQUENCE {

la1Id LaId,

la2Id LaId,

contents SequenceOfIMaxGroup,

...

}

LAGroup ::= SEQUENCE {}

SequenceOfLAGroup ::= SEQUENCE OF LAGroup

IMaxGroup ::= SEQUENCE {

iMax Uint16,

contents SequenceOfIndividualRevocation,

...

}

IMaxGroup ::= SEQUENCE {}

SequenceOfIMaxGroup ::= SEQUENCE OF IMaxGroup

IndividualRevocation ::= SEQUENCE {

linkage-seed1 LinkageSeed,

linkage-seed2 LinkageSeed,

...

}

IndividualRevocation ::= SEQUENCE {}

SequenceOfIndividualRevocation ::= SEQUENCE OF IndividualRevocation

GroupCrlEntry ::= SEQUENCE {

iMax Uint16,

la1Id LaId,

linkageSeed1 LinkageSeed,

la2Id LaId,

linkageSeed2 LinkageSeed,

...

}

GroupCrlEntry ::= SEQUENCE {}

SequenceOfGroupCrlEntry ::= SEQUENCE OF GroupCrlEntry

END

Schema File std_ieee_crl-protocol.asn
Schema File std_ieee_crl-protocol.asn

IEEE1609dot2Crl {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

crl (3) protocol (1) major-version-2 (2)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

EXPORTS

ALL;

EXPORTS;

IMPORTS

Ieee1609Dot2Data

FROM 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)}

FROM IEEE1609dot2 {}

Opaque, Psid

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)}

FROM IEEE1609dot2BaseTypes {}

CrlContents

FROM IEEE1609dot2CrlBaseTypes {iso (1) identified-organization (3) ieee (111)

standards-association-numbered-series-standards (2) wave-stds (1609) dot2 (2)

crl (3) base-types (2) major-version-2 (2)};

FROM IEEE1609dot2CrlBaseTypes {};

IMPORTS;

CrlPsid ::= Psid (256) -- PSID = 0x100, 0p8080

SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {

signedData (WITH COMPONENTS {

...,

tbsData (WITH COMPONENTS {

payload (WITH COMPONENTS {

...,

data (WITH COMPONENTS {

...,

content (WITH COMPONENTS {unsecuredData (CONTAINING

CrlContents)})

content (WITH COMPONENTS {})

})

data (WITH COMPONENTS {})

}),

payload (WITH COMPONENTS {}),

headerInfo (WITH COMPONENTS {

...,

psid (CrlPsid),

generationTime ABSENT,

expiryTime ABSENT,

generationLocation ABSENT,

p2pcdLearningRequest ABSENT,

missingCrlIdentifier ABSENT,

encryptionKey ABSENT

})

headerInfo (WITH COMPONENTS {})

})

tbsData (WITH COMPONENTS {})

})

signedData (WITH COMPONENTS {})

})

content (WITH COMPONENTS {})

})

SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {})

END