blob: 9b547a6401aa0c4838b2328ca5b04e27a9d00e43 [file] [log] [blame]
Philipp Maier08902cf2024-03-04 10:32:55 +01001
2--
3-- ASN.1 module found by ./crfc2asn1.pl in rfc3280.txt at line 5850
4--
5
6PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1)
7 security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) }
8
9DEFINITIONS IMPLICIT TAGS ::=
10
11BEGIN
12
13-- EXPORTS ALL --
14
15IMPORTS
16 id-pe, id-kp, id-qt-unotice, id-qt-cps,
17 ORAddress, Name, RelativeDistinguishedName,
18 CertificateSerialNumber, Attribute, DirectoryString
19 FROM PKIX1Explicit88 { iso(1) identified-organization(3)
20 dod(6) internet(1) security(5) mechanisms(5) pkix(7)
21 id-mod(0) id-pkix1-explicit(18) };
22
23
24-- ISO arc for standard certificate and CRL extensions
25
26id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
27
28-- authority key identifier OID and syntax
29
30id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
31
32
33
34
35
36
37
38
39
40
41AuthorityKeyIdentifier ::= SEQUENCE {
42 keyIdentifier [0] KeyIdentifier OPTIONAL,
43 authorityCertIssuer [1] GeneralNames OPTIONAL,
44 authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
45 -- authorityCertIssuer and authorityCertSerialNumber MUST both
46 -- be present or both be absent
47
48KeyIdentifier ::= OCTET STRING
49
50-- subject key identifier OID and syntax
51
52id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
53
54SubjectKeyIdentifier ::= KeyIdentifier
55
56-- key usage extension OID and syntax
57
58id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
59
60KeyUsage ::= BIT STRING {
61 digitalSignature (0),
62 nonRepudiation (1),
63 keyEncipherment (2),
64 dataEncipherment (3),
65 keyAgreement (4),
66 keyCertSign (5),
67 cRLSign (6),
68 encipherOnly (7),
69 decipherOnly (8) }
70
71-- private key usage period extension OID and syntax
72
73id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }
74
75PrivateKeyUsagePeriod ::= SEQUENCE {
76 notBefore [0] GeneralizedTime OPTIONAL,
77 notAfter [1] GeneralizedTime OPTIONAL }
78 -- either notBefore or notAfter MUST be present
79
80-- certificate policies extension OID and syntax
81
82id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
83
84anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
85
86CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
87
88PolicyInformation ::= SEQUENCE {
89
90
91
92
93
94 policyIdentifier CertPolicyId,
95 policyQualifiers SEQUENCE SIZE (1..MAX) OF
96 PolicyQualifierInfo OPTIONAL }
97
98CertPolicyId ::= OBJECT IDENTIFIER
99
100PolicyQualifierInfo ::= SEQUENCE {
101 policyQualifierId PolicyQualifierId,
102 qualifier ANY DEFINED BY policyQualifierId }
103
104-- Implementations that recognize additional policy qualifiers MUST
105-- augment the following definition for PolicyQualifierId
106
107PolicyQualifierId ::=
108 OBJECT IDENTIFIER -- ( id-qt-cps | id-qt-unotice )
109
110-- CPS pointer qualifier
111
112CPSuri ::= IA5String
113
114-- user notice qualifier
115
116UserNotice ::= SEQUENCE {
117 noticeRef NoticeReference OPTIONAL,
118 explicitText DisplayText OPTIONAL}
119
120NoticeReference ::= SEQUENCE {
121 organization DisplayText,
122 noticeNumbers SEQUENCE OF INTEGER }
123
124DisplayText ::= CHOICE {
125 ia5String IA5String (SIZE (1..200)),
126 visibleString VisibleString (SIZE (1..200)),
127 bmpString BMPString (SIZE (1..200)),
128 utf8String UTF8String (SIZE (1..200)) }
129
130-- policy mapping extension OID and syntax
131
132id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }
133
134PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
135 issuerDomainPolicy CertPolicyId,
136 subjectDomainPolicy CertPolicyId }
137
138-- subject alternative name extension OID and syntax
139
140id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
141
142
143
144
145
146
147SubjectAltName ::= GeneralNames
148
149GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
150
151GeneralName ::= CHOICE {
152 otherName [0] AnotherName,
153 rfc822Name [1] IA5String,
154 dNSName [2] IA5String,
155 x400Address [3] ORAddress,
156 directoryName [4] Name,
157 ediPartyName [5] EDIPartyName,
158 uniformResourceIdentifier [6] IA5String,
159 iPAddress [7] OCTET STRING,
160 registeredID [8] OBJECT IDENTIFIER }
161
162-- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as
163-- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax
164
165AnotherName ::= SEQUENCE {
166 type-id OBJECT IDENTIFIER,
167 value [0] EXPLICIT ANY DEFINED BY type-id }
168
169EDIPartyName ::= SEQUENCE {
170 nameAssigner [0] DirectoryString OPTIONAL,
171 partyName [1] DirectoryString }
172
173-- issuer alternative name extension OID and syntax
174
175id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 }
176
177IssuerAltName ::= GeneralNames
178
179id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 }
180
181SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
182
183-- basic constraints extension OID and syntax
184
185id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
186
187BasicConstraints ::= SEQUENCE {
188 cA BOOLEAN DEFAULT FALSE,
189 pathLenConstraint INTEGER (0..MAX) OPTIONAL }
190
191-- name constraints extension OID and syntax
192
193id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 }
194
195
196
197
198
199
200NameConstraints ::= SEQUENCE {
201 permittedSubtrees [0] GeneralSubtrees OPTIONAL,
202 excludedSubtrees [1] GeneralSubtrees OPTIONAL }
203
204GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
205
206GeneralSubtree ::= SEQUENCE {
207 base GeneralName,
208 minimum [0] BaseDistance DEFAULT 0,
209 maximum [1] BaseDistance OPTIONAL }
210
211BaseDistance ::= INTEGER (0..MAX)
212
213-- policy constraints extension OID and syntax
214
215id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 }
216
217PolicyConstraints ::= SEQUENCE {
218 requireExplicitPolicy [0] SkipCerts OPTIONAL,
219 inhibitPolicyMapping [1] SkipCerts OPTIONAL }
220
221SkipCerts ::= INTEGER (0..MAX)
222
223-- CRL distribution points extension OID and syntax
224
225id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
226
227CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
228
229DistributionPoint ::= SEQUENCE {
230 distributionPoint [0] DistributionPointName OPTIONAL,
231 reasons [1] ReasonFlags OPTIONAL,
232 cRLIssuer [2] GeneralNames OPTIONAL }
233
234DistributionPointName ::= CHOICE {
235 fullName [0] GeneralNames,
236 nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
237
238ReasonFlags ::= BIT STRING {
239 unused (0),
240 keyCompromise (1),
241 cACompromise (2),
242 affiliationChanged (3),
243 superseded (4),
244 cessationOfOperation (5),
245 certificateHold (6),
246 privilegeWithdrawn (7),
247 aACompromise (8) }
248
249
250
251
252
253-- extended key usage extension OID and syntax
254
255id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
256
257ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
258
259
260KeyPurposeId ::= OBJECT IDENTIFIER
261
262-- permit unspecified key uses
263
264anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
265
266-- extended key purpose OIDs
267
268id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
269id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
270id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
271id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
272id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
273id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
274
275-- inhibit any policy OID and syntax
276
277id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
278
279InhibitAnyPolicy ::= SkipCerts
280
281-- freshest (delta)CRL extension OID and syntax
282
283id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
284
285FreshestCRL ::= CRLDistributionPoints
286
287-- authority info access
288
289id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
290
291AuthorityInfoAccessSyntax ::=
292 SEQUENCE SIZE (1..MAX) OF AccessDescription
293
294AccessDescription ::= SEQUENCE {
295 accessMethod OBJECT IDENTIFIER,
296 accessLocation GeneralName }
297
298-- subject info access
299
300id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 }
301
302
303
304
305
306SubjectInfoAccessSyntax ::=
307 SEQUENCE SIZE (1..MAX) OF AccessDescription
308
309-- CRL number extension OID and syntax
310
311id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
312
313CRLNumber ::= INTEGER (0..MAX)
314
315-- issuing distribution point extension OID and syntax
316
317id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
318
319IssuingDistributionPoint ::= SEQUENCE {
320 distributionPoint [0] DistributionPointName OPTIONAL,
321 onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
322 onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
323 onlySomeReasons [3] ReasonFlags OPTIONAL,
324 indirectCRL [4] BOOLEAN DEFAULT FALSE,
325 onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
326
327id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
328
329BaseCRLNumber ::= CRLNumber
330
331-- CRL reasons extension OID and syntax
332
333id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
334
335CRLReason ::= ENUMERATED {
336 unspecified (0),
337 keyCompromise (1),
338 cACompromise (2),
339 affiliationChanged (3),
340 superseded (4),
341 cessationOfOperation (5),
342 certificateHold (6),
343 removeFromCRL (8),
344 privilegeWithdrawn (9),
345 aACompromise (10) }
346
347-- certificate issuer CRL entry extension OID and syntax
348
349id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
350
351CertificateIssuer ::= GeneralNames
352
353-- hold instruction extension OID and syntax
354
355
356
357
358
359id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 }
360
361HoldInstructionCode ::= OBJECT IDENTIFIER
362
363-- ANSI x9 holdinstructions
364
365-- ANSI x9 arc holdinstruction arc
366
367holdInstruction OBJECT IDENTIFIER ::=
368 {joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2}
369
370-- ANSI X9 holdinstructions referenced by this standard
371
372id-holdinstruction-none OBJECT IDENTIFIER ::=
373 {holdInstruction 1} -- deprecated
374
375id-holdinstruction-callissuer OBJECT IDENTIFIER ::=
376 {holdInstruction 2}
377
378id-holdinstruction-reject OBJECT IDENTIFIER ::=
379 {holdInstruction 3}
380
381-- invalidity date CRL entry extension OID and syntax
382
383id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
384
385InvalidityDate ::= GeneralizedTime
386
387END