Loading .gitmodules 0 → 100644 +3 −0 Original line number Diff line number Diff line [submodule "ieee1609dot2"] path = ieee1609dot2 url = https://forge.etsi.org/rep/ITS/asn1/ieee1609.2.git Ieee1609Dot2Crl.asn 0 → 100755 +57 −0 Original line number Diff line number Diff line Ieee1609Dot2Crl {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) protocol(1) major-version-2(2) minor-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS Ieee1609Dot2Data FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base (1) schema (1) major-version-2 (2) minor-version-3(3)} Opaque, Psid FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2 (2) minor-version-2(2)} CrlContents FROM Ieee1609Dot2CrlBaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-2 (2) minor-version-2(2)} ; CrlPsid ::= Psid(256) -- PSID = 0x100, 0p8080 SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {..., content (WITH COMPONENTS { signedData (WITH COMPONENTS {..., tbsData (WITH COMPONENTS { payload (WITH COMPONENTS {..., data (WITH COMPONENTS {..., content (WITH COMPONENTS { unsecuredData (CONTAINING CrlContents) }) }) }), headerInfo (WITH COMPONENTS {..., psid (CrlPsid), generationTime ABSENT, expiryTime ABSENT, generationLocation ABSENT, p2pcdLearningRequest ABSENT, missingCrlIdentifier ABSENT, encryptionKey ABSENT }) }) }) }) }) END Ieee1609Dot2CrlBaseTypes.asn 0 → 100755 +130 −0 Original line number Diff line number Diff line Ieee1609Dot2CrlBaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-2(2) minor-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS CrlSeries, GeographicRegion, HashedId8, HashedId10, IValue, LaId, LinkageSeed, Opaque, Psid, Signature, Time32, Uint3, Uint8, Uint16, Uint32, ValidityPeriod FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2 (2) minor-version-2(2)} ; -- -- -- CRL contents -- -- CrlContents ::= SEQUENCE { version Uint8 (1), crlSeries CrlSeries, cracaId HashedId8, issueDate Time32, nextCrl Time32, priorityInfo CrlPriorityInfo, typeSpecific CHOICE { fullHashCrl ToBeSignedHashIdCrl, deltaHashCrl ToBeSignedHashIdCrl, fullLinkedCrl ToBeSignedLinkageValueCrl, deltaLinkedCrl ToBeSignedLinkageValueCrl, ... } } CrlPriorityInfo ::= SEQUENCE { priority Uint8 OPTIONAL, ... } ToBeSignedHashIdCrl ::= SEQUENCE { crlSerial Uint32, entries SequenceOfHashBasedRevocationInfo, ... } HashBasedRevocationInfo ::= SEQUENCE { id HashedId10, expiry Time32 } SequenceOfHashBasedRevocationInfo ::= SEQUENCE OF HashBasedRevocationInfo ToBeSignedLinkageValueCrl ::= SEQUENCE { iRev IValue, indexWithinI Uint8, individual SequenceOfJMaxGroup OPTIONAL, groups SequenceOfGroupCrlEntry OPTIONAL, ... } (WITH COMPONENTS {..., individual PRESENT} | WITH COMPONENTS {..., groups PRESENT}) JMaxGroup ::= SEQUENCE { jmax Uint8, contents SequenceOfLAGroup, ... } SequenceOfJMaxGroup ::= SEQUENCE OF JMaxGroup LAGroup ::= SEQUENCE { la1Id LaId, la2Id LaId, contents SequenceOfIMaxGroup, ... } SequenceOfLAGroup ::= SEQUENCE OF LAGroup IMaxGroup ::= SEQUENCE { iMax Uint16, contents SequenceOfIndividualRevocation, ... } SequenceOfIMaxGroup ::= SEQUENCE OF IMaxGroup IndividualRevocation ::= SEQUENCE { linkage-seed1 LinkageSeed, linkage-seed2 LinkageSeed, ... } SequenceOfIndividualRevocation ::= SEQUENCE OF IndividualRevocation GroupCrlEntry ::= SEQUENCE { iMax Uint16, la1Id LaId, linkageSeed1 LinkageSeed, la2Id LaId, linkageSeed2 LinkageSeed, ... } SequenceOfGroupCrlEntry ::= SEQUENCE OF GroupCrlEntry END aca-ee.asn 0 → 100755 +101 −0 Original line number Diff line number Diff line --***************************************************************************-- -- IEEE Std 1609.2.1: ACA - EE Interface -- --***************************************************************************-- /** * @brief NOTE: Section references in this file are to clauses in IEEE Std * 1609.2.1 unless indicated otherwise. Full forms of acronyms and * abbreviations used in this file are specified in 3.2. */ Ieee1609Dot2Dot1AcaEeInterface {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) extension-standards(255) dot1(1) interfaces(1) aca-ee(1) major-version-2(2) minor-version-2(2) } DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS Time32, Uint8 FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} Certificate FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) schema(1) major-version-2(2) minor-version-3(3)} ; /** * @class AcaEeInterfacePdu * * @brief 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: * * @param acaEeCertResponse contains the ACA's response to * RaAcaCertRequestSPDU, which is meant for the EE and sent via the RA. */ AcaEeInterfacePdu ::= CHOICE { acaEeCertResponse AcaEeCertResponse, ... } /** * @class AcaEeCertResponse * * @brief 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: * * <br><br>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. * * @param version contains the current version of the structure. * * @param generationTime contains the generation time of AcaEeCertResponse. * * @param certificate contains an authorization certificate generated by the * ACA. It is of the type indicated by the type field in the corresponding * request (if the requester requested an incorrect type, the response would * be an error not an instance of this structure). * * @param privateKeyInfo is an optional field that is as follows: * <ol> * <li> 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.</li> * * <li> 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).</li> * * <li> Absent otherwise.</li> * </ol> */ AcaEeCertResponse ::= SEQUENCE { version Uint8 (2), generationTime Time32, certificate Certificate, privateKeyInfo OCTET STRING (SIZE (32)) OPTIONAL, ... } END No newline at end of file aca-la.asn 0 → 100755 +28 −0 Original line number Diff line number Diff line --***************************************************************************-- -- IEEE Std 1609.2.1: ACA - LA Interface -- --***************************************************************************-- /** * @brief NOTE: Section references in this file are to clauses in IEEE Std * 1609.2.1 unless indicated otherwise. Full forms of acronyms and * abbreviations used in this file are specified in 3.2. */ Ieee1609Dot2Dot1AcaLaInterface {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) extension-standards(255) dot1(1) interfaces(1) aca-la(2) major-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; /** * @class AcaLaInterfacePdu * * @brief This structure is not used by EEs, so it is defined as NULL for * purposes of this document. */ AcaLaInterfacePdu ::= NULL END No newline at end of file Loading
.gitmodules 0 → 100644 +3 −0 Original line number Diff line number Diff line [submodule "ieee1609dot2"] path = ieee1609dot2 url = https://forge.etsi.org/rep/ITS/asn1/ieee1609.2.git
Ieee1609Dot2Crl.asn 0 → 100755 +57 −0 Original line number Diff line number Diff line Ieee1609Dot2Crl {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) protocol(1) major-version-2(2) minor-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS Ieee1609Dot2Data FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base (1) schema (1) major-version-2 (2) minor-version-3(3)} Opaque, Psid FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2 (2) minor-version-2(2)} CrlContents FROM Ieee1609Dot2CrlBaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-2 (2) minor-version-2(2)} ; CrlPsid ::= Psid(256) -- PSID = 0x100, 0p8080 SecuredCrl ::= Ieee1609Dot2Data (WITH COMPONENTS {..., content (WITH COMPONENTS { signedData (WITH COMPONENTS {..., tbsData (WITH COMPONENTS { payload (WITH COMPONENTS {..., data (WITH COMPONENTS {..., content (WITH COMPONENTS { unsecuredData (CONTAINING CrlContents) }) }) }), headerInfo (WITH COMPONENTS {..., psid (CrlPsid), generationTime ABSENT, expiryTime ABSENT, generationLocation ABSENT, p2pcdLearningRequest ABSENT, missingCrlIdentifier ABSENT, encryptionKey ABSENT }) }) }) }) }) END
Ieee1609Dot2CrlBaseTypes.asn 0 → 100755 +130 −0 Original line number Diff line number Diff line Ieee1609Dot2CrlBaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) crl(3) base-types(2) major-version-2(2) minor-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS CrlSeries, GeographicRegion, HashedId8, HashedId10, IValue, LaId, LinkageSeed, Opaque, Psid, Signature, Time32, Uint3, Uint8, Uint16, Uint32, ValidityPeriod FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2 (2) minor-version-2(2)} ; -- -- -- CRL contents -- -- CrlContents ::= SEQUENCE { version Uint8 (1), crlSeries CrlSeries, cracaId HashedId8, issueDate Time32, nextCrl Time32, priorityInfo CrlPriorityInfo, typeSpecific CHOICE { fullHashCrl ToBeSignedHashIdCrl, deltaHashCrl ToBeSignedHashIdCrl, fullLinkedCrl ToBeSignedLinkageValueCrl, deltaLinkedCrl ToBeSignedLinkageValueCrl, ... } } CrlPriorityInfo ::= SEQUENCE { priority Uint8 OPTIONAL, ... } ToBeSignedHashIdCrl ::= SEQUENCE { crlSerial Uint32, entries SequenceOfHashBasedRevocationInfo, ... } HashBasedRevocationInfo ::= SEQUENCE { id HashedId10, expiry Time32 } SequenceOfHashBasedRevocationInfo ::= SEQUENCE OF HashBasedRevocationInfo ToBeSignedLinkageValueCrl ::= SEQUENCE { iRev IValue, indexWithinI Uint8, individual SequenceOfJMaxGroup OPTIONAL, groups SequenceOfGroupCrlEntry OPTIONAL, ... } (WITH COMPONENTS {..., individual PRESENT} | WITH COMPONENTS {..., groups PRESENT}) JMaxGroup ::= SEQUENCE { jmax Uint8, contents SequenceOfLAGroup, ... } SequenceOfJMaxGroup ::= SEQUENCE OF JMaxGroup LAGroup ::= SEQUENCE { la1Id LaId, la2Id LaId, contents SequenceOfIMaxGroup, ... } SequenceOfLAGroup ::= SEQUENCE OF LAGroup IMaxGroup ::= SEQUENCE { iMax Uint16, contents SequenceOfIndividualRevocation, ... } SequenceOfIMaxGroup ::= SEQUENCE OF IMaxGroup IndividualRevocation ::= SEQUENCE { linkage-seed1 LinkageSeed, linkage-seed2 LinkageSeed, ... } SequenceOfIndividualRevocation ::= SEQUENCE OF IndividualRevocation GroupCrlEntry ::= SEQUENCE { iMax Uint16, la1Id LaId, linkageSeed1 LinkageSeed, la2Id LaId, linkageSeed2 LinkageSeed, ... } SequenceOfGroupCrlEntry ::= SEQUENCE OF GroupCrlEntry END
aca-ee.asn 0 → 100755 +101 −0 Original line number Diff line number Diff line --***************************************************************************-- -- IEEE Std 1609.2.1: ACA - EE Interface -- --***************************************************************************-- /** * @brief NOTE: Section references in this file are to clauses in IEEE Std * 1609.2.1 unless indicated otherwise. Full forms of acronyms and * abbreviations used in this file are specified in 3.2. */ Ieee1609Dot2Dot1AcaEeInterface {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) extension-standards(255) dot1(1) interfaces(1) aca-ee(1) major-version-2(2) minor-version-2(2) } DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; IMPORTS Time32, Uint8 FROM Ieee1609Dot2BaseTypes {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-2(2)} Certificate FROM Ieee1609Dot2 {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) schema(1) major-version-2(2) minor-version-3(3)} ; /** * @class AcaEeInterfacePdu * * @brief 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: * * @param acaEeCertResponse contains the ACA's response to * RaAcaCertRequestSPDU, which is meant for the EE and sent via the RA. */ AcaEeInterfacePdu ::= CHOICE { acaEeCertResponse AcaEeCertResponse, ... } /** * @class AcaEeCertResponse * * @brief 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: * * <br><br>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. * * @param version contains the current version of the structure. * * @param generationTime contains the generation time of AcaEeCertResponse. * * @param certificate contains an authorization certificate generated by the * ACA. It is of the type indicated by the type field in the corresponding * request (if the requester requested an incorrect type, the response would * be an error not an instance of this structure). * * @param privateKeyInfo is an optional field that is as follows: * <ol> * <li> 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.</li> * * <li> 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).</li> * * <li> Absent otherwise.</li> * </ol> */ AcaEeCertResponse ::= SEQUENCE { version Uint8 (2), generationTime Time32, certificate Certificate, privateKeyInfo OCTET STRING (SIZE (32)) OPTIONAL, ... } END No newline at end of file
aca-la.asn 0 → 100755 +28 −0 Original line number Diff line number Diff line --***************************************************************************-- -- IEEE Std 1609.2.1: ACA - LA Interface -- --***************************************************************************-- /** * @brief NOTE: Section references in this file are to clauses in IEEE Std * 1609.2.1 unless indicated otherwise. Full forms of acronyms and * abbreviations used in this file are specified in 3.2. */ Ieee1609Dot2Dot1AcaLaInterface {iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) extension-standards(255) dot1(1) interfaces(1) aca-la(2) major-version-2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN EXPORTS ALL; /** * @class AcaLaInterfacePdu * * @brief This structure is not used by EEs, so it is defined as NULL for * purposes of this document. */ AcaLaInterfacePdu ::= NULL END No newline at end of file