forked from usdot-jpo-ode/scms-asn1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent-cert-management.asn
138 lines (122 loc) · 5.16 KB
/
component-cert-management.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
--
-- 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 Ieee1609Dot2ScmsComponentCertificateManagement
Ieee1609Dot2ScmsComponentCertificateManagement
{iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) scms(2) interfaces(1) component-certificate-management (3)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
IMPORTS
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)}
ScopedComponentCertificateManagementError
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)}
ExplicitCertificate
FROM IEEE1609dot2 {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) base(1) schema(1)}
Time64
FROM IEEE1609dot2 {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) base(1) base-types(2)}
SecuredCrl
FROM IEEE1609dot2Crl {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609) dot2(2)
crl(3) protocol(2)}
SignedElectorEndorsement
FROM IEEE1609dot2ScmsProtocol {iso(1) identified-organization(3) ieee(111)
standards-association-numbered-series-standards(2) wave-stds(1609)
dot2(2) scms(2) interfaces(1) protocol(1)}
;
---
-- @brief This data type is the parent structure for all component certificate
-- management data types.
-- @class ScmsComponentCertificateManagementPDU
-- @param tbsElectorEndorsement contains the elector endorsement/ballots to be
-- signed by the respective Elector.
ScmsComponentCertificateManagementPDU::= CHOICE {
tbsElectorEndorsement TbsElectorEndorsement,
...
}
---
-- @brief An "endorsement" is a structure with a command type (add/remove for
-- root or elector) along with the certificate to be added or removed.
-- A signed endorsement is a copy of that whole structure with a
-- signature.
-- @class TbsElectorEndorsement
-- @param type defines the action (add/remove) to be taken over a
-- certificate.
-- @param certificate denotes the certificate to be added or removed.
-- @param effectiveTime defines the effective time for this message.
-- @see ExplicitCertificate, Time64
TbsElectorEndorsement ::= SEQUENCE {
type EndorsementType,
certificate ExplicitCertificate,
effectiveTime Time64 OPTIONAL
}
---
-- @brief This data type defines the action (add/remove) to be taken on a Root
-- CA or Elector certificate.
-- @class EndorsementType
-- @param addRoot defines the action to add a Root CA.
-- @param addElector defines the action to add an elector.
-- @param removeRoot defines the action to remove a Root CA.
-- @param removeElector defines the action to remove an elector.
EndorsementType ::= ENUMERATED {
addRoot (0),
addElector (1),
removeRoot (2),
removeElector (3),
...
}
---
-- @brief This data type defines the structure of an elector ballot. A "ballot"
-- is a list of signed endorsements. To be valid, a ballot must contain
-- signatures from a quorum of electors.
-- @class ElectorBallot
-- @param endorsements are the signatures are generated by the Electors (i.e.
-- endorsement ballots). Each signature shall contain a
-- copy of the same TbsElectorEndorsement
-- @see SignedElectorEndorsement
ElectorBallot ::= SEQUENCE {
-- ballot TbsBallot,
endorsements SEQUENCE SIZE(1..MAX) OF SignedElectorEndorsement,
...
}
---
-- @brief This data type defines a composite CRL structure which contains a
-- list of 1609.2 CRLs, one per CRL series. It may also contain ballots
-- to remove Root CAs and Electors
-- @class CompositeCrl
-- @param securedCrlSeries is the list of CRLs for all SCMS components except
-- a Root CA and Electors.
-- @param revokedRootCAs is the list of Elector endorsements that were used
-- to revoke a Root CA.
-- @param revokedElectors is the list of Elector endorsements that were used
-- to revoke an Elector.
-- @see SecuredCrl
CompositeCrl ::= SEQUENCE {
securedCrlSeries SEQUENCE SIZE(0..MAX) OF SecuredCrl,
revokedRootCAs SEQUENCE SIZE(0..MAX) OF ElectorBallot,
revokedElectors SEQUENCE SIZE(0..MAX) OF ElectorBallot,
...
}
END