forked from usdot-jpo-ode/scms-asn1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheca-ee.asn
129 lines (114 loc) · 5.11 KB
/
eca-ee.asn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
--
-- Copyright 2017 Crash Avoidance Metrics Partner, VSC5 Consortium
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
-- @namespace Ieee1609Dot2EcaEndEntityInterface
Ieee1609Dot2EcaEndEntityInterface
{iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) scms(2) interfaces(1) eca-ee (5)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
IMPORTS
HashedId8,
Time32,
Uint8
FROM IEEE1609dot2BaseTypes {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) base(1) base-types(2)}
Certificate,
ImplicitCertificate,
ToBeSignedCertificate
FROM IEEE1609dot2 {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) base (1) schema (1)}
EccP256PrivateKeyReconstruction
FROM Ieee1609dot2ScmsBaseTypes {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms (2) interfaces(1) base-types (2)}
;
---
-- @brief The EcaEndEntityInterfacePDU is the parent message type for messages
-- sent between Enrollment Certificate Authority (ECA) and End Entities
-- (EE).
-- @class EcaEndEntityInterfacePDU
-- @param eeEcaCertRequest contains the enrollment certificate request sent
-- by the EE to the ECA.
-- @param ecaEeCertResponse contains the enrollment certificate response sent
-- by the ECA to an EE.
EcaEndEntityInterfacePDU::= CHOICE {
eeEcaCertRequest EeEcaCertRequest,
ecaEeCertResponse EcaEeCertResponse,
...
}
---
-- @brief This data type is used by the EE to request an enrollment
-- certificate from the ECA. It is signed using the private key
-- generated by the EE and the corresponding public key is placed in
-- verificationKey for use by the ECA to generate the enrollment
-- certificate. All the fields of ToBeSignedCertificate are filled by
-- the EE/DCM, but the ECA may override them.
-- @class EeEcaCertRequest
-- @param version contains the current version of the data type. The
-- version specified in this document is version 1,
-- represented by the integer 1.
-- @param currentTime contains the time of creation of EeEcaCertRequest.
-- @param tbsData contains the ToBeSignedCertificate data used by the ECA
-- to generate the EE’s enrollment certificate. The
-- ToBeSignedCertificate is specified in Section 6.4.8 of
-- IEEE 1609.2-2016.
-- @see Uint8, Time32, ToBeSignedCertificate
EeEcaCertRequest ::= SEQUENCE {
version Uint8(1),
currentTime Time32,
tbsData ToBeSignedCertificate (WITH COMPONENTS { ...,
id(WITH COMPONENTS { ...,
linkageData ABSENT }),
region PRESENT,
appPermissions ABSENT,
certIssuePermissions ABSENT,
certRequestPermissions PRESENT,
verifyKeyIndicator (WITH COMPONENTS {
verificationKey }) }),
...
}
---
-- @brief This data type 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 in a zipped file.
-- @class EcaEeCertResponse
-- @param version contains the current version of the data type.
-- The version specified in this document is
-- version 1, represented by the integer 1.
-- @param requestHash contains the hash of the original
-- EeEcaCertRequest message.
-- @param ecaCert contains the Enrollment Certificate Authority
-- certificate.
-- @param enrollmentCert contains the Implicit Certificate structure of
-- the enrollment certificate, as specified in
-- Section 6.4.5 of IEEE 1609.2-2016.
-- @param privKeyReconstruction contains the private key reconstruction value
-- required by the EE to transform its private
-- key into an operational private key.
-- @see Uint8, HashedId8, Certificate, ImplicitCertificate,
-- EccP256PrivateKeyReconstruction
EcaEeCertResponse ::= SEQUENCE {
version Uint8(1),
requestHash HashedId8,
ecaCert Certificate,
enrollmentCert ImplicitCertificate,
privKeyReconstruction EccP256PrivateKeyReconstruction,
...
}
END