diff --git a/EtsiTs103759AsrDenm.asn b/EtsiTs103759AsrDenm.asn
index cce2064aa74d16e69703522bab76470a6f92e5cc..b15615dd7aa2bbef209b7dfbc89f345edfaf1974 100755
--- a/EtsiTs103759AsrDenm.asn
+++ b/EtsiTs103759AsrDenm.asn
@@ -1,14 +1,144 @@
EtsiTs103759AsrDenm {itu-t(0) identified-organization(4) etsi(0)
itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37)
- major-version-1(1) minor-version-0(0)}
+ major-version-1(1) minor-version-1(1)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
-/**
- * This data type is defined as NULL for version 0 of this file.
+IMPORTS
+C-ASR-EV,
+C-ASR-OBS-BY-TGT,
+C-ASR-SINGLE-OBS,
+MbSingleObservation,
+TemplateAsr
+FROM EtsiTs103759BaseTypes {itu-t(0) identified-organization(4) etsi(0)
+itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1)
+minor-version-1 (1)} WITH SUCCESSORS
+
+ obs-Beacon-IntervalTooSmall,
+ obs-Static-Change,
+ obs-Security-MessageIdIncWithHeaderInfo,
+ obs-Security-HeaderIncWithSecurityProfile,
+ obs-Security-HeaderPsidIncWithCertificate,
+ obs-Security-MessageIncWithSsp,
+ obs-Security-HeaderTimeOutsideCertificateValidity,
+ obs-Security-MessageLocationOutsideCertificateValidity,
+ obs-Security-HeaderLocationOutsideCertificateValidity,
+ obs-RoadTypeIncWithTrafficJamAhead,
+ obs-PathChangeInMultipleRepetitions,
+ obs-EeblMissingLocationInformation,
+ obs-EeblIncWithOtherVehiclesSpeed
+ FROM EtsiTs103759CommonObservations {itu-t(0) identified-organization(4)
+ etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2)
+ major-version-1(1) minor-version-2(2)}
+ WITH SUCCESSORS
+
+ 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-4(4)}
+WITH SUCCESSORS
+;
+
+ /* This data type is for reporting DENM issues. */
+AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}}
+
+ /* Identify target classes for DENM */
+IdDenmTgt ::= Uint8
+
+c-DenmTgt-BeaconCommon IdDenmTgt ::= 0
+c-DenmTgt-StaticCommon IdDenmTgt ::= 1
+c-DenmTgt-SecurityCommon IdDenmTgt ::= 2
+c-DenmTgt-TrafficJam-TrafficJamAhead IdDenmTgt ::= 3
+c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 4
+
+SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+
+SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+
+SetMbObsDenmSecurity C-ASR-SINGLE-OBS ::= {
+ obs-Security-MessageIdIncWithHeaderInfo |
+ obs-Security-HeaderIncWithSecurityProfile |
+ obs-Security-HeaderPsidIncWithCertificate |
+ obs-Security-MessageIncWithSsp |
+ obs-Security-HeaderTimeOutsideCertificateValidity |
+ obs-Security-MessageLocationOutsideCertificateValidity |
+ obs-Security-HeaderLocationOutsideCertificateValidity,
+ ...
+}
+
+SetMbObsDenmTrafficJam-TrafficJamAhead C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithTrafficJamAhead |
+ obs-PathChangeInMultipleRepetitions,
+ ...
+}
+
+SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= {
+ obs-EeblMissingLocationInformation |
+ obs-EeblIncWithOtherVehiclesSpeed,
+ ...
+}
+
+/*
+* This is a (sub)set of observations for DENM Use Cases specified in TS 103 759 Annex D.2 (see table D.3). Application-specific
+* trigger conditions and other relevant information are specified below.
+*
+* - _SetMbObsDenmBeacon_:
+* - `Beacon-IntervalTooSmall`: The interval between two consecutive DENMs related to the same traffic event (same actionId and detectionTime)
+* transmitted by the same ITS station (same stationId) is lower than the minimum threshhold value (100 ms).
+*
+* - _SetMbObsDenmStatic_:
+* - `Static-Change`: Any change in the values of one or more of the following fields which happens
+* during the repetition of the same traffic event (same actionId and detectionTime)
+* transmitted by the same ITS station (stationId): stationType and eventPosition in the Management Container, eventType and informationQuality in the Situation Container.
+* - `Semantics of the BIT STRING`: stationType(0), eventPosition(1), eventType(2), informationQuality(3).
+*
+* - _SetMbObsDenmSecurity_
+* The same specification applies as for the set of observations of SetMbObsCamSecurity defined in
+* the EtsiTs103759AsrCam module.
+*
+* - _SetMbObs_DenmTrafficJam-TrafficJamAhead_:
+* - `obs-RoadTypeIncWithTrafficJamAhead`: The roadType of the Location Container is not equal to 'non-urban' road type (i.e. is not set to value
+* nonUrban-NoStructuralSeparationToOppositeLanes (2),
+* nonUrban-WithStructuralSeparationToOppositeLanes (3)).
+*
+* - `obs-PathChangeInMultipleEventRepetitions`: The pathPositions contained in the path field of multiple repeated TrafficJamAhead events
+* with the same reporting ITS-S, same actionId and same referenceTime are not identical.
+*
+* - _SetMbObs_DenmDangerousSituation-Eebl_:
+* - `obs-EeblMissingLocationInformation`: one of the following location information of the detected event is missing: eventSpeed, eventPositionHeading, traces.
+*
+* - `obs-EeblIncWithOtherVehiclesSpeed`: the speed values of all CAMs sent by ITS-S stations of stationType =passengerCar(5) in the circular area with center point
+* equal to eventPosition and radius equal to 200 m (urban road) or equal to 100m (non-urban or unkwown)
+* are all higher than the eventSpeed in the DENM.
+*/
+SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= {
+ {MbSingleObservation{{SetMbObsDenmBeacon}} BY
+ c-DenmTgt-BeaconCommon} |
+ {MbSingleObservation{{SetMbObsDenmStatic}} BY
+ c-DenmTgt-StaticCommon} |
+ {MbSingleObservation{{SetMbObsDenmSecurity}} BY
+ c-DenmTgt-SecurityCommon} |
+ {MbSingleObservation{{SetMbObsDenmTrafficJam-TrafficJamAhead}} BY
+ c-DenmTgt-TrafficJam-TrafficJamAhead} |
+ {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY
+ c-DenmTgt-DangerousSituation-Eebl}
+ ,
+ ...
+}
+
+/*
+ * This data type defines the IOS for DENM Evidence.
*/
-AsrDenm ::= NULL
+SetMbEvDenm C-ASR-EV ::= {
+ ...
+}
END
\ No newline at end of file
diff --git a/EtsiTs103759CommonObservations.asn b/EtsiTs103759CommonObservations.asn
index 6728b67e3ba80fd0a05fea5c4671facc540549aa..140553cc6f5512ab6eaf32101329b00a50deab1e 100644
--- a/EtsiTs103759CommonObservations.asn
+++ b/EtsiTs103759CommonObservations.asn
@@ -1,7 +1,7 @@
--! @options: no-auto-fields
EtsiTs103759CommonObservations {itu-t(0) identified-organization(4)
etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2)
- major-version-1(1) minor-version-1(1)}
+ major-version-1(1) minor-version-2(2)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
@@ -411,4 +411,99 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
LongAcc-ValueTooLarge BY c-ObsLongAcc-ValueTooLarge
}
-END
\ No newline at end of file
+
+-- ********************************************************************************
+-- Traffic Jam - Traffic Jam Ahead
+/*
+ * This data type is provided for an observation of a road type inconsistent with
+ * the detected TrafficJam-TrafficJamAhead event
+ *
+ * - `v2xPduEvidence`: This field must contain at least one entry.
+ * The observation applies to the first entry. The `subjectPduIndex`
+ * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ * the PDU whose road type information is inconsistent with the
+ * detected event (Traffic Jam Ahead).
+ * The `v2xPdus` field in that entry must contain at least the subject PDU.
+ * The PDU shall be of type `ObsPduEtsiGn`.
+ *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included
+ * to support this observation.
+ */
+TrafficJam-RoadTypeIncWithTrafficJamAhead ::= NULL
+-- IDs
+c-ObsRoadTypeIncWithTrafficJamAhead IdMbObs::= 1 -- Class 1
+-- Individual Information Objects
+obs-RoadTypeIncWithTrafficJamAhead C-ASR-SINGLE-OBS ::=
+ {TrafficJam-RoadTypeIncWithTrafficJamAhead BY c-ObsRoadTypeIncWithTrafficJamAhead}
+
+ /* * This data type is provided for an observation of eventPoints in the path field which are not identical
+* in at least two successive TrafficJam-TrafficJamAhead DENM messages.
+ *
+ * - `v2xPduEvidence`: This field must contain at least one entry.
+ * The observation applies to the first entry. The `subjectPduIndex`
+ * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ * the PDU whose Path field is not containing the same eventPoints as the Path
+ * field in the previous PDU.
+ * The `v2xPdus` field in that entry must contain at least the subject PDU.
+ * The PDU shall be of type `ObsPduEtsiGn`.
+ *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included
+ * to support this observation.*/
+
+ TrafficJam-PathChangeInMultipleRepetitions ::= NULL
+ -- IDs
+ c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2 -- Class 2
+ -- Individual Information Objects
+ obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::=
+ {TrafficJam-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions}
+
+ -- ********************************************************************************
+-- Dangerous Situation - EEBL issues
+/* This data type is provided for an observation of an Eebl event which does not provide
+mandatory location information (eventSpeed, eventPositionHeading, traces).
+* - `v2xPduEvidence`: This field must contain at least one entry.
+ * The observation applies to the first entry. The `subjectPduIndex`
+ * in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+ * the PDU whose location information is missing.
+ * The `v2xPdus` field in that entry must contain at least the subject PDU.
+ * The PDU shall be of type `ObsPduEtsiGn`.
+ *
+ * - `nonV2xPduEvidence`: No other evidence is required to be included
+ * to support this observation.
+ */
+
+Eebl-MissingLocationInformation ::= NULL
+-- IDs
+c-ObsEebl-MissingLocationInformation IdMbObs::= 1 -- Class 1
+-- Individual Information Objects
+obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::=
+ {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation}
+
+/* This data type is provided for an observation of an Eebl event which is inconsistency with the speed values
+* of surrounding vehicles within a circular area with center point
+* equal to eventPosition and radius equal to 200 m (non urban road) or 100 m at the moment of the event detection.
+
+* - `v2xPduEvidence`: This field must contain at least , two entries, v2xPduEvidence[0] and v2xPduEvidence[1].
+* The observation applies to the first entry. The `subjectPduIndex`
+* in that @ref V2xPduStream (EtsiTs103759BaseTypes.md#V2xPduStream) points to
+* the DENM PDU signalling the EEBL event.
+* The `v2xPdus` field in that entry must contain at least the subject PDU.
+* The PDU shall be of type `ObsPduEtsiGn`.
+* All the entries v2xPduEvidence[1] to v2xPduEvidence[n] shall contain the CAM of a ITS stations of type vehicle included in the circular area.
+* For v2xPduEvidence[1] to v2xPduEvidence[n], the `v2xPdus` field in that entry must contain at least the subject PDU
+* and the subjectPduIndex is 0.
+* The PDU may be of any supported type and shall be of type
+* `c-MbObsMsg-ieee1609Dot2Data` unless another observation included in the
+* same report requires a different PDU type.
+*
+* - `nonV2xPduEvidence`: No other evidence is required to be included
+* to support this observation. */
+
+ Eebl-IncWithOtherVehiclesSpeed ::= NULL
+-- IDs
+c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2 -- Class 5
+-- Individual Information Objects
+obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::=
+ {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed}
+
+ END
\ No newline at end of file
diff --git a/docs/EtsiTs103097ExtensionModule.md b/docs/EtsiTs103097ExtensionModule.md
index 56bb65640f06eac051f00db06f9126cb1e4f813b..d84e92a6da067ecdbfa0eb276c030c5249c1d6fd 100644
--- a/docs/EtsiTs103097ExtensionModule.md
+++ b/docs/EtsiTs103097ExtensionModule.md
@@ -10,6 +10,9 @@ ExtensionModuleVersion::= INTEGER(1)
```
### Extension
+
+* _id_ of type [**EXT-TYPE**](#EXT-TYPE) .&extId({ExtensionTypes})
+* _content_ of type [**EXT-TYPE**](#EXT-TYPE) .&ExtContent({ExtensionTypes}{@.id})
```asn1
Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
id EXT-TYPE.&extId({ExtensionTypes}),
@@ -18,6 +21,8 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
```
### EXT-TYPE
+
+* _extId_ of type [**ExtId**](#ExtId)
```asn1
EXT-TYPE ::= CLASS {
&extId ExtId,
@@ -52,6 +57,9 @@ EtsiTs103097HeaderInfoExtensions EXT-TYPE ::= {
```
### EtsiTs102941CrlRequest
+
+* _issuerId_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _lastKnownUpdate_ of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32) OPTIONAL
```asn1
EtsiTs102941CrlRequest::= SEQUENCE {
issuerId HashedId8,
@@ -60,6 +68,9 @@ EtsiTs102941CrlRequest::= SEQUENCE {
```
### EtsiTs102941CtlRequest
+
+* _issuerId_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _lastKnownCtlSequence_ of type **INTEGER** (0..255) OPTIONAL
```asn1
EtsiTs102941CtlRequest::= SEQUENCE {
issuerId HashedId8,
diff --git a/docs/EtsiTs103097Module.md b/docs/EtsiTs103097Module.md
index dd600192dbbc88eb0fcbe878f47a8a1ec124050e..6bb42c7b4a9c5c066fef5b4f75731a6b2a929472 100644
--- a/docs/EtsiTs103097Module.md
+++ b/docs/EtsiTs103097Module.md
@@ -110,6 +110,9 @@ EtsiTs103097Data-Encrypted {ToBeEncryptedDataContent} ::= EtsiTs103097Data (WITH
```
### EtsiTs103097Data-SignedAndEncrypted
+
+Values:
+* **EtsiTs103097Data-Signed** {ToBesignedAndEncryptedDataContent}
```asn1
EtsiTs103097Data-SignedAndEncrypted {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}}
```
@@ -126,6 +129,9 @@ EtsiTs103097Data-Encrypted-Unicast {ToBeEncryptedDataContent} ::= EtsiTs103097Da
```
### EtsiTs103097Data-SignedAndEncrypted-Unicast
+
+Values:
+* **EtsiTs103097Data-Signed** {ToBesignedAndEncryptedDataContent}
```asn1
EtsiTs103097Data-SignedAndEncrypted-Unicast {ToBesignedAndEncryptedDataContent} ::= EtsiTs103097Data-Encrypted {EtsiTs103097Data-Signed {ToBesignedAndEncryptedDataContent}} (WITH COMPONENTS {...,
content (WITH COMPONENTS {
diff --git a/docs/EtsiTs103759AsrCam.md b/docs/EtsiTs103759AsrCam.md
index 77219e33eb66f95d81cf42271d1e8e5613bec135..f88327e74ca08e7e3c9199a42afc19eec7e08c84 100644
--- a/docs/EtsiTs103759AsrCam.md
+++ b/docs/EtsiTs103759AsrCam.md
@@ -43,6 +43,14 @@ SetMbObsCamStatic C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamSecurity
+
+Values:
+* **obs-Security-MessageIdIncWithHeaderInfo** |
+* **obs-Security-HeaderIncWithSecurityProfile** |
+* **obs-Security-HeaderPsidIncWithCertificate** |
+* **obs-Security-MessageIncWithSsp** |
+* **obs-Security-HeaderTimeOutsideCertificateValidity** |
+* **obs-Security-MessageLocationOutsideCertificateValidity** |
```asn1
SetMbObsCamSecurity C-ASR-SINGLE-OBS ::= {
obs-Security-MessageIdIncWithHeaderInfo |
@@ -65,6 +73,10 @@ SetMbObsCamPosition C-ASR-SINGLE-OBS ::= {
```
### SetMbObsCamSpeed
+
+Values:
+* **obs-Speed-ValueTooLarge-VehicleType** |
+* **obs-Speed-ValueTooLarge-DriveDirectionReverse** |
```asn1
SetMbObsCamSpeed C-ASR-SINGLE-OBS ::= {
obs-Speed-ValueTooLarge-VehicleType |
diff --git a/docs/EtsiTs103759AsrDenm.md b/docs/EtsiTs103759AsrDenm.md
index 92a8aeb2700674905a84234813f6e4146b52d3f1..addc0221015c566c3aa080c7744745aad16f8dbd 100644
--- a/docs/EtsiTs103759AsrDenm.md
+++ b/docs/EtsiTs103759AsrDenm.md
@@ -1,11 +1,114 @@
# ASN.1 module EtsiTs103759AsrDenm
-OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) major-version-1(1) minor-version-0(0)}_
+OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) aid-specific(2) denm(37) major-version-1(1) minor-version-1(1)}_
+## Imports:
+* **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
+* **[EtsiTs103759CommonObservations](EtsiTs103759CommonObservations.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) major-version-1(1) minor-version-2(2)} WITH SUCCESSORS*
+* **[Ieee1609Dot2BaseTypes](Ieee1609Dot2BaseTypes.md)** *{iso(1) identified-organization(3) ieee(111) standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2) base(1) base-types(2) major-version-2(2) minor-version-4(4)} WITH SUCCESSORS*
## Data Elements:
### AsrDenm
-This data type is defined as NULL for version 0 of this file.
```asn1
-AsrDenm ::= NULL
+AsrDenm ::= TemplateAsr {{SetMbObsTgtsDenm}, {SetMbEvDenm}}
+```
+
+### IdDenmTgt
+```asn1
+IdDenmTgt ::= Uint8
+```
+
+```asn1
+c-DenmTgt-BeaconCommon IdDenmTgt ::= 0
+c-DenmTgt-StaticCommon IdDenmTgt ::= 1
+c-DenmTgt-SecurityCommon IdDenmTgt ::= 2
+c-DenmTgt-TrafficJam-TrafficJamAhead IdDenmTgt ::= 3
+c-DenmTgt-DangerousSituation-Eebl IdDenmTgt ::= 4
+```
+
+### SetMbObsDenmBeacon
+```asn1
+SetMbObsDenmBeacon C-ASR-SINGLE-OBS ::= {
+ obs-Beacon-IntervalTooSmall,
+ ...
+}
+```
+
+### SetMbObsDenmStatic
+```asn1
+SetMbObsDenmStatic C-ASR-SINGLE-OBS ::= {
+ obs-Static-Change,
+ ...
+}
+```
+
+### SetMbObsDenmSecurity
+
+Values:
+* **obs-Security-MessageIdIncWithHeaderInfo** |
+* **obs-Security-HeaderIncWithSecurityProfile** |
+* **obs-Security-HeaderPsidIncWithCertificate** |
+* **obs-Security-MessageIncWithSsp** |
+* **obs-Security-HeaderTimeOutsideCertificateValidity** |
+* **obs-Security-MessageLocationOutsideCertificateValidity** |
+```asn1
+SetMbObsDenmSecurity C-ASR-SINGLE-OBS ::= {
+ obs-Security-MessageIdIncWithHeaderInfo |
+ obs-Security-HeaderIncWithSecurityProfile |
+ obs-Security-HeaderPsidIncWithCertificate |
+ obs-Security-MessageIncWithSsp |
+ obs-Security-HeaderTimeOutsideCertificateValidity |
+ obs-Security-MessageLocationOutsideCertificateValidity |
+ obs-Security-HeaderLocationOutsideCertificateValidity,
+ ...
+}
+```
+
+### SetMbObsDenmTrafficJam-TrafficJamAhead
+
+Values:
+* **obs-RoadTypeIncWithTrafficJamAhead** |
+```asn1
+SetMbObsDenmTrafficJam-TrafficJamAhead C-ASR-SINGLE-OBS ::= {
+ obs-RoadTypeIncWithTrafficJamAhead |
+ obs-PathChangeInMultipleRepetitions,
+ ...
+}
+```
+
+### SetMbObsDenmDangerousSituation-Eebl
+
+Values:
+* **obs-EeblMissingLocationInformation** |
+```asn1
+SetMbObsDenmDangerousSituation-Eebl C-ASR-SINGLE-OBS ::= {
+ obs-EeblMissingLocationInformation |
+ obs-EeblIncWithOtherVehiclesSpeed,
+ ...
+}
+```
+
+### SetMbObsTgtsDenm
+```asn1
+SetMbObsTgtsDenm C-ASR-OBS-BY-TGT ::= {
+ {MbSingleObservation{{SetMbObsDenmBeacon}} BY
+ c-DenmTgt-BeaconCommon} |
+ {MbSingleObservation{{SetMbObsDenmStatic}} BY
+ c-DenmTgt-StaticCommon} |
+ {MbSingleObservation{{SetMbObsDenmSecurity}} BY
+ c-DenmTgt-SecurityCommon} |
+ {MbSingleObservation{{SetMbObsDenmTrafficJam-TrafficJamAhead}} BY
+ c-DenmTgt-TrafficJam-TrafficJamAhead} |
+ {MbSingleObservation{{SetMbObsDenmDangerousSituation-Eebl}} BY
+ c-DenmTgt-DangerousSituation-Eebl}
+ ,
+ ...
+}
+```
+
+### SetMbEvDenm
+```asn1
+SetMbEvDenm C-ASR-EV ::= {
+ ...
+}
```
diff --git a/docs/EtsiTs103759BaseTypes.md b/docs/EtsiTs103759BaseTypes.md
index 44fb007d13a07d957ef873fc7d7b9dd6bce28f65..21a0b4d2f4416970b92afb02156bd077766e433f 100644
--- a/docs/EtsiTs103759BaseTypes.md
+++ b/docs/EtsiTs103759BaseTypes.md
@@ -19,7 +19,7 @@ This data type contains the template for a report on any ITS PDU.
the observations field, plus other PDUs sent for the same application (AID)
by the same sender).
-* _nonV2xPduEvidence_ of type [**NonV2xPduEvidenceItemSequence**](#NonV2xPduEvidenceItemSequence) {{NonV2xPduEvidenceSet}
+* nonV2xPduEvidence
is any information that was used by the
detectors other than the V2X PDUs. If the report does not contain any
observations that use other evidence (for example, if the report is simply
@@ -103,6 +103,7 @@ C-ASR-SINGLE-OBS ::= C-2ENT
### V2xPduStream
This data type contains PDU stream from a single sender.
+* _type_ of type [**C-OBS-PDU**](#C-OBS-PDU) .&id ({SetObsPdu})
* _v2xPdus_ of type **SEQUENCE** (SIZE(1..255)) OF C-OBS-PDU.&Val ({SetObsPdu}{@.type})
is the PDU stream, i.e., a series of PDUs for the same AID
sent by the same sender (where "sent by the same sender" means "signed by
@@ -215,6 +216,7 @@ This is the Information Object Class used to define evidence.
>>>
NOTE: No instances of this class are defined in this version of this document.
>>>
+
```asn1
C-ASR-EV ::= C-2ENT
```
@@ -223,6 +225,8 @@ C-ASR-EV ::= C-2ENT
This structures uses single-byte IDs. If we run out of ID space
in future, the Val type associated with ID 255 can also be structured
hierarchically to extend the space.
+
+* _id_ of type [**Uint8**](Ieee1609Dot2BaseTypes.md#Uint8)
```asn1
C-2ENT ::= CLASS {
&id Uint8,
diff --git a/docs/EtsiTs103759CommonObservations.md b/docs/EtsiTs103759CommonObservations.md
index 8a6e1b7bf5213c207573897a5af83c14c4b54300..fed41c98adc85aede75d0454b2c121c80a0f05e8 100644
--- a/docs/EtsiTs103759CommonObservations.md
+++ b/docs/EtsiTs103759CommonObservations.md
@@ -1,5 +1,5 @@
# ASN.1 module EtsiTs103759CommonObservations
-OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) major-version-1(1) minor-version-1(1)}_
+OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) common-observations(2) major-version-1(1) minor-version-2(2)}_
## Imports:
* **[EtsiTs103759BaseTypes](EtsiTs103759BaseTypes.md)** *{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103759) general(1) base-types(3) major-version-1(1) minor-version-1 (1)} WITH SUCCESSORS*
@@ -362,5 +362,37 @@ obs-LongAcc-ValueTooLarge C-ASR-SINGLE-OBS ::= {
}
```
+### TrafficJam-RoadTypeIncWithTrafficJamAhead
+```asn1
+TrafficJam-RoadTypeIncWithTrafficJamAhead ::= NULL
+c-ObsRoadTypeIncWithTrafficJamAhead IdMbObs::= 1
+obs-RoadTypeIncWithTrafficJamAhead C-ASR-SINGLE-OBS ::=
+ {TrafficJam-RoadTypeIncWithTrafficJamAhead BY c-ObsRoadTypeIncWithTrafficJamAhead}
+```
+
+### TrafficJam-PathChangeInMultipleRepetitions
+```asn1
+TrafficJam-PathChangeInMultipleRepetitions ::= NULL
+ c-ObsPathChangeInMultipleRepetitions IdMbObs::= 2
+ obs-PathChangeInMultipleRepetitions C-ASR-SINGLE-OBS ::=
+ {TrafficJam-PathChangeInMultipleRepetitions BY c-ObsPathChangeInMultipleRepetitions}
+```
+
+### Eebl-MissingLocationInformation
+```asn1
+Eebl-MissingLocationInformation ::= NULL
+c-ObsEebl-MissingLocationInformation IdMbObs::= 1
+obs-EeblMissingLocationInformation C-ASR-SINGLE-OBS ::=
+ {Eebl-MissingLocationInformation BY c-ObsEebl-MissingLocationInformation}
+```
+
+### Eebl-IncWithOtherVehiclesSpeed
+```asn1
+Eebl-IncWithOtherVehiclesSpeed ::= NULL
+c-ObsEeblIncWithOtherVehiclesSpeed IdMbObs::= 2
+obs-EeblIncWithOtherVehiclesSpeed C-ASR-SINGLE-OBS ::=
+ {Eebl-IncWithOtherVehiclesSpeed BY c-ObsEeblIncWithOtherVehiclesSpeed}
+```
+
diff --git a/docs/EtsiTs103759Core.md b/docs/EtsiTs103759Core.md
index f0ebbe69ccd5045edee39e52accea502c3ff769c..4c3edec3ce110150f690d8a7a49b42333ee70a75 100644
--- a/docs/EtsiTs103759Core.md
+++ b/docs/EtsiTs103759Core.md
@@ -112,23 +112,32 @@ SetAsr C-ASR ::= {
}
```
+This data type contains the ITS-AID of the unknown service.
+
>>>
NOTE: This value is used for suspicious observations that are not
or cannot be linked to a specific application.
>>>
+
```asn1
c-AsrAppAgnostic Psid ::= 270549119
```
+This data type contains the ITS-AID of the CA service.
+
```asn1
c-AsrCam Psid ::= 36
```
+This data type contains the ITS-AID of the DEN service.
+
```asn1
c-AsrDenm Psid ::= 37
```
+This data type contains the ITS-AID of the BSM.
+
```asn1
c-AsrBsm Psid ::= 32
```
diff --git a/docs/Ieee1609Dot2.md b/docs/Ieee1609Dot2.md
index 79ee07efaf3be9ae28a8014888c48947b0f82dad..25decf9ddec23b768d92061f8493e1698453200d 100644
--- a/docs/Ieee1609Dot2.md
+++ b/docs/Ieee1609Dot2.md
@@ -25,6 +25,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2. The canonicalization
applies to the Ieee1609Dot2Content.
>>>
+
```asn1
Ieee1609Dot2Data ::= SEQUENCE {
protocolVersion Uint8(3),
@@ -54,14 +55,13 @@ Ieee1609Dot2Data ::= SEQUENCE {
indicates that the content is a
certificate request signed by an ITU-T X.509 certificate.
-
- ...,
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2 if it is of type signedData.
The canonicalization applies to the SignedData.
>>>
+
```asn1
Ieee1609Dot2Content ::= CHOICE {
unsecuredData Opaque,
@@ -110,6 +110,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2. The canonicalization
applies to the ToBeSignedData and the Signature.
>>>
+
```asn1
SignedData ::= SEQUENCE {
hashId HashAlgorithm,
@@ -152,6 +153,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
applies to the SignedDataPayload if it is of type data, and to the
HeaderInfo.
>>>
+
```asn1
ToBeSignedData ::= SEQUENCE {
payload SignedDataPayload,
@@ -184,14 +186,13 @@ ToBeSignedData ::= SEQUENCE {
hash calculation for the signature.The mechanism for including the external
data in the hash calculation is specified in 6.3.6.
-
- ...,
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2. The canonicalization
applies to the Ieee1609Dot2Data.
>>>
+
```asn1
SignedDataPayload ::= SEQUENCE {
data Ieee1609Dot2Data OPTIONAL,
@@ -212,8 +213,6 @@ SignedDataPayload ::= SEQUENCE {
* _sha384HashedData_ of type [**HashedId48**](Ieee1609Dot2BaseTypes.md#HashedId48)
indicates data hashed with SHA-384.
-
- ...,
* _sm3HashedData_ of type [**HashedId32**](Ieee1609Dot2BaseTypes.md#HashedId32)
indicates data hashed with SM3.
@@ -225,6 +224,7 @@ NOTE: Critical information fields: If present, this is a critical
shall indicate that the signed SPDU is invalid in the sense of 4.2.2.3.2,
that is, it is invalid in the sense that its validity cannot be established.
>>>
+
```asn1
HashedData::= CHOICE {
sha256HashedData HashedId32,
@@ -291,8 +291,6 @@ HashedData::= CHOICE {
to the COER-encoded certificate, canonicalized as defined in the definition
of Certificate.
-
- ...,
* _requestedCertificate_ of type [**Certificate**](Ieee1609Dot2.md#Certificate) OPTIONAL
if present, is used by the SDS to provide
certificates per the "inline" version of the peer-to-peer certificate
@@ -320,6 +318,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
The canonicalization does not apply to any fields after the extension
marker, including any fields in contributedExtensions.
>>>
+
```asn1
HeaderInfo ::= SEQUENCE {
psid Psid,
@@ -436,7 +435,8 @@ ContributedExtensionBlock ::= SEQUENCE {
### This Information Object Class defines the class that provides a
template for defining extension blocks.
-
+
+* _id_ of type [**HeaderInfoContributorId**](#HeaderInfoContributorId) UNIQUE
```asn1
IEEE1609DOT2-HEADERINFO-CONTRIBUTED-EXTENSION ::= CLASS {
&id HeaderInfoContributorId UNIQUE,
@@ -513,6 +513,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2. The canonicalization
applies to every Certificate in the certificate field.
>>>
+
```asn1
SignerIdentifier ::= CHOICE {
digest HashedId8,
@@ -576,6 +577,7 @@ NOTE: If the plaintext is raw data, i.e., it has not been output from a
80 indicates the choice unsecuredData, and the third byte 08 is the length
of the raw data '01 23 45 67 89 AB CD EF'.
>>>
+
```asn1
EncryptedData ::= SEQUENCE {
recipients SequenceOfRecipientInfo,
@@ -634,6 +636,7 @@ NOTE: The material input to encryption is the bytes of the encryption key
with no headers, encapsulation, or length indication. Contrast this to
encryption of data, where the data is encapsulated in an Ieee1609Dot2Data.
>>>
+
```asn1
RecipientInfo ::= CHOICE {
pskRecipInfo PreSharedKeyRecipientInfo,
@@ -731,6 +734,10 @@ Critical information fields: If present and applicable to
RecipientInfos contain an EncryptedDataEncryptionKey such that the
implementation does not recognize the indicated CHOICE, the implementation
shall indicate that the encrypted SPDU is not decryptable.
+
+* _eciesNistP256_ of type [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
+* _eciesBrainpoolP256r1_ of type [**EciesP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EciesP256EncryptedKey)
+* _ecencSm2256_ of type [**EcencP256EncryptedKey**](Ieee1609Dot2BaseTypes.md#EcencP256EncryptedKey)
```asn1
EncryptedDataEncryptionKey ::= CHOICE {
eciesNistP256 EciesP256EncryptedKey,
@@ -743,6 +750,9 @@ EncryptedDataEncryptionKey ::= CHOICE {
### This data structure encapsulates a ciphertext generated with an
approved symmetric algorithm.
+* _aes128ccm_ of type [**One28BitCcmCiphertext**](#One28BitCcmCiphertext)
+* _sm4Ccm_ of type [**One28BitCcmCiphertext**](#One28BitCcmCiphertext)
+
>>>
NOTE: Critical information fields: If present, this is a critical
information field as defined in 5.2.6. An implementation that does not
@@ -750,6 +760,7 @@ NOTE: Critical information fields: If present, this is a critical
shall indicate that the signed SPDU is invalid in the sense of 4.2.2.3.2,
that is, it is invalid in the sense that its validity cannot be established.
>>>
+
```asn1
SymmetricCiphertext ::= CHOICE {
aes128ccm One28BitCcmCiphertext,
@@ -786,6 +797,7 @@ NOTE: In the name of this structure, "One28" indicates that the
bits affects only the size of the MAC and does not affect the size of the
raw ciphertext.
>>>
+
```asn1
One28BitCcmCiphertext ::= SEQUENCE {
nonce OCTET STRING (SIZE (12)),
@@ -808,6 +820,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2. The canonicalization
applies to the CertificateBase.
>>>
+
```asn1
TestCertificate ::= Certificate
```
@@ -862,6 +875,7 @@ NOTE: Whole-certificate hash: If the entirety of a certificate is hashed
this purpose is known as the whole-certificate hash. The method used to
determine the whole-certificate hash algorithm is specified in 5.3.9.2.
>>>
+
```asn1
CertificateBase ::= SEQUENCE {
version Uint8(3),
@@ -883,6 +897,7 @@ NOTE: Critical information fields: If present, this is a critical
that is, it is invalid in the sense that its validity cannot be
established.
>>>
+
```asn1
CertificateType ::= ENUMERATED {
explicit,
@@ -937,6 +952,11 @@ If the choice indicated is sha256AndDigest, sha384AndDigest, or
- The certificate is to be verified with the public key indicated by
the verifyKeyIndicator field in theToBeSignedCertificate.
+* _sha256AndDigest_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _self_ of type [**HashAlgorithm**](Ieee1609Dot2BaseTypes.md#HashAlgorithm)
+* _sha384AndDigest_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+* _sm3AndDigest_ of type [**HashedId8**](Ieee1609Dot2BaseTypes.md#HashedId8)
+
>>>
NOTE: Critical information fields: If present, this is a critical
information field as defined in 5.2.5. An implementation that does not
@@ -945,6 +965,7 @@ NOTE: Critical information fields: If present, this is a critical
that is, it is invalid in the sense that its validity cannot be
established.
>>>
+
```asn1
IssuerIdentifier ::= CHOICE {
sha256AndDigest HashedId8,
@@ -1051,7 +1072,7 @@ For both implicit and explicit certificates, when the certificate
contains material that may be used to recover
the public key that may be used to verify data signed by this certificate.
-* _flags_ of type **BIT STRING** {usesCubk (0)
+* flags
indicates additional yes/no properties of the certificate
holder. The only bit with defined semantics in this string in this version
of this standard is usesCubk. If set, the usesCubk bit indicates that the
@@ -1059,8 +1080,6 @@ For both implicit and explicit certificates, when the certificate
Further material about the compact unified butterfly key response can be
found in IEEE Std 1609.2.1.
-
- ...,
* appExtensions
indicates additional permissions that may be applied
to application activities that the certificate holder is carrying out.
@@ -1132,6 +1151,7 @@ NOTE: Critical information fields:
(because it could validate all relevant fields) or invalid (because it
could not parse the entire certificate) is implementation-specific.
>>>
+
```asn1
ToBeSignedCertificate ::= SEQUENCE {
id CertificateId,
@@ -1183,6 +1203,7 @@ NOTE: Critical information fields:
An implementation that does not recognize the choice indicated in this
field shall reject a signed SPDU as invalid.
>>>
+
```asn1
CertificateId ::= CHOICE {
linkageData LinkageData,
@@ -1197,7 +1218,10 @@ CertificateId ::= CHOICE {
information obtained from a linkage ID-based CRL to determine whether the
containing certificate has been revoked. See 5.1.3.4 and 7.3 for details
of use.
-
+
+* _iCert_ of type [**IValue**](Ieee1609Dot2BaseTypes.md#IValue)
+* _linkage-value_ of type [**LinkageValue**](Ieee1609Dot2BaseTypes.md#LinkageValue)
+* _group-linkage-value_ of type [**GroupLinkageValue**](Ieee1609Dot2BaseTypes.md#GroupLinkageValue) OPTIONAL
```asn1
LinkageData ::= SEQUENCE {
iCert IValue,
@@ -1229,7 +1253,8 @@ LinkageData ::= SEQUENCE {
it indicates that the certificate chain may be any length equal to or
greater than minChainLength. See the examples below for further discussion.
-* _eeType_ of type [**EndEntityType**](#EndEntityType) DEFAULT {app
+* _chainLengthRange_ of type **INTEGER** DEFAULT 0
+* eeType
takes one or more of the values app and enroll and indicates
the type of certificates or requests that this instance of
PsidGroupPermissions in the certificate is entitled to authorize.
@@ -1272,6 +1297,9 @@ SequenceOfPsidGroupPermissions ::= SEQUENCE OF PsidGroupPermissions
PsidGroupPermissions in the same certIssuePermissions or
certRequestPermissions field.
+* _explicit_ of type [**SequenceOfPsidSspRange**](Ieee1609Dot2BaseTypes.md#SequenceOfPsidSspRange)
+* _all_ of type **NULL**
+
>>>
NOTE: Critical information fields:
- If present, this is a critical information field as defined in 5.2.6.
@@ -1286,6 +1314,7 @@ NOTE: Critical information fields:
sense that its validity cannot be established. A conformant implementation
shall support explicit fields containing at least eight entries.
>>>
+
```asn1
SubjectPermissions ::= CHOICE {
explicit SequenceOfPsidSspRange,
@@ -1316,6 +1345,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
choice indicated within the EccP256CurvePoint is compressed-y-0 or
compressed-y-1.
>>>
+
```asn1
VerificationKeyIndicator ::= CHOICE {
verificationKey PublicVerificationKey,
@@ -1403,8 +1433,9 @@ SequenceOfCertIssueExtensions ::=
* _id_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
identifies the extension type.
-* _permissions_ of type [**CHOICE**](#CHOICE) {
- specific CERT-EXT-TYPE.&Issue({SetCertExtensions}{@.id})
+* _specific_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&Issue({SetCertExtensions}{@.id})
+* _all_ of type **NULL**
+* permissions
indicates the permissions. Within this field.
- all indicates that the certificate is entitled to issue all values of
the extension.
@@ -1446,8 +1477,9 @@ SequenceOfCertRequestExtensions ::= SEQUENCE (SIZE(1..MAX)) OF CertRequestExtens
* _id_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&id({SetCertExtensions})
identifies the extension type.
-* _permissions_ of type [**CHOICE**](#CHOICE) {
- content CERT-EXT-TYPE.&Req({SetCertExtensions}{@.id})
+* _content_ of type [**CERT-EXT-TYPE**](Ieee1609Dot2BaseTypes.md#CERT-EXT-TYPE) .&Req({SetCertExtensions}{@.id})
+* _all_ of type **NULL**
+* permissions
indicates the permissions. Within this field.
- all indicates that the certificate is entitled to issue all values of
the extension.
diff --git a/docs/Ieee1609Dot2BaseTypes.md b/docs/Ieee1609Dot2BaseTypes.md
index 0a9ce105813c25328582e82987ad64b285eb363a..87b223d8fb4f635800f0dcd69d981ff895eba3ce 100644
--- a/docs/Ieee1609Dot2BaseTypes.md
+++ b/docs/Ieee1609Dot2BaseTypes.md
@@ -206,7 +206,9 @@ Time64 ::= Uint64
### This type 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.
-
+
+* _start_ of type [**Time32**](Ieee1609Dot2BaseTypes.md#Time32)
+* _duration_ of type [**Duration**](#Duration)
```asn1
ValidityPeriod ::= SEQUENCE {
start Time32,
@@ -219,10 +221,19 @@ ValidityPeriod ::= SEQUENCE {
by the indicated choice. A year is considered to be 31556952 seconds,
which is the average number of seconds in a year.
+* _microseconds_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+* _milliseconds_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+* _seconds_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+* _minutes_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+* _hours_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+* _sixtyHours_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+* _years_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
+
>>>
NOTE: Years can be mapped more closely to wall-clock days using the hours
choice for up to 7 years and the sixtyHours choice for up to 448 years.
>>>
+
```asn1
Duration ::= CHOICE {
microseconds Uint16,
@@ -280,6 +291,7 @@ NOTE: Critical information fields:
that its validity cannot be established. A conformant implementation shall
support identifiedRegion fields containing at least eight entries.
>>>
+
```asn1
GeographicRegion ::= CHOICE {
circularRegion CircularRegion,
@@ -297,7 +309,9 @@ GeographicRegion ::= CHOICE {
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.
-
+
+* _center_ of type [**TwoDLocation**](#TwoDLocation)
+* _radius_ of type [**Uint16**](Ieee1609Dot2BaseTypes.md#Uint16)
```asn1
CircularRegion ::= SEQUENCE {
center TwoDLocation,
@@ -356,6 +370,7 @@ NOTE: Critical information fields: If present, this is a critical
implementation shall support PolygonalRegions containing at least eight
TwoDLocation entries.
>>>
+
```asn1
PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation
```
@@ -364,6 +379,9 @@ PolygonalRegion ::= SEQUENCE SIZE (3..MAX) OF TwoDLocation
certificates. The latitude and longitude fields contain the latitude and
longitude as defined above.
+* _latitude_ of type [**Latitude**](#Latitude)
+* _longitude_ of type [**Longitude**](#Longitude)
+
>>>
NOTE: This data structure is consistent with the location encoding
used in SAE J2735, except that values 900 000 001 for latitude (used to
@@ -371,6 +389,7 @@ NOTE: This data structure is consistent with the location encoding
longitude (used to indicate that the longitude was not available) are not
valid.
>>>
+
```asn1
TwoDLocation ::= SEQUENCE {
latitude Latitude,
@@ -625,11 +644,16 @@ SequenceOfRegionAndSubregions ::= SEQUENCE OF RegionAndSubregions
### This structure contains an estimate of 3D location. The details of
the structure are given in the definitions of the individual fields below.
+* _latitude_ of type [**Latitude**](#Latitude)
+* _longitude_ of type [**Longitude**](#Longitude)
+* _elevation_ of type [**Elevation**](#Elevation)
+
>>>
NOTE: The units used in this data structure are consistent with the
location data structures used in SAE J2735 [B26], though the encoding is
incompatible.
>>>
+
```asn1
ThreeDLocation ::= SEQUENCE {
latitude Latitude,
@@ -672,7 +696,11 @@ Elevation ::= Uint16
### 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.
-
+
+Values:
+* **min** (-900000000)
+* **max** (900000000)
+* **unknown** (900000001)
```asn1
NinetyDegreeInt ::= INTEGER {
min (-900000000),
@@ -698,7 +726,11 @@ UnknownLatitude ::= NinetyDegreeInt (unknown)
### 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.
-
+
+Values:
+* **min** (-1799999999)
+* **max** (1800000000)
+* **unknown** (1800000001)
```asn1
OneEightyDegreeInt ::= INTEGER {
min (-1799999999),
@@ -724,12 +756,19 @@ UnknownLongitude ::= OneEightyDegreeInt (unknown)
### This structure represents a signature for a supported public key
algorithm. It may be contained within SignedData or Certificate.
+* _ecdsaNistP256Signature_ of type [**EcdsaP256Signature**](#EcdsaP256Signature)
+* _ecdsaBrainpoolP256r1Signature_ of type [**EcdsaP256Signature**](#EcdsaP256Signature)
+* _ecdsaBrainpoolP384r1Signature_ of type [**EcdsaP384Signature**](#EcdsaP384Signature)
+* _ecdsaNistP384Signature_ of type [**EcdsaP384Signature**](#EcdsaP384Signature)
+* _sm2Signature_ of type [**EcsigP256Signature**](#EcsigP256Signature)
+
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2. The canonicalization
applies to instances of this data structure of form EcdsaP256Signature
and EcdsaP384Signature.
>>>
+
```asn1
Signature ::= CHOICE {
ecdsaNistP256Signature EcdsaP256Signature,
@@ -762,6 +801,9 @@ If the signature process followed the specification of FIPS 186-4
- p = A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377
- n = A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7
+* _rSig_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
+* _sSig_ of type **OCTET STRING** (SIZE (32))
+
>>>
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
@@ -776,6 +818,7 @@ NOTE: When the signature is of form x-only, the x-value in rSig is
256-bit curves in this standard, the exact values of n and p in hexadecimal
are:
>>>
+
```asn1
EcdsaP256Signature ::= SEQUENCE {
rSig EccP256CurvePoint,
@@ -794,6 +837,9 @@ If the signature process followed the specification of FIPS 186-4
represented as an EccP384CurvePoint indicating the choice compressed-y-0,
compressed-y-1, or uncompressed at the sender's discretion.
+* _rSig_ of type [**EccP384CurvePoint**](#EccP384CurvePoint)
+* _sSig_ of type **OCTET STRING** (SIZE (48))
+
>>>
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
@@ -811,6 +857,7 @@ NOTE: When the signature is of form x-only, the x-value in rSig is
- n = 8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7
CF3AB6AF6B7FC3103B883202E9046565
>>>
+
```asn1
EcdsaP384Signature ::= SEQUENCE {
rSig EccP384CurvePoint,
@@ -821,7 +868,9 @@ EcdsaP384Signature ::= SEQUENCE {
### This structure represents a elliptic curve signature where the
component r is constrained to be an integer. This structure supports SM2
signatures as specified in 5.3.1.3.
-
+
+* _rSig_ of type **OCTET STRING** (SIZE (32))
+* _sSig_ of type **OCTET STRING** (SIZE (32))
```asn1
EcsigP256Signature ::= SEQUENCE {
rSig OCTET STRING (SIZE (32)),
@@ -845,6 +894,13 @@ EcsigP256Signature ::= SEQUENCE {
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.
+* _x-only_ of type **OCTET STRING** (SIZE (32))
+* _fill_ of type **NULL**
+* _compressed-y-0_ of type **OCTET STRING** (SIZE (32))
+* _compressed-y-1_ of type **OCTET STRING** (SIZE (32))
+* _x_ of type **OCTET STRING** (SIZE (32))
+* _y_ of type **OCTET STRING** (SIZE (32))
+
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2 if it appears in a
@@ -852,6 +908,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
and ToBeSignedCertificate for a specification of the canonicalization
operations.
>>>
+
```asn1
EccP256CurvePoint::= CHOICE {
x-only OCTET STRING (SIZE (32)),
@@ -880,6 +937,13 @@ EccP256CurvePoint::= CHOICE {
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.
+* _x-only_ of type **OCTET STRING** (SIZE (48))
+* _fill_ of type **NULL**
+* _compressed-y-0_ of type **OCTET STRING** (SIZE (48))
+* _compressed-y-1_ of type **OCTET STRING** (SIZE (48))
+* _x_ of type **OCTET STRING** (SIZE (48))
+* _y_ of type **OCTET STRING** (SIZE (48))
+
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2 if it appears in a
@@ -887,6 +951,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
and ToBeSignedCertificate for a specification of the canonicalization
operations.
>>>
+
```asn1
EccP384CurvePoint::= CHOICE {
x-only OCTET STRING (SIZE (48)),
@@ -926,6 +991,7 @@ NOTE: Critical information fields: This is a critical information field as
indicate that the signed SPDU is invalid in the sense of 4.2.2.3.2, that
is, it is invalid in the sense that its validity cannot be established.
>>>
+
```asn1
HashAlgorithm ::= ENUMERATED {
sha256,
@@ -996,6 +1062,9 @@ EcencP256EncryptedKey ::= SEQUENCE {
### This structure contains an encryption key, which may be a public or
a symmetric key.
+* _public_ of type [**PublicEncryptionKey**](Ieee1609Dot2BaseTypes.md#PublicEncryptionKey)
+* _symmetric_ of type [**SymmetricEncryptionKey**](Ieee1609Dot2BaseTypes.md#SymmetricEncryptionKey)
+
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2 if it appears in a
@@ -1004,6 +1073,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
ToBeSignedCertificate for a specification of the canonicalization
operations.
>>>
+
```asn1
EncryptionKey ::= CHOICE {
public PublicEncryptionKey,
@@ -1015,6 +1085,9 @@ EncryptionKey ::= CHOICE {
symmetric algorithm which is used for bulk data encryption when encrypting
for that public key.
+* _supportedSymmAlg_ of type [**SymmAlgorithm**](#SymmAlgorithm)
+* _publicKey_ of type [**BasePublicEncryptionKey**](#BasePublicEncryptionKey)
+
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2 if it appears in a
@@ -1023,6 +1096,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
ToBeSignedCertificate for a specification of the canonicalization
operations.
>>>
+
```asn1
PublicEncryptionKey ::= SEQUENCE {
supportedSymmAlg SymmAlgorithm,
@@ -1034,6 +1108,10 @@ PublicEncryptionKey ::= SEQUENCE {
a particular algorithm. Supported public key encryption algorithms are
defined in 5.3.5.
+* _eciesNistP256_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
+* _eciesBrainpoolP256r1_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
+* _ecencSm2_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
+
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
for the relevant operations specified in 6.1.2 if it appears in a
@@ -1041,6 +1119,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
and ToBeSignedCertificate for a specification of the canonicalization
operations.
>>>
+
```asn1
BasePublicEncryptionKey ::= CHOICE {
eciesNistP256 EccP256CurvePoint,
@@ -1054,7 +1133,13 @@ BasePublicEncryptionKey ::= CHOICE {
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.
+ structure is invalid if it indicates the choice x-only.
+
+* _ecdsaNistP256_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
+* _ecdsaBrainpoolP256r1_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
+* _ecdsaBrainpoolP384r1_ of type [**EccP384CurvePoint**](#EccP384CurvePoint)
+* _ecdsaNistP384_ of type [**EccP384CurvePoint**](#EccP384CurvePoint)
+* _ecsigSm2_ of type [**EccP256CurvePoint**](Ieee1609Dot2BaseTypes.md#EccP256CurvePoint)
>>>
NOTE: Canonicalization: This data structure is subject to canonicalization
@@ -1063,6 +1148,7 @@ NOTE: Canonicalization: This data structure is subject to canonicalization
point are encoded in compressed form, i.e., such that the choice indicated
within the Ecc*CurvePoint is compressed-y-0 or compressed-y-1.
>>>
+
```asn1
PublicVerificationKey ::= CHOICE {
ecdsaNistP256 EccP256CurvePoint,
@@ -1077,7 +1163,9 @@ PublicVerificationKey ::= CHOICE {
### This structure provides the key bytes for use with an identified
symmetric algorithm. The supported symmetric algorithms are AES-128 and
SM4 in CCM mode as specified in 5.3.8.
-
+
+* _aes128Ccm_ of type **OCTET STRING** (SIZE(16))
+* _sm4Ccm_ of type **OCTET STRING** (SIZE(16))
```asn1
SymmetricEncryptionKey ::= CHOICE {
aes128Ccm OCTET STRING(SIZE(16)),
@@ -1092,6 +1180,9 @@ SymmetricEncryptionKey ::= CHOICE {
For consistency rules for other forms of the ssp field, see the
following subclauses.
+* _psid_ of type [**Psid**](Ieee1609Dot2BaseTypes.md#Psid)
+* _ssp_ of type [**ServiceSpecificPermissions**](Ieee1609Dot2BaseTypes.md#ServiceSpecificPermissions) OPTIONAL
+
>>>
NOTE: Consistency with issuing certificate: If a certificate has an
appPermissions entry A for which the ssp field is omitted, A is consistent
@@ -1103,6 +1194,7 @@ NOTE: Consistency with issuing certificate: If a certificate has an
- The sspRange field in P indicates opaque and one of the entries in
opaque is an OCTET STRING of length 0.
>>>
+
```asn1
PsidSsp ::= SEQUENCE {
psid Psid,
@@ -1136,6 +1228,9 @@ SequenceOfPsid ::= SEQUENCE OF Psid
For consistency rules for other types of ServiceSpecificPermissions,
see the following subclauses.
+* _opaque_ of type **OCTET STRING** (SIZE(0..MAX))
+* _bitmapSsp_ of type [**BitmapSsp**](#BitmapSsp)
+
>>>
NOTE: Consistency with issuing certificate: If a certificate has an
appPermissions entry A for which the ssp field is opaque, A is consistent
@@ -1151,6 +1246,7 @@ NOTE: Consistency with issuing certificate: If a certificate has an
the opaque field in P is an OCTET STRING identical to the opaque field in
A.
>>>
+
```asn1
ServiceSpecificPermissions ::= CHOICE {
opaque OCTET STRING (SIZE(0..MAX)),
@@ -1172,6 +1268,7 @@ NOTE: A BitmapSsp B is consistent with a BitmapSspRange R if for every
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.
>>>
+
```asn1
BitmapSsp ::= OCTET STRING (SIZE(0..31))
```
@@ -1215,11 +1312,16 @@ If a certificate has a PsidSspRange A for which the ssp field is all,
For consistency rules for other types of SspRange, see the following
subclauses.
+* _opaque_ of type [**SequenceOfOctetString**](#SequenceOfOctetString)
+* _all_ of type **NULL**
+* _bitmapSspRange_ of type [**BitmapSspRange**](#BitmapSspRange)
+
>>>
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".
>>>
+
```asn1
SspRange ::= CHOICE {
opaque SequenceOfOctetString,
@@ -1235,6 +1337,9 @@ SspRange ::= CHOICE {
sspValue and sspBitmask fields shall be of the same length.
Reference ETSI TS 103 097 for more information on bitmask SSPs.
+* _sspValue_ of type **OCTET STRING** (SIZE(1..32))
+* _sspBitmask_ of type **OCTET STRING** (SIZE(1..32))
+
>>>
NOTE: Consistency with issuing certificate: If a certificate has an
PsidSspRange value P for which the sspRange field is bitmapSspRange,
@@ -1253,6 +1358,7 @@ NOTE: Consistency with issuing certificate: If a certificate has an
- 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.
>>>
+
```asn1
BitmapSspRange ::= SEQUENCE {
sspValue OCTET STRING (SIZE(1..32)),
@@ -1288,6 +1394,7 @@ 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 standard.
>>>
+
```asn1
SubjectAssurance ::= OCTET STRING (SIZE(1))
```
@@ -1321,7 +1428,9 @@ LinkageValue ::= OCTET STRING (SIZE(9))
### This is the group linkage value. See 5.1.3 and 7.3 for details of
use.
-
+
+* _jValue_ of type **OCTET STRING** (SIZE(4))
+* _value_ of type **OCTET STRING** (SIZE(9))
```asn1
GroupLinkageValue ::= SEQUENCE {
jValue OCTET STRING (SIZE(4)),
@@ -1353,7 +1462,8 @@ LinkageSeed ::= OCTET STRING (SIZE(16))
information about a set of certificate extensions that are associated with
each other: an AppExtension, a CertIssueExtension, and a
CertRequestExtension.
-
+
+* _id_ of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
```asn1
CERT-EXT-TYPE ::= CLASS {
&id ExtId,
@@ -1365,8 +1475,10 @@ CERT-EXT-TYPE ::= CLASS {
### This parameterized type represents a (id, content) pair drawn from
the set ExtensionTypes, which is constrained to contain objects defined by
- the class EXT-TYPE.
-
+ the class EXT-TYPE.
+
+* _id_ of type [**EXT-TYPE**](Ieee1609Dot2BaseTypes.md#EXT-TYPE) .&extId({ExtensionTypes})
+* _content_ of type [**EXT-TYPE**](Ieee1609Dot2BaseTypes.md#EXT-TYPE) .&ExtContent({ExtensionTypes}{@.id})
```asn1
Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
id EXT-TYPE.&extId({ExtensionTypes}),
@@ -1376,7 +1488,8 @@ Extension {EXT-TYPE : ExtensionTypes} ::= SEQUENCE {
### This class defines objects in a form suitable for import into the
definition of HeaderInfo.
-
+
+* _extId_ of type [**ExtId**](Ieee1609Dot2BaseTypes.md#ExtId)
```asn1
EXT-TYPE ::= CLASS {
&extId ExtId,