This repository has been archived by the owner on Apr 18, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ma-ra.asn
370 lines (343 loc) · 14.6 KB
/
ma-ra.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
--
-- 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 Ieee1609Dot2MaRaInterface
Ieee1609Dot2MaRaInterface
{iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms(2) interfaces(1) ma-ra(14)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
IMPORTS
HashedId8,
HashedId10,
Hostname,
Opaque,
Uint8,
Uint32
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)}
Countersignature,
SignerIdentifier
FROM IEEE1609dot2 {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
base(1) schema(1)}
HPCR,
HPCRAndHostInfo,
LCIAndHostInfo,
RaHostnameId,
MaHostnameId,
RIF
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)}
ScopedMaRaBlacklistError,
ScopedMaRaLCIError
FROM Ieee1609dot2ScmsError {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms(2) errors(2) complete(1)}
;
---
-- @brief The MaRaInterfacePDU is the parent message type for messages sent
-- between Misbehavior Authority (MA) and Registration Authority (RA).
-- @class MaRaInterfacePDU
-- @param maRaBlacklistRequest contains request from MA to obtain
-- internal blacklist of RA for pseudonym
-- certificate.
-- @param raMaBlacklistResponse contains response from RA to
-- MaRaBlacklistRequestMsg from MA.
-- @param maRaLCIRequest contains request from MA to obtain
-- linkage chain ID from RA.
-- @param raMaLCIResponse contains response from RA to
-- MaRaLCIRequestMsg from MA.
-- @param maRaRseObeIdBlacklistRequest contains request from MA to obtain
-- internal blacklist of RA for all
-- certificates expect pseudonym
-- certificate.
-- @param raMaRseObeIdBlacklistResponse contains response from RA to
-- MaRaRseObeIdBlacklistRequest from MA.
-- @param maRaCDVRequest contains request from MA to obtain
-- certificate digest values (CDV) from RA.
-- @param raMaCDVResponse contains response from RA to
-- MaRaCDVRequest from MA.
MaRaInterfacePDU ::= CHOICE {
maRaBlacklistRequest MaRaBlacklistRequestMsg,
raMaBlacklistResponse RaMaBlacklistResponseMsg,
maRaLCIRequest MaRaLCIRequestMsg,
raMaLCIResponse RaMaLCIResponseMsg,
maRaRseObeIdBlacklistRequest MaRaRseObeIdBlacklistRequestMsg,
raMaRseObeIdBlacklistResponse RaMaRseObeIdBlacklistResponseMsg,
maRaCDVRequest MaRaCDVRequestMsg,
raMaCDVResponse RaMaCDVResponseMsg,
...
}
---
-- @brief This data type is used by MA to request internal blacklist of RA.
-- Note that this is actually signed by the MA at the scms-protocol
-- level.
-- @class MaRaBlacklistRequestMsg
-- @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 tbs contains information of MA and requested HPCR. MA signs
-- this at scms-protocol level.
-- @param signatures is the list of counter signatures that the MA has to
-- obtain from Auditors before sending this request. Size 0
-- is used when no countersignatures are necessary
-- @see Uint8, Countersignature
MaRaBlacklistRequestMsg ::= SEQUENCE {
version Uint8(1),
tbs ToBeSignedBlacklistingInstructionMsg,
signatures SEQUENCE SIZE (0..MAX) OF Countersignature
}
---
-- @brief This data type is used by MA to enclose its information and the
-- HPCRs for which it wants to request the blacklist.
-- @class ToBeSignedBlacklistingInstructionMsg
-- @param maId is the 256 bit system-wide unique MA hostname ID.
-- @param hpcr is the list of HPCRs for which the MA requests internal
-- blacklist of RA.
-- @see MaHostnameId, HPCR
ToBeSignedBlacklistingInstructionMsg ::= SEQUENCE {
maId MaHostnameId,
hpcr SEQUENCE OF HPCR,
...
}
---
-- @brief RA uses this data type to respond to MaRaBlacklistRequestMsg from MA.
-- @class RaMaBlacklistResponseMsg
-- @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 is the hash of the original request.
-- @param raId is the 256 bit unique hostname ID of RA.
-- @param status is the list that tells status of each requested HPCRs.
-- @see Uint8, HashedId8, RaHostnameId
RaMaBlacklistResponseMsg ::= SEQUENCE {
version Uint8(1),
requestHash HashedId8,
raId RaHostnameId,
status SEQUENCE OF BlacklistingStatus,
...
}
---
-- @brief RA uses this data type to enclose the blacklisting status of HPCRs.
-- @class BlacklistingStatus
-- @param hpcr is the hash of pseudonym certificate (HPCR).
-- @param reply contains nothing in the case when request of MA is correct.
-- Otherwise includes an appropriate error code.
-- @see HPCR, ScopedMaRaBlacklistError
BlacklistingStatus ::= SEQUENCE {
hpcr HPCR,
reply CHOICE {
success NULL,
failure ScopedMaRaBlacklistError
}
}
---
-- @brief MA uses this data type to request linkage chain identifiers from RA.
-- Note that this is actually signed by the MA at the scms-protocol
-- level.
-- @class MaRaLCIRequestMsg
-- @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 tbs contains information of MA and requested LCI. MA signs
-- this at scms-protocol level.
-- @param signatures is the list of signatures that the MA has to obtain from
-- auditors before sending this message. Size 0 is used when
-- no countersignatures are necessary.
-- @see Uint8, Countersignature
MaRaLCIRequestMsg ::= SEQUENCE {
version Uint8(1),
tbs ToBeSignedLCIRequestMsg,
signatures SEQUENCE SIZE (0..MAX) OF Countersignature
}
---
-- @brief This data type is used by MA to enclose its information and the LCIs
-- for which it wants to request the blacklist.
-- @class ToBeSignedLCIRequestMsg
-- @param maId is the 256 bit system-wide unique MA hostname ID.
-- @param hpcr is the list of HPCRs for which the MA requests LCIs.
-- @see MaHostnameId, HPCR
ToBeSignedLCIRequestMsg ::= SEQUENCE {
maId MaHostnameId,
hpcr SEQUENCE OF HPCR,
...
}
---
-- @brief RA uses this data type to respond to MaRaLCIRequestMsg from MA.
-- @class RaMaLCIResponseMsg
-- @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 is the hash of the original request.
-- @param raId is the 256 bit unique hostname ID of RA.
-- @param lciInfo is the list of mapping between HPCR and their LCIs.
-- @see Uint8, HashedId8, RaHostnameId
RaMaLCIResponseMsg ::= SEQUENCE {
version Uint8(1),
requestHash HashedId8,
raId RaHostnameId,
lciInfo SEQUENCE OF HPCR2LCI,
...
}
---
-- @brief RA uses this data type to map HPCR with their LCIs.
-- @class HPCR2LCI
-- @param hpcr is the hash of pseudonym certificate (HPCR).
-- @param reply contains the LCI and group identifier information in case of
-- no errors in request from MA. Otherwise, an appropriate error
-- code is included.
-- @see HPCR, LCIAndHostInfo, ScopedMaRaLCIError
HPCR2LCI ::= SEQUENCE {
hpcr HPCR,
reply CHOICE {
success SEQUENCE {
groupIdentifier OCTET STRING (SIZE(4)),
info LCIAndHostInfo
},
failure ScopedMaRaLCIError
}
}
---
-- @brief MA uses this data type to request blacklist of RA for components
-- with certificates other than pseudonym certificates. Revocation is
-- done using a Revocation Identifier (RIF). MA signs this at scms
-- protocol level.
-- @class MaRaRseObeIdBlacklistRequestMsg
-- @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 tbs contains information of MA and requested RIFs. MA signs
-- this at scms-protocol level.
-- @param signatures is the list of signatures that the MA has to obtain from
-- auditors before sending this message. Size 0 is used when
-- no countersignatures are necessary.
-- @see Uint8, Countersignature
MaRaRseObeIdBlacklistRequestMsg ::= SEQUENCE {
version Uint8(1),
tbs ToBeSignedRseObeIdBlacklistingInstructionMsg,
signatures SEQUENCE SIZE (0..MAX) OF Countersignature
}
---
-- @brief This data type is used by MA to enclose its information and the RIFs
-- for which it wants to request the blacklist.
-- @class ToBeSignedRseObeIdBlacklistingInstructionMsg
-- @param maId is the 256 bit system-wide unique ID of MA.
-- @param rif is an 8-byte revocation identifier array in scms-base-types.asn.
-- @see MaHostnameId, RIF
ToBeSignedRseObeIdBlacklistingInstructionMsg ::= SEQUENCE {
maId MaHostnameId,
rif SEQUENCE OF RIF,
...
}
---
-- @brief RA uses this data type to respond to MaRaRseObeIdBlacklistRequestMsg
-- from MA.
-- @class RaMaRseObeIdBlacklistResponseMsg
-- @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 is the hash of the original request.
-- @param raId is the 256 bit unique hostname ID of RA.
-- @param status is the list that tells blacklisting status of each
-- requested RIFs.
-- @see Uint8, HashedId8, RaHostnameId
RaMaRseObeIdBlacklistResponseMsg ::= SEQUENCE {
version Uint8(1),
requestHash HashedId8, -- hash of the original request
raId RaHostnameId,
status SEQUENCE OF RseObeIdBlacklistingStatus,
...
}
---
-- @brief RA uses this data type to enclose the blacklisting status of RIFs.
-- @class RseObeIdBlacklistingStatus
-- @param rif is an 8-byte revocation identifier array in scms-base-types.asn.
-- @param reply contains nothing in the case when request of MA is correct.
-- Otherwise includes an appropriate error code.
-- @see RIF, ScopedMaRaBlacklistError
RseObeIdBlacklistingStatus ::= SEQUENCE {
rif RIF,
reply CHOICE {
success NULL,
failure ScopedMaRaBlacklistError
}
}
---
-- @brief MA uses this data type to request certificate digest values (CDV)
-- from RA MA signs this at scms-protocol level.
-- @class MaRaCDVRequestMsg
-- @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 tbs contains information of MA and requested CDVs. MA signs
-- this at scms-protocol level.
-- @param signatures is the list of signatures that the MA has to obtain from
-- auditors before sending this message. Size 0 is used when
-- no countersignatures are necessary.
-- @see Uint8, Countersignature
MaRaCDVRequestMsg ::= SEQUENCE {
version Uint8(1),
tbs ToBeSignedCDVRequestMsg,
signatures SEQUENCE SIZE (0..MAX) OF Countersignature
}
---
-- @brief This data type is used by MA to enclose its information and the RIFs
-- for which it wants to request the blacklist.
-- @class ToBeSignedCDVRequestMsg
-- @param maId is the 256 bit system-wide unique ID of MA.
-- @param rifValues is an 8-byte revocation identifier array in scms-base-types.asn.
-- @see MaHostnameId, RIF
ToBeSignedCDVRequestMsg ::= SEQUENCE {
maId MaHostnameId,
rifValues SEQUENCE OF RIF,
...
}
---
-- @brief RA uses this data type to respond to MaRaCDVRequestMsg from MA.
-- @class RaMaCDVResponseMsg
-- @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 is the hash of the original request.
-- @param raId is the 256 bit unique hostname ID of RA.
-- @param cdvInfo is the list of mapping between RIFs and their CDVs.
-- requested RIFs.
-- @see Uint8, HashedId8, RaHostnameId
RaMaCDVResponseMsg ::= SEQUENCE {
version Uint8(1),
requestHash HashedId8,
raId RaHostnameId,
cdvInfo SEQUENCE OF CdvInfo
}
---
-- @brief RA uses this data type to map RIFs with their CDVs.
-- @class CdvInfo
-- @param rif is an 8-byte revocation identifier array in scms-base-types.asn.
-- @param reply contains the CDV for each input in case of no errors in request
-- from MA. Otherwise, an appropriate error code is included.
-- @see RIF, HashedId8, ScopedMaRaBlacklistError
CdvInfo ::= SEQUENCE {
rif RIF,
reply CHOICE {
-- for each input rif, a list of certificate digests (HashedId8) is returned
success SEQUENCE OF HashedId10,
failure ScopedMaRaBlacklistError
}
}
END