-
Notifications
You must be signed in to change notification settings - Fork 1
/
ra-pg.asn
160 lines (142 loc) · 5.81 KB
/
ra-pg.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
--
-- 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.
--
-------------------------------------------------------------------------------
-- RA-PG
--
-- The structures in this file define the protocol for messages between the RA
-- and the PG (Policy Generator) for the purpose of requesting and receiving
-- a custom policy file.
--
-- Both of these processes are initiated by the MA.
--
-- This file is part of the SCMS protocol developed by CAMP VSC5
-- It depends on the IEEE 1609.2 protocol specification
-------------------------------------------------------------------------------
-- @namespace Ieee1609Dot2RaPgInterface
Ieee1609Dot2RaPgInterface
{iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms(4) interfaces(1) ra-pg(16) major-version-2(2)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
IMPORTS
HashedId8,
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) major-version-2(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) major-version-2(2)}
HPCR,
HPCRAndHostInfo,
LCIAndHostInfo,
RaHostnameId,
MaHostnameId
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)}
ScopedMaRaBlacklistError,
ScopedMaRaLCIError
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)}
RaPgError
FROM Ieee1609Dot2RaPgError {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) scms(4) errors(2) ra-pg(16) major-version-2(2)}
BasePolicyFile,
ToBeSignedPolicyData
FROM Ieee1609dot2ScmsPolicyTypes {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
scms(4) interfaces(1) policy-types (500) major-version-2(2)}
;
---
-- @brief The RaPgInterfacePDU is the parent message type for messages sent
-- between Registration Authority (RA) and Policy Generator (PG).
-- @class RaPgInterfacePDU
-- @param raPgPolicySignatureRequest contains the request from RA to
-- obtain policy file from PG.
-- @param raPgPolicySignatureRequestReply contains response from PG to
-- RaPgPolicySignatureRequestMsg from RA.
RaPgInterfacePDU ::= CHOICE {
raPgPolicySignatureRequest RaPgPolicySignatureRequestMsg,
raPgPolicySignatureRequestReply RaPgPolicySignatureRequestReplyMsg,
...
}
---
-- @brief This data type contains custom policy files generated by RA. PG
-- signs this at the scms-protocol level.
-- @class ToBeSignedCustomPolicyFile
-- @param policy denotes the custom policy file generated by PG.
ToBeSignedCustomPolicyFile ::= ToBeSignedPolicyData( WITH COMPONENTS {...,
policy(WITH COMPONENTS {...,
custom PRESENT
})
})
---
-- @brief This data type is generated by PG to sign a custom policy file.
-- @class SignedCustomPolicyFile
-- @param tbsData is the custom policy file data that is signed by PG at
-- scms-protocol level.
SignedCustomPolicyFile ::= BasePolicyFile (WITH COMPONENTS {...,
tbsData( WITH COMPONENTS {...,
policy(WITH COMPONENTS {...,
custom PRESENT
})
})
})
---
-- @brief RA uses this data type to request signed modified global parameters
-- inside a local policy file (LPF). An RA may generate an LPF with a
-- mix of global parameters and local parameters. The global portion
-- must be approved and signed by the PG before it can be distributed
-- to EEs.
-- @class RaPgPolicySignatureRequestMsg
-- @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 the policy file data that is signed by PG.
-- @see Uint8
RaPgPolicySignatureRequestMsg ::= SEQUENCE {
version Uint8(1),
tbs ToBeSignedCustomPolicyFile,
...
}
---
-- @brief PG uses this data type to respond to RaPgPolicySignatureRequestMsg
-- from RA.
-- @class RaPgPolicySignatureRequestReplyMsg
-- @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 signedFile includes the policy file signed by PG if request from RA
-- has no errors. Otherwise, an appropriate error code is
-- included.
-- @see Uint8, RaPgError
RaPgPolicySignatureRequestReplyMsg ::= SEQUENCE {
version Uint8(1),
signedFile CHOICE {
success SignedCustomPolicyFile,
failure RaPgError
}
}
END