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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.).
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:
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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:
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.).
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.
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:
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.
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.
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.
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.
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:
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:
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.
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.
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.
This structure contains the status of different certificate management information, including CRLs, CTLs, and individual certificates of CAs, MAs, and the RA.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
contains the parameters to be used by the ACA to generate authorization certificate(s).
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.
validityPeriod contains the requested validity period of the first batch of certificates.
region, assuranceLevel, canRequestRollover, and encryptionKey, if present, contain the information sent by the requester for the requested certificates.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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:
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.
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.
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.
is used in combination with flags.cubk to indicate the type of response that is expected from the ACA. It is as follows:
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.
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.
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.
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:
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.
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:
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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â.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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:
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.
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.
This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
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.
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.
This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
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.
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.
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:
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.
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).
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.
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).
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.
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.
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.
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.
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:
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.
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.
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.
is used in combination with flags.cubk to indicate the type of response that is expected from the ACA. It is as follows:
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.
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.
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.
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:
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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:
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
This structure contains the status of different certificate management information, including CRLs, CTLs, and individual certificates of CAs, MAs, and the RA.
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.
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.
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.
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.
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.
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.
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.
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.)
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.
contains the parameters to be used by the ACA to generate authorization certificate(s).
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.
validityPeriod contains the requested validity period of the first batch of certificates.
region, assuranceLevel, canRequestRollover, and encryptionKey, if present, contain the information sent by the requester for the requested certificates.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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:
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.
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.
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.
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.
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.
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:
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.
This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
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.
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.
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.
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.
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.
This structure defines a parameterized type for creating an encrypted data as a subtype of Ieee1609Dot2Data. An overview of this structure is as follows:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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:
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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â.
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.
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.