-
Notifications
You must be signed in to change notification settings - Fork 1
/
la-ra.asn
195 lines (180 loc) · 8.36 KB
/
la-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
--
-- Copyright 2017, 2018 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 Ieee1609Dot2LaRaInterface
Ieee1609Dot2LaRaInterface
{iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) scms(4) interfaces(1) la-ra(11) major-version-2(2)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
IMPORTS
GroupLinkageValue,
HashedId8,
LaId,
LinkageValue,
Uint8,
Uint16,
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) major-version-2(2)}
EncryptedIndividualPLV,
LinkageChainId,
PcaHostnameId,
RaHostnameId,
LaHostnameId
FROM Ieee1609dot2ScmsBaseTypes {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms(4) interfaces(1) base-types(2) major-version-2(2)}
ScopedLaRaError
FROM Ieee1609dot2ScmsError {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms(4) errors(2) complete(1) major-version-2(2)}
;
---
-- @brief The LaRaInterfacePDU is the parent message type for messages sent
-- between Linkage Authority (LA) and the Registration Authority (RA).
-- @class LaRaInterfacePDU
-- @param raLaIndividualPreLinkageValueRequest contains the PLV request sent
-- by RA to LA.
-- @param raLaGroupPreLinkageValueRequest contains the group PLV request
-- sent by RA to LA.
-- @param laRaPreLinkageValueResponse contains the response to both
-- individual and group PLV
-- requests from RA.
LaRaInterfacePDU::= CHOICE {
raLaIndividualPreLinkageValueRequest RaLaIndividualPreLinkageValueRequestMsg,
raLaGroupPreLinkageValueRequest RaLaGroupPreLinkageValueRequestMsg,
laRaPreLinkageValueResponse LaRaPreLinkageValueResponseMsg,
...
}
---
-- @brief This data type is the header of pre-linkage value request sent by RA
-- to LA.
-- @class RaLaPreLinkageValueRequestMsgHeader
-- @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 raId denotes the unique hostname ID of RA.
-- @param pcaId denotes the unique hostname ID of PCA.
-- @param iMin denotes the lower bound of i for which the PLVs are requested.
-- @param iMax denotes the upper bound of i for which the PLVs are requested.
-- @see Uint8, RaHostnameId, PcaHostnameId, Uint16
RaLaPreLinkageValueRequestMsgHeader ::= SEQUENCE {
version Uint8(1),
raId RaHostnameId,
pcaId PcaHostnameId,
iMin Uint16,
iMax Uint16
}
---
-- @brief This data type is used by RA to request PLVs from an LA.
-- @class RaLaIndividualPreLinkageValueRequestMsg
-- @param header encloses the header information of the request.
-- @param jMax denotes the maximum count of linkage values
-- requested per time period i.
-- @param numberOfFreshInd denotes number of fresh chains for individual
-- certificates requested.
-- @param continuationsInd denotes the continuation values for individual
-- linkage chains that were provided
-- by the LA as a response to an earlier request. The content
-- is ENC_LA(ls(0)) with ls(0) being the initial linkage seed
-- value and ENC_LA being the AES-128-CCM encryption using a
-- 128-bit key for LA that is only known to LA..
-- @see Uint8, Uint32, LinkageChainId
RaLaIndividualPreLinkageValueRequestMsg ::= SEQUENCE {
header RaLaPreLinkageValueRequestMsgHeader,
jMax Uint8,
numberOfFreshInd Uint32 OPTIONAL,
continuationsInd SEQUENCE OF LinkageChainId OPTIONAL
}
(WITH COMPONENTS {..., numberOfFreshInd PRESENT} |
WITH COMPONENTS {..., continuationsInd PRESENT})
---
-- @brief This data type is used by RA to request group PLVs from an LA.
-- @class RaLaGroupPreLinkageValueRequestMsg
-- @param header encloses the header information of the request.
-- @param jMax denotes the maximum count of linkage values
-- requested per i.
-- @param otherLa is the unique 16 bit ID of the second LA.
-- @param groupIdentifier is the group identifier to be created or continued. This is
-- used to either start a new group linkage chain (if the RA
-- selected this as a new group identifier) or to continue an
-- existing group linkage chain (if the RA used this identifier
-- before). Note that the chain linkage identifier might be used
-- here, or another mapping to group chains might be used by the RA.
-- @see
RaLaGroupPreLinkageValueRequestMsg ::= SEQUENCE {
header RaLaPreLinkageValueRequestMsgHeader,
jMax Uint32,
otherLa LaId,
groupIdentifier OCTET STRING (SIZE(4))
}
---
-- @brief This data type is used by the LA to respond to a
-- RaLaIndividualPreLinkageValueRequestMsg or a
-- RaLaGroupPreLinkageValueRequestMsg with the requested PLVs.
-- @class LaRaPreLinkageValueResponseMsg
-- @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 has of the original request.
-- @param laId denotes the unique hostname ID of the responding LA.
-- @param reply contains the requested PLVs if no errors occur,
-- otherwise an appropriate error code is sent.
-- @see Uint8, HashedId8, LaHostnameId, ScopedLaRaError
LaRaPreLinkageValueResponseMsg ::= SEQUENCE {
version Uint8(1),
requestHash HashedId8, -- hash of the original request
laId LaHostnameId,
reply CHOICE {
success PreLinkageValueRequestResponse,
failure ScopedLaRaError
}
}
---
-- @brief LA uses this data type to enclose all requested PLV information in a
-- response to RA.
-- @class PreLinkageValueRequestResponse
-- @param iMin denotes the lower bound of time period i for which the PLVs are
-- requested.
-- @param iMax denotes the upper bound of time period i for which the PLVs are
-- requested.
-- @param individual contains the linkage chain information for individual PLVs.
-- @see Uint16
PreLinkageValueRequestResponse ::= SEQUENCE {
iMin Uint16,
iMax Uint16,
individual SEQUENCE (SIZE (0..MAX)) OF IndividualPlvResponseLinkageChain,
...
}
---
-- @brief LA uses this data type to send individual PLV linkage chain
-- information to RA.
-- @class IndividualPlvResponseLinkageChain
-- @param jMax denotes the maximum count of linkage values to be
-- sent per time period i.
-- @param values bi-dimensional array of size [(iMax-iMin) x jMax] of
-- encrypted individual pre-linkage values
-- @param linkageChainId is the LCI of the requested PLV.
-- @see Uint8, EncryptedIndividualPLV, LinkageChainId
IndividualPlvResponseLinkageChain ::= SEQUENCE {
jMax Uint8,
values SEQUENCE OF
SEQUENCE OF EncryptedIndividualPLV,
linkageChainId LinkageChainId
}
END