2 -- Definitions from rfc2459/rfc3280
4 RFC2459 DEFINITIONS ::= BEGIN
6 IMPORTS heim_any FROM heim;
14 id-pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
15 rsadsi(113549) pkcs(1) 1 }
16 id-pkcs1-rsaEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 1 }
17 id-pkcs1-md2WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 2 }
18 id-pkcs1-md5WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 4 }
19 id-pkcs1-sha1WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 5 }
20 id-pkcs1-sha256WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 11 }
21 id-pkcs1-sha384WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 12 }
22 id-pkcs1-sha512WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 13 }
24 id-pkcs-2 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
25 rsadsi(113549) pkcs(1) 2 }
26 id-pkcs2-md2 OBJECT IDENTIFIER ::= { id-pkcs-2 2 }
27 id-pkcs2-md4 OBJECT IDENTIFIER ::= { id-pkcs-2 4 }
28 id-pkcs2-md5 OBJECT IDENTIFIER ::= { id-pkcs-2 5 }
30 id-rsa-digestAlgorithm OBJECT IDENTIFIER ::=
31 { iso(1) member-body(2) us(840) rsadsi(113549) 2 }
33 id-rsa-digest-md2 OBJECT IDENTIFIER ::= { id-rsa-digestAlgorithm 2 }
34 id-rsa-digest-md4 OBJECT IDENTIFIER ::= { id-rsa-digestAlgorithm 4 }
35 id-rsa-digest-md5 OBJECT IDENTIFIER ::= { id-rsa-digestAlgorithm 5 }
37 id-pkcs-3 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
38 rsadsi(113549) pkcs(1) 3 }
40 id-pkcs3-rc2-cbc OBJECT IDENTIFIER ::= { id-pkcs-3 2 }
41 id-pkcs3-rc4 OBJECT IDENTIFIER ::= { id-pkcs-3 4 }
42 id-pkcs3-des-ede3-cbc OBJECT IDENTIFIER ::= { id-pkcs-3 7 }
44 id-rsadsi-encalg OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
47 id-rsadsi-rc2-cbc OBJECT IDENTIFIER ::= { id-rsadsi-encalg 2 }
48 id-rsadsi-des-ede3-cbc OBJECT IDENTIFIER ::= { id-rsadsi-encalg 7 }
50 id-secsig-sha-1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
51 oiw(14) secsig(3) algorithm(2) 26 }
53 id-nistAlgorithm OBJECT IDENTIFIER ::= {
54 joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) 4 }
56 id-nist-aes-algs OBJECT IDENTIFIER ::= { id-nistAlgorithm 1 }
58 id-aes-128-cbc OBJECT IDENTIFIER ::= { id-nist-aes-algs 2 }
59 id-aes-192-cbc OBJECT IDENTIFIER ::= { id-nist-aes-algs 22 }
60 id-aes-256-cbc OBJECT IDENTIFIER ::= { id-nist-aes-algs 42 }
62 id-nist-sha-algs OBJECT IDENTIFIER ::= { id-nistAlgorithm 2 }
64 id-sha256 OBJECT IDENTIFIER ::= { id-nist-sha-algs 1 }
65 id-sha224 OBJECT IDENTIFIER ::= { id-nist-sha-algs 4 }
66 id-sha384 OBJECT IDENTIFIER ::= { id-nist-sha-algs 2 }
67 id-sha512 OBJECT IDENTIFIER ::= { id-nist-sha-algs 3 }
69 id-dhpublicnumber OBJECT IDENTIFIER ::= {
70 iso(1) member-body(2) us(840) ansi-x942(10046)
73 id-x9-57 OBJECT IDENTIFIER ::= {
74 iso(1) member-body(2) us(840) ansi-x942(10046)
77 id-dsa OBJECT IDENTIFIER ::= { id-x9-57 1 }
78 id-dsa-with-sha1 OBJECT IDENTIFIER ::= { id-x9-57 3 }
82 id-x520-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
84 id-at-commonName OBJECT IDENTIFIER ::= { id-x520-at 3 }
85 id-at-surname OBJECT IDENTIFIER ::= { id-x520-at 4 }
86 id-at-serialNumber OBJECT IDENTIFIER ::= { id-x520-at 5 }
87 id-at-countryName OBJECT IDENTIFIER ::= { id-x520-at 6 }
88 id-at-localityName OBJECT IDENTIFIER ::= { id-x520-at 7 }
89 id-at-stateOrProvinceName OBJECT IDENTIFIER ::= { id-x520-at 8 }
90 id-at-organizationName OBJECT IDENTIFIER ::= { id-x520-at 10 }
91 id-at-organizationalUnitName OBJECT IDENTIFIER ::= { id-x520-at 11 }
92 id-at-name OBJECT IDENTIFIER ::= { id-x520-at 41 }
93 id-at-givenName OBJECT IDENTIFIER ::= { id-x520-at 42 }
94 id-at-initials OBJECT IDENTIFIER ::= { id-x520-at 43 }
95 id-at-generationQualifier OBJECT IDENTIFIER ::= { id-x520-at 44 }
96 id-at-pseudonym OBJECT IDENTIFIER ::= { id-x520-at 65 }
98 id-Userid OBJECT IDENTIFIER ::=
99 { 0 9 2342 19200300 100 1 1 }
100 id-domainComponent OBJECT IDENTIFIER ::=
101 { 0 9 2342 19200300 100 1 25 }
106 id-x509-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
108 AlgorithmIdentifier ::= SEQUENCE {
109 algorithm OBJECT IDENTIFIER,
110 parameters heim_any OPTIONAL
113 AttributeType ::= OBJECT IDENTIFIER
115 AttributeValue ::= heim_any
117 TeletexStringx ::= [UNIVERSAL 20] IMPLICIT OCTET STRING
119 DirectoryString ::= CHOICE {
121 teletexString TeletexStringx,
122 printableString PrintableString,
123 universalString UniversalString,
124 utf8String UTF8String,
128 Attribute ::= SEQUENCE {
130 value SET OF -- AttributeValue -- heim_any
133 AttributeTypeAndValue ::= SEQUENCE {
135 value DirectoryString
138 RelativeDistinguishedName ::= SET OF AttributeTypeAndValue
140 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
143 rdnSequence RDNSequence
146 CertificateSerialNumber ::= INTEGER
150 generalTime GeneralizedTime
153 Validity ::= SEQUENCE {
158 UniqueIdentifier ::= BIT STRING
160 SubjectPublicKeyInfo ::= SEQUENCE {
161 algorithm AlgorithmIdentifier,
162 subjectPublicKey BIT STRING
165 Extension ::= SEQUENCE {
166 extnID OBJECT IDENTIFIER,
167 critical BOOLEAN OPTIONAL, -- DEFAULT FALSE XXX
168 extnValue OCTET STRING
171 Extensions ::= SEQUENCE OF Extension -- SIZE (1..MAX)
173 TBSCertificate ::= SEQUENCE {
174 version [0] Version OPTIONAL, -- EXPLICIT nnn DEFAULT 1,
175 serialNumber CertificateSerialNumber,
176 signature AlgorithmIdentifier,
180 subjectPublicKeyInfo SubjectPublicKeyInfo,
181 issuerUniqueID [1] IMPLICIT BIT STRING -- UniqueIdentifier -- OPTIONAL,
182 -- If present, version shall be v2 or v3
183 subjectUniqueID [2] IMPLICIT BIT STRING -- UniqueIdentifier -- OPTIONAL,
184 -- If present, version shall be v2 or v3
185 extensions [3] EXPLICIT Extensions OPTIONAL
186 -- If present, version shall be v3
189 Certificate ::= SEQUENCE {
190 tbsCertificate TBSCertificate,
191 signatureAlgorithm AlgorithmIdentifier,
192 signatureValue BIT STRING
195 Certificates ::= SEQUENCE OF Certificate
197 ValidationParms ::= SEQUENCE {
202 DomainParameters ::= SEQUENCE {
203 p INTEGER, -- odd prime, p=jq +1
204 g INTEGER, -- generator, g
205 q INTEGER, -- factor of p-1
206 j INTEGER OPTIONAL, -- subgroup factor
207 validationParms ValidationParms OPTIONAL -- ValidationParms
210 DHPublicKey ::= INTEGER
212 OtherName ::= SEQUENCE {
213 type-id OBJECT IDENTIFIER,
214 value [0] EXPLICIT heim_any
217 GeneralName ::= CHOICE {
218 otherName [0] IMPLICIT -- OtherName -- SEQUENCE {
219 type-id OBJECT IDENTIFIER,
220 value [0] EXPLICIT heim_any
222 rfc822Name [1] IMPLICIT IA5String,
223 dNSName [2] IMPLICIT IA5String,
224 -- x400Address [3] IMPLICIT ORAddress,--
225 directoryName [4] IMPLICIT -- Name -- CHOICE {
226 rdnSequence RDNSequence
228 -- ediPartyName [5] IMPLICIT EDIPartyName, --
229 uniformResourceIdentifier [6] IMPLICIT IA5String,
230 iPAddress [7] IMPLICIT OCTET STRING,
231 registeredID [8] IMPLICIT OBJECT IDENTIFIER
234 GeneralNames ::= SEQUENCE -- SIZE (1..MAX) -- OF GeneralName
236 id-x509-ce-keyUsage OBJECT IDENTIFIER ::= { id-x509-ce 15 }
238 KeyUsage ::= BIT STRING {
239 digitalSignature (0),
242 dataEncipherment (3),
250 id-x509-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-x509-ce 35 }
252 KeyIdentifier ::= OCTET STRING
254 AuthorityKeyIdentifier ::= SEQUENCE {
255 keyIdentifier [0] IMPLICIT OCTET STRING OPTIONAL,
256 authorityCertIssuer [1] IMPLICIT -- GeneralName --
257 SEQUENCE -- SIZE (1..MAX) -- OF GeneralName OPTIONAL,
258 authorityCertSerialNumber [2] IMPLICIT INTEGER OPTIONAL
261 id-x509-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-x509-ce 14 }
263 SubjectKeyIdentifier ::= KeyIdentifier
265 id-x509-ce-basicConstraints OBJECT IDENTIFIER ::= { id-x509-ce 19 }
267 BasicConstraints ::= SEQUENCE {
268 cA BOOLEAN OPTIONAL -- DEFAULT FALSE --,
269 pathLenConstraint INTEGER (0..4294967295) OPTIONAL
272 id-x509-ce-nameConstraints OBJECT IDENTIFIER ::= { id-x509-ce 30 }
274 BaseDistance ::= INTEGER -- (0..MAX) --
276 GeneralSubtree ::= SEQUENCE {
278 minimum [0] IMPLICIT -- BaseDistance -- INTEGER OPTIONAL -- DEFAULT 0 --,
279 maximum [1] IMPLICIT -- BaseDistance -- INTEGER OPTIONAL
282 GeneralSubtrees ::= SEQUENCE -- SIZE (1..MAX) -- OF GeneralSubtree
284 NameConstraints ::= SEQUENCE {
285 permittedSubtrees [0] IMPLICIT -- GeneralSubtrees -- SEQUENCE OF GeneralSubtree OPTIONAL,
286 excludedSubtrees [1] IMPLICIT -- GeneralSubtrees -- SEQUENCE OF GeneralSubtree OPTIONAL
289 id-x509-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-x509-ce 16 }
290 id-x509-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-x509-ce 32 }
291 id-x509-ce-policyMappings OBJECT IDENTIFIER ::= { id-x509-ce 33 }
292 id-x509-ce-subjectAltName OBJECT IDENTIFIER ::= { id-x509-ce 17 }
293 id-x509-ce-issuerAltName OBJECT IDENTIFIER ::= { id-x509-ce 18 }
294 id-x509-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-x509-ce 9 }
295 id-x509-ce-policyConstraints OBJECT IDENTIFIER ::= { id-x509-ce 36 }
297 id-x509-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-x509-ce 37}
299 ExtKeyUsage ::= SEQUENCE OF OBJECT IDENTIFIER
301 id-x509-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= { id-x509-ce 31 }
302 id-x509-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-x509-ce 27 }
303 id-x509-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-x509-ce 28 }
304 id-x509-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-x509-ce 23 }
305 id-x509-ce-invalidityDate OBJECT IDENTIFIER ::= { id-x509-ce 24 }
306 id-x509-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-x509-ce 29 }
307 id-x509-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-x509-ce 54 }
311 DSASigValue ::= SEQUENCE {
316 DSAPublicKey ::= INTEGER
318 DSAParams ::= SEQUENCE {
326 RSAPublicKey ::= SEQUENCE {
327 modulus INTEGER, -- n
328 publicExponent INTEGER -- e
331 RSAPrivateKey ::= SEQUENCE {
332 version INTEGER (0..4294967295),
333 modulus INTEGER, -- n
334 publicExponent INTEGER, -- e
335 privateExponent INTEGER, -- d
338 exponent1 INTEGER, -- d mod (p-1)
339 exponent2 INTEGER, -- d mod (q-1)
340 coefficient INTEGER -- (inverse of q) mod p
343 DigestInfo ::= SEQUENCE {
344 digestAlgorithm AlgorithmIdentifier,
350 -- szOID_ENROLL_CERTTYPE_EXTENSION "1.3.6.1.4.1.311.20.2" is Encoded as a
352 -- UNICODESTRING (0x1E tag)
354 -- szOID_CERTIFICATE_TEMPLATE "1.3.6.1.4.1.311.21.7" is Encoded as:
356 -- TemplateVersion ::= INTEGER (0..4294967295)
358 -- CertificateTemplate ::= SEQUENCE {
359 -- templateID OBJECT IDENTIFIER,
360 -- templateMajorVersion TemplateVersion,
361 -- templateMinorVersion TemplateVersion OPTIONAL
369 TBSCRLCertList ::= SEQUENCE {
370 version Version OPTIONAL, -- if present, MUST be v2
371 signature AlgorithmIdentifier,
374 nextUpdate Time OPTIONAL,
375 revokedCertificates SEQUENCE OF SEQUENCE {
376 userCertificate CertificateSerialNumber,
378 crlEntryExtensions Extensions OPTIONAL
379 -- if present, MUST be v2
381 crlExtensions [0] EXPLICIT Extensions OPTIONAL
382 -- if present, MUST be v2
386 CRLCertificateList ::= SEQUENCE {
387 tbsCertList TBSCRLCertList,
388 signatureAlgorithm AlgorithmIdentifier,
389 signatureValue BIT STRING
392 id-x509-ce-cRLNumber OBJECT IDENTIFIER ::= { id-x509-ce 20 }
393 id-x509-ce-freshestCRL OBJECT IDENTIFIER ::= { id-x509-ce 46 }
394 id-x509-ce-cRLReason OBJECT IDENTIFIER ::= { id-x509-ce 21 }
396 CRLReason ::= ENUMERATED {
400 affiliationChanged (3),
402 cessationOfOperation (5),
405 privilegeWithdrawn (9),
409 id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
410 dod(6) internet(1) security(5) mechanisms(5) pkix(7) }
412 id-pkix-on OBJECT IDENTIFIER ::= { id-pkix 8 }
413 id-pkix-on-dnsSRV OBJECT IDENTIFIER ::= { id-pkix-on 7 }
415 id-pkix-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
416 id-pkix-kp-serverAuth OBJECT IDENTIFIER ::= { id-pkix-kp 1 }
417 id-pkix-kp-clientAuth OBJECT IDENTIFIER ::= { id-pkix-kp 2 }
418 id-pkix-kp-emailProtection OBJECT IDENTIFIER ::= { id-pkix-kp 4 }
419 id-pkix-kp-timeStamping OBJECT IDENTIFIER ::= { id-pkix-kp 8 }
420 id-pkix-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-pkix-kp 9 }
422 -- RFC 3820 Proxy Certificate Profile
424 id-pkix-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
426 id-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pkix-pe 14 }
428 id-pkix-ppl OBJECT IDENTIFIER ::= { id-pkix 21 }
430 id-pkix-ppl-anyLanguage OBJECT IDENTIFIER ::= { id-pkix-ppl 0 }
431 id-pkix-ppl-inheritAll OBJECT IDENTIFIER ::= { id-pkix-ppl 1 }
432 id-pkix-ppl-independent OBJECT IDENTIFIER ::= { id-pkix-ppl 2 }
434 ProxyPolicy ::= SEQUENCE {
435 policyLanguage OBJECT IDENTIFIER,
436 policy OCTET STRING OPTIONAL
439 ProxyCertInfo ::= SEQUENCE {
440 pCPathLenConstraint INTEGER (0..4294967295) OPTIONAL, -- really MAX
441 proxyPolicy ProxyPolicy