r20640: Commit part 2/2
[Samba.git] / source / heimdal / lib / asn1 / rfc2459.asn1
blob430674a5ee8c79644737f325e5d0297941e9f508
1 -- $Id$ --
2 -- Definitions from rfc2459/rfc3280
4 RFC2459 DEFINITIONS ::= BEGIN
6 IMPORTS heim_any FROM heim;
8 Version ::=  INTEGER {
9         rfc3280_version_1(0), 
10         rfc3280_version_2(1),
11         rfc3280_version_3(2)
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)
45         rsadsi(113549) 3 }
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 }
55    
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)
71         number-type(2) 1 }
73 id-x9-57 OBJECT IDENTIFIER ::= {
74         iso(1) member-body(2) us(840) ansi-x942(10046)
75         4 }
77 id-dsa OBJECT IDENTIFIER ::=            { id-x9-57 1 }
78 id-dsa-with-sha1 OBJECT IDENTIFIER ::=          { id-x9-57 3 }
80 -- x.520 names types
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 }
97 -- RFC 2247
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 }
104 -- rfc3280
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 {
120         ia5String       IA5String,
121         teletexString   TeletexStringx,
122         printableString PrintableString,
123         universalString UniversalString,
124         utf8String      UTF8String,
125         bmpString       BMPString
128 Attribute ::= SEQUENCE {
129         type    AttributeType,
130         value   SET OF -- AttributeValue -- heim_any
133 AttributeTypeAndValue ::= SEQUENCE {
134         type    AttributeType,
135         value   DirectoryString
138 RelativeDistinguishedName ::= SET OF AttributeTypeAndValue
140 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
142 Name ::= CHOICE {
143         rdnSequence  RDNSequence
146 CertificateSerialNumber ::= INTEGER
148 Time ::= CHOICE {
149      utcTime        UTCTime,
150      generalTime    GeneralizedTime
153 Validity ::= SEQUENCE {
154      notBefore      Time,
155      notAfter       Time
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,
177      issuer               Name,
178      validity             Validity,
179      subject              Name,
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 {
198         seed            BIT STRING,
199         pgenCounter     INTEGER
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
221         },
222         rfc822Name                      [1]     IMPLICIT IA5String,
223         dNSName                         [2]     IMPLICIT IA5String,
224 --      x400Address                     [3]     IMPLICIT ORAddress,--
225         directoryName                   [4]     IMPLICIT -- Name -- CHOICE {
226                 rdnSequence  RDNSequence
227         },
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),
240         nonRepudiation          (1),
241         keyEncipherment         (2),
242         dataEncipherment        (3),
243         keyAgreement            (4),
244         keyCertSign             (5),
245         cRLSign                 (6),
246         encipherOnly            (7),
247         decipherOnly            (8)
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 {
277         base                    GeneralName,
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 }
309 -- rfc3279
311 DSASigValue  ::=  SEQUENCE {
312         r       INTEGER,
313         s       INTEGER
316 DSAPublicKey ::= INTEGER
318 DSAParams  ::=  SEQUENCE {
319         p       INTEGER,
320         q       INTEGER,
321         g       INTEGER
324 -- really pkcs1
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
336         prime1 INTEGER, -- p
337         prime2 INTEGER, -- q
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,
345         digest OCTET STRING
348 -- some ms ext
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
362 -- }
366 -- CRL
367 -- 
369 TBSCRLCertList ::=  SEQUENCE  {
370         version                 Version OPTIONAL, -- if present, MUST be v2
371         signature               AlgorithmIdentifier,
372         issuer                  Name,
373         thisUpdate              Time,
374         nextUpdate              Time OPTIONAL,
375         revokedCertificates     SEQUENCE OF SEQUENCE  {
376                 userCertificate         CertificateSerialNumber,
377                 revocationDate          Time,
378                 crlEntryExtensions      Extensions OPTIONAL
379                                                 -- if present, MUST be v2
380         } OPTIONAL,
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 {
397         unspecified             (0),
398         keyCompromise           (1),
399         cACompromise            (2),
400         affiliationChanged      (3),
401         superseded              (4),
402         cessationOfOperation    (5),
403         certificateHold         (6),
404         removeFromCRL           (8),
405         privilegeWithdrawn      (9),
406         aACompromise           (10)
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