1 -- Portions of these ASN.1 modules are structures from RFC6113
2 -- authored by S. Hartman (Painless Security) and L. Zhu (Microsoft)
4 -- Portions of these ASN.1 modules are structures from RFC4556
5 -- authored by L. Zhu (Microsoft Corporation) and B. Tung (Aerospace
8 -- Portions of these ASN.1 modules are structures from RFC5280
9 -- authored by D. Cooper (NIST), S. Santesson (Microsoft),
10 -- S. Farrell (Trinity College Dublin), S. Boeyen (Entrust),
11 -- R. Housley (Vigil Security), W. Polk (NIST)
13 -- Portions of these ASN.1 modules are structures from RFC0817
14 -- authored by K. Moriarty, Ed. (EMC Corporation)
15 -- B. Kaliski (Verisign), J. Jonsson (Subset AB), A. Rusch (RSA)
17 -- Portions of these ASN.1 modules are structures from RFC0818
18 -- authored by K. Moriarty, Ed. (Dell EMC), B. Kaliski (Verisign)
21 -- Copyright (c) 2011 IETF Trust and the persons identified as authors of the
22 -- code. All rights reserved.
24 -- Redistribution and use in source and binary forms, with or without
25 -- modification, is permitted pursuant to, and subject to the license terms
26 -- contained in, the Simplified BSD License set forth in Section 4.c of the IETF
27 -- Trust’s Legal Provisions Relating to IETF Documents
28 -- (http://trustee.ietf.org/license-info).
32 -- Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.
33 -- Redistribution and use in source and binary forms, with or without modification, are permitted provided
34 -- that the following conditions are met:
35 -- • Redistributions of source code must retain the above copyright notice, this list of conditions and
36 -- the following disclaimer.
38 -- • Redistributions in binary form must reproduce the above copyright notice, this list of conditions
39 -- and the following disclaimer in the documentation and/or other materials provided with the
42 -- • Neither the name of Internet Society, IETF or IETF Trust, nor the names of specific contributors,
43 -- may be used to endorse or promote products derived from this software without specific prior written
45 -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
46 -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
47 -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
48 -- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
49 -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
50 -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
51 -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
52 -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
53 -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
54 -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
55 -- POSSIBILITY OF SUCH DAMAGE.
58 -- Portions of these ASN.1 modules are from Microsoft's MS-WCCE and MS-KILE
59 -- from the Microsoft Open Specifications Documentation.
61 -- Intellectual Property Rights Notice for Open Specifications Documentation
63 -- * Technical Documentation. Microsoft publishes Open Specifications
64 -- documentation (“this documentation”) for protocols, file formats,
65 -- data portability, computer languages, and standards
66 -- support. Additionally, overview documents cover inter-protocol
67 -- relationships and interactions.
69 -- * Copyrights. This documentation is covered by Microsoft
70 -- copyrights. Regardless of any other terms that are contained in
71 -- the terms of use for the Microsoft website that hosts this
72 -- documentation, you can make copies of it in order to develop
73 -- implementations of the technologies that are described in this
74 -- documentation and can distribute portions of it in your
75 -- implementations that use these technologies or in your
76 -- documentation as necessary to properly document the
77 -- implementation. You can also distribute in your implementation,
78 -- with or without modification, any schemas, IDLs, or code samples
79 -- that are included in the documentation. This permission also
80 -- applies to any documents that are referenced in the Open
81 -- Specifications documentation.
83 -- * No Trade Secrets. Microsoft does not claim any trade secret rights
84 -- in this documentation.
86 -- * Patents. Microsoft has patents that might cover your
87 -- implementations of the technologies described in the Open
88 -- Specifications documentation. Neither this notice nor Microsoft's
89 -- delivery of this documentation grants any licenses under those
90 -- patents or any other Microsoft patents. However, a given Open
91 -- Specifications document might be covered by the Microsoft Open
92 -- Specifications Promise or the Microsoft Community Promise. If you
93 -- would prefer a written license, or if the technologies described
94 -- in this documentation are not covered by the Open Specifications
95 -- Promise or Community Promise, as applicable, patent licenses are
96 -- available by contacting iplg@microsoft.com.
98 -- * License Programs. To see all of the protocols in scope under a
99 -- specific license program and the associated patents, visit the
102 -- * Trademarks. The names of companies and products contained in this
103 -- documentation might be covered by trademarks or similar
104 -- intellectual property rights. This notice does not grant any
105 -- licenses under those rights. For a list of Microsoft trademarks,
106 -- visit www.microsoft.com/trademarks.
108 -- * Fictitious Names. The example companies, organizations, products,
109 -- domain names, email addresses, logos, people, places, and events
110 -- that are depicted in this documentation are fictitious. No
111 -- association with any real company, organization, product, domain
112 -- name, email address, logo, person, place, or event is intended or
113 -- should be inferred.
115 -- Reservation of Rights. All other rights are reserved, and this notice
116 -- does not grant any rights other than as specifically described above,
117 -- whether by implication, estoppel, or otherwise.
119 -- Tools. The Open Specifications documentation does not require the use
120 -- of Microsoft programming tools or programming environments in order
121 -- for you to develop an implementation. If you have access to Microsoft
122 -- programming tools and environments, you are free to take advantage of
123 -- them. Certain Open Specifications documents are intended for use in
124 -- conjunction with publicly available standards specifications and
125 -- network programming art and, as such, assume that the reader either
126 -- is familiar with the aforementioned material or has immediate access
129 -- Support. For questions and support, please contact dochelp@microsoft.com
132 -- The above is the IPR notice from MS-KILE
135 iso(1) identified-organization(3) dod(6) internet(1)
136 security(5) kerberosV5(2) modules(4) krb5spec2(2)
137 } DEFINITIONS EXPLICIT TAGS ::= BEGIN
139 -- OID arc for KerberosV5
141 -- This OID may be used to identify Kerberos protocol messages
142 -- encapsulated in other protocols.
144 -- This OID also designates the OID arc for KerberosV5-related OIDs.
146 -- NOTE: RFC 1510 had an incorrect value (5) for "dod" in its OID.
147 id-krb5 OBJECT IDENTIFIER ::= {
148 iso(1) identified-organization(3) dod(6) internet(1)
149 security(5) kerberosV5(2)
152 Int32 ::= INTEGER (-2147483648..2147483647)
153 -- signed values representable in 32 bits
155 UInt32 ::= INTEGER (0..4294967295)
156 -- unsigned 32 bit values
158 Microseconds ::= INTEGER (0..999999)
162 -- asn1ate doesn't support 'GeneralString (IA5String)'
163 -- only 'GeneralString' or 'IA5String', on the wire
164 -- GeneralString is used.
166 -- KerberosString ::= GeneralString (IA5String)
167 KerberosString ::= GeneralString
169 Realm ::= KerberosString
171 PrincipalName ::= SEQUENCE {
172 name-type [0] NameType, -- Int32,
173 name-string [1] SEQUENCE OF KerberosString
178 KerberosTime ::= GeneralizedTime -- with no fractional seconds
180 HostAddress ::= SEQUENCE {
182 address [1] OCTET STRING
185 -- NOTE: HostAddresses is always used as an OPTIONAL field and
186 -- should not be empty.
187 HostAddresses -- NOTE: subtly different from rfc1510,
188 -- but has a value mapping and encodes the same
189 ::= SEQUENCE OF HostAddress
191 -- NOTE: AuthorizationData is always used as an OPTIONAL field and
192 -- should not be empty.
193 AuthorizationData ::= SEQUENCE OF SEQUENCE {
194 ad-type [0] AuthDataType, -- Int32,
195 ad-data [1] OCTET STRING
198 AuthDataType ::= Int32
200 PA-DATA ::= SEQUENCE {
201 -- NOTE: first tag is [1], not [0]
202 padata-type [1] PADataType, -- Int32
203 padata-value [2] OCTET STRING -- might be encoded AP-REQ
209 -- asn1ate doesn't support 'MAX' nor a lower range != 1.
210 -- We'll use a custom enodeValue() hooks for BitString
211 -- in order to encode them with at least 32-Bit.
213 -- KerberosFlags ::= BIT STRING (SIZE (32..MAX))
214 KerberosFlags ::= BIT STRING (SIZE (1..32))
215 -- minimum number of bits shall be sent,
216 -- but no fewer than 32
218 EncryptedData ::= SEQUENCE {
219 etype [0] EncryptionType, --Int32 EncryptionType --
220 kvno [1] Int32 OPTIONAL,
221 cipher [2] OCTET STRING -- ciphertext
224 EncryptionKey ::= SEQUENCE {
225 keytype [0] EncryptionType, -- Int32 actually encryption type --
226 keyvalue [1] OCTET STRING
229 Checksum ::= SEQUENCE {
230 cksumtype [0] ChecksumType, -- Int32,
231 checksum [1] OCTET STRING
234 ChecksumType ::= Int32
236 Ticket ::= [APPLICATION 1] SEQUENCE {
237 tkt-vno [0] INTEGER (5),
239 sname [2] PrincipalName,
240 enc-part [3] EncryptedData -- EncTicketPart
243 -- Encrypted part of ticket
244 EncTicketPart ::= [APPLICATION 3] SEQUENCE {
245 flags [0] TicketFlags,
246 key [1] EncryptionKey,
248 cname [3] PrincipalName,
249 transited [4] TransitedEncoding,
250 authtime [5] KerberosTime,
251 starttime [6] KerberosTime OPTIONAL,
252 endtime [7] KerberosTime,
253 renew-till [8] KerberosTime OPTIONAL,
254 caddr [9] HostAddresses OPTIONAL,
255 authorization-data [10] AuthorizationData OPTIONAL
258 -- encoded Transited field
259 TransitedEncoding ::= SEQUENCE {
260 tr-type [0] Int32 -- must be registered --,
261 contents [1] OCTET STRING
264 TicketFlags ::= KerberosFlags
277 -- the following are new since 1510
278 -- transited-policy-checked(12),
279 -- ok-as-delegate(13)
282 AS-REQ ::= [APPLICATION 10] KDC-REQ
284 TGS-REQ ::= [APPLICATION 12] KDC-REQ
286 KDC-REQ ::= SEQUENCE {
287 -- NOTE: first tag is [1], not [0]
288 pvno [1] INTEGER (5) ,
289 msg-type [2] INTEGER (10 -- AS -- | 12 -- TGS --),
290 padata [3] SEQUENCE OF PA-DATA OPTIONAL
291 -- NOTE: not empty --,
292 req-body [4] KDC-REQ-BODY
295 KDC-REQ-BODY ::= SEQUENCE {
296 kdc-options [0] KDCOptions,
297 cname [1] PrincipalName OPTIONAL
298 -- Used only in AS-REQ --,
301 -- Also client's in AS-REQ --,
302 sname [3] PrincipalName OPTIONAL,
303 from [4] KerberosTime OPTIONAL,
304 till [5] KerberosTime,
305 rtime [6] KerberosTime OPTIONAL,
307 etype [8] SEQUENCE OF EncryptionType -- Int32 - EncryptionType
308 -- in preference order --,
309 addresses [9] HostAddresses OPTIONAL,
310 enc-authorization-data [10] EncryptedData OPTIONAL
311 -- AuthorizationData --,
312 additional-tickets [11] SEQUENCE OF Ticket OPTIONAL
316 EncryptionType ::= Int32
318 KDCOptions ::= KerberosFlags
324 -- allow-postdate(5),
330 -- opt-hardware-auth(11),
333 -- Canonicalize is used in RFC 6806
335 -- 26 was unused in 1510
336 -- disable-transited-check(26),
339 -- enc-tkt-in-skey(28),
343 AS-REP ::= [APPLICATION 11] KDC-REP
345 TGS-REP ::= [APPLICATION 13] KDC-REP
347 KDC-REP ::= SEQUENCE {
348 pvno [0] INTEGER (5),
349 msg-type [1] INTEGER (11 -- AS -- | 13 -- TGS --),
350 padata [2] SEQUENCE OF PA-DATA OPTIONAL
351 -- NOTE: not empty --,
353 cname [4] PrincipalName,
355 enc-part [6] EncryptedData
356 -- EncASRepPart or EncTGSRepPart,
360 EncASRepPart ::= [APPLICATION 25] EncKDCRepPart
362 EncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
364 EncKDCRepPart ::= SEQUENCE {
365 key [0] EncryptionKey,
366 last-req [1] LastReq,
368 key-expiration [3] KerberosTime OPTIONAL,
369 flags [4] TicketFlags,
370 authtime [5] KerberosTime,
371 starttime [6] KerberosTime OPTIONAL,
372 endtime [7] KerberosTime,
373 renew-till [8] KerberosTime OPTIONAL,
375 sname [10] PrincipalName,
376 caddr [11] HostAddresses OPTIONAL,
377 encrypted-pa-data[12] METHOD-DATA OPTIONAL
380 LastReq ::= SEQUENCE OF SEQUENCE {
382 lr-value [1] KerberosTime
385 AP-REQ ::= [APPLICATION 14] SEQUENCE {
386 pvno [0] INTEGER (5),
387 msg-type [1] INTEGER (14),
388 ap-options [2] APOptions,
390 authenticator [4] EncryptedData -- Authenticator
393 APOptions ::= KerberosFlags
395 -- use-session-key(1),
396 -- mutual-required(2)
398 -- Unencrypted authenticator
399 Authenticator ::= [APPLICATION 2] SEQUENCE {
400 authenticator-vno [0] INTEGER (5),
402 cname [2] PrincipalName,
403 cksum [3] Checksum OPTIONAL,
404 cusec [4] Microseconds,
405 ctime [5] KerberosTime,
406 subkey [6] EncryptionKey OPTIONAL,
407 seq-number [7] UInt32 OPTIONAL,
408 authorization-data [8] AuthorizationData OPTIONAL
411 AP-REP ::= [APPLICATION 15] SEQUENCE {
412 pvno [0] INTEGER (5),
413 msg-type [1] INTEGER (15),
414 enc-part [2] EncryptedData -- EncAPRepPart
417 EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
418 ctime [0] KerberosTime,
419 cusec [1] Microseconds,
420 subkey [2] EncryptionKey OPTIONAL,
421 seq-number [3] UInt32 OPTIONAL
424 KRB-SAFE ::= [APPLICATION 20] SEQUENCE {
425 pvno [0] INTEGER (5),
426 msg-type [1] INTEGER (20),
427 safe-body [2] KRB-SAFE-BODY,
431 KRB-SAFE-BODY ::= SEQUENCE {
432 user-data [0] OCTET STRING,
433 timestamp [1] KerberosTime OPTIONAL,
434 usec [2] Microseconds OPTIONAL,
435 seq-number [3] UInt32 OPTIONAL,
436 s-address [4] HostAddress,
437 r-address [5] HostAddress OPTIONAL
440 KRB-PRIV ::= [APPLICATION 21] SEQUENCE {
441 pvno [0] INTEGER (5),
442 msg-type [1] INTEGER (21),
443 -- NOTE: there is no [2] tag
444 enc-part [3] EncryptedData -- EncKrbPrivPart
447 EncKrbPrivPart ::= [APPLICATION 28] SEQUENCE {
448 user-data [0] OCTET STRING,
449 timestamp [1] KerberosTime OPTIONAL,
450 usec [2] Microseconds OPTIONAL,
451 seq-number [3] UInt32 OPTIONAL,
452 s-address [4] HostAddress -- sender's addr --,
453 r-address [5] HostAddress OPTIONAL -- recip's addr
456 KRB-CRED ::= [APPLICATION 22] SEQUENCE {
457 pvno [0] INTEGER (5),
458 msg-type [1] INTEGER (22),
459 tickets [2] SEQUENCE OF Ticket,
460 enc-part [3] EncryptedData -- EncKrbCredPart
463 EncKrbCredPart ::= [APPLICATION 29] SEQUENCE {
464 ticket-info [0] SEQUENCE OF KrbCredInfo,
465 nonce [1] UInt32 OPTIONAL,
466 timestamp [2] KerberosTime OPTIONAL,
467 usec [3] Microseconds OPTIONAL,
468 s-address [4] HostAddress OPTIONAL,
469 r-address [5] HostAddress OPTIONAL
472 KrbCredInfo ::= SEQUENCE {
473 key [0] EncryptionKey,
474 prealm [1] Realm OPTIONAL,
475 pname [2] PrincipalName OPTIONAL,
476 flags [3] TicketFlags OPTIONAL,
477 authtime [4] KerberosTime OPTIONAL,
478 starttime [5] KerberosTime OPTIONAL,
479 endtime [6] KerberosTime OPTIONAL,
480 renew-till [7] KerberosTime OPTIONAL,
481 srealm [8] Realm OPTIONAL,
482 sname [9] PrincipalName OPTIONAL,
483 caddr [10] HostAddresses OPTIONAL
486 KRB-ERROR ::= [APPLICATION 30] SEQUENCE {
487 pvno [0] INTEGER (5),
488 msg-type [1] INTEGER (30),
489 ctime [2] KerberosTime OPTIONAL,
490 cusec [3] Microseconds OPTIONAL,
491 stime [4] KerberosTime,
492 susec [5] Microseconds,
493 error-code [6] Int32,
494 crealm [7] Realm OPTIONAL,
495 cname [8] PrincipalName OPTIONAL,
496 realm [9] Realm -- service realm --,
497 sname [10] PrincipalName -- service name --,
498 e-text [11] KerberosString OPTIONAL,
499 e-data [12] OCTET STRING OPTIONAL
502 METHOD-DATA ::= SEQUENCE OF PA-DATA
505 -- asn1ate doesn't support 'MAX'
507 -- TYPED-DATA ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
508 TYPED-DATA ::= SEQUENCE SIZE (1..256) OF SEQUENCE {
510 data-value [1] OCTET STRING OPTIONAL
513 -- preauth stuff follows
515 PA-ENC-TIMESTAMP ::= EncryptedData -- PA-ENC-TS-ENC
517 PA-ENC-TS-ENC ::= SEQUENCE {
518 patimestamp [0] KerberosTime -- client's time --,
519 pausec [1] Microseconds OPTIONAL
522 ETYPE-INFO-ENTRY ::= SEQUENCE {
523 etype [0] EncryptionType, --Int32 EncryptionType --
524 salt [1] OCTET STRING OPTIONAL
527 ETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
529 ETYPE-INFO2-ENTRY ::= SEQUENCE {
530 etype [0] EncryptionType, --Int32 EncryptionType --
531 salt [1] KerberosString OPTIONAL,
532 s2kparams [2] OCTET STRING OPTIONAL
535 ETYPE-INFO2 ::= SEQUENCE SIZE (1..256) OF ETYPE-INFO2-ENTRY
537 AD-IF-RELEVANT ::= AuthorizationData
539 AD-KDCIssued ::= SEQUENCE {
540 ad-checksum [0] Checksum,
541 i-realm [1] Realm OPTIONAL,
542 i-sname [2] PrincipalName OPTIONAL,
543 elements [3] AuthorizationData
546 AD-AND-OR ::= SEQUENCE {
547 condition-count [0] Int32,
548 elements [1] AuthorizationData
551 AD-MANDATORY-FOR-KDC ::= AuthorizationData
555 PA-S4U2Self ::= SEQUENCE {
556 name [0] PrincipalName,
559 auth [3] KerberosString
566 -- asn1ate doesn’t support ‘SIGNED’.
567 -- CertificateRevocationList ::= SIGNED SEQUENCE {
568 CertificateRevocationList ::= SEQUENCE {
569 signature AlgorithmIdentifier,
574 SEQUENCE OF CRLEntry OPTIONAL
577 CRLEntry ::= SEQUENCE{
578 userCertificate SerialNumber,
579 revocationDate UTCTime
582 -- Not actually defined in an RFC.
583 SerialNumber ::= INTEGER
587 SignedData-RFC2315 ::= SEQUENCE {
588 version Version-RFC2315,
589 digestAlgorithms DigestAlgorithmIdentifiers,
590 contentInfo ContentInfo,
591 certificates [0] IMPLICIT CertificateSet OPTIONAL,
592 crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
593 signerInfos SignerInfos
596 Version-RFC2315 ::= INTEGER
598 ContentInfo ::= SEQUENCE {
599 contentType ContentType,
601 [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
604 ExtendedCertificatesAndCertificates ::=
605 SET OF ExtendedCertificateOrCertificate
607 ExtendedCertificateOrCertificate ::= CHOICE {
608 certificate Certificate, -- X.509
609 extendedCertificate [0] IMPLICIT ExtendedCertificate
612 CertificateRevocationLists ::=
613 SET OF CertificateRevocationList
617 DomainParameters ::= SEQUENCE {
618 p INTEGER, -- odd prime, p=jq +1
619 g INTEGER, -- generator, g
620 -- Note: RFC 3279 does not mention that ‘q’ is optional.
621 q INTEGER OPTIONAL, -- factor of p-1
622 j INTEGER OPTIONAL, -- subgroup factor
623 validationParms ValidationParms OPTIONAL
626 ValidationParms ::= SEQUENCE {
631 DHPublicKey ::= INTEGER -- public key, y = g^x mod p
633 dhpublicnumber OBJECT IDENTIFIER ::= {
634 iso(1) member-body(2)
635 us(840) ansi-x942(10046) number-type(2) 1
638 md2 OBJECT IDENTIFIER ::= {
639 iso(1) member-body(2) us(840) rsadsi(113549)
643 md5 OBJECT IDENTIFIER ::= {
644 iso(1) member-body(2) us(840) rsadsi(113549)
648 id-sha1 OBJECT IDENTIFIER ::= {
649 iso(1) identified-organization(3) oiw(14) secsig(3)
655 AttributeCertificate ::= SEQUENCE {
656 acinfo AttributeCertificateInfo,
657 signatureAlgorithm AlgorithmIdentifier,
658 signatureValue BIT STRING
661 AttributeCertificateInfo ::= SEQUENCE {
662 version AttCertVersion, -- version is v2
664 issuer AttCertIssuer,
665 signature AlgorithmIdentifier,
666 serialNumber CertificateSerialNumber,
667 attrCertValidityPeriod AttCertValidityPeriod,
668 attributes SEQUENCE OF Attribute,
669 issuerUniqueID UniqueIdentifier OPTIONAL,
670 extensions Extensions OPTIONAL
673 AttCertVersion ::= INTEGER { v2(1) }
675 Holder ::= SEQUENCE {
676 baseCertificateID [0] IssuerSerial OPTIONAL,
677 entityName [1] GeneralNames OPTIONAL,
678 objectDigestInfo [2] ObjectDigestInfo OPTIONAL
681 ObjectDigestInfo ::= SEQUENCE {
682 digestedObjectType ENUMERATED {
687 -- otherObjectTypes MUST NOT
688 -- be used in this profile
689 otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
690 digestAlgorithm AlgorithmIdentifier,
691 objectDigest BIT STRING
696 sha1WithRSAEncryption OBJECT IDENTIFIER ::= {
698 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 5
703 id-pkinit OBJECT IDENTIFIER ::= {
704 iso(1) identified-organization(3) dod(6) internet(1)
705 security(5) kerberosv5(2) pkinit (3)
708 id-pkinit-authData OBJECT IDENTIFIER ::= { id-pkinit 1 }
710 id-pkinit-DHKeyData OBJECT IDENTIFIER ::= { id-pkinit 2 }
712 id-pkinit-rkeyData OBJECT IDENTIFIER ::= { id-pkinit 3 }
714 PA-PK-AS-REQ ::= SEQUENCE {
715 signedAuthPack [0] IMPLICIT OCTET STRING,
716 trustedCertifiers [1] SEQUENCE OF
717 ExternalPrincipalIdentifier OPTIONAL,
718 kdcPkId [2] IMPLICIT OCTET STRING
723 DHNonce ::= OCTET STRING
725 ExternalPrincipalIdentifier ::= SEQUENCE {
726 subjectName [0] IMPLICIT OCTET STRING OPTIONAL,
727 issuerAndSerialNumber [1] IMPLICIT OCTET STRING OPTIONAL,
728 subjectKeyIdentifier [2] IMPLICIT OCTET STRING OPTIONAL,
732 AuthPack ::= SEQUENCE {
733 pkAuthenticator [0] PKAuthenticator,
734 clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL,
735 supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier
737 clientDHNonce [3] DHNonce OPTIONAL,
741 PKAuthenticator ::= SEQUENCE {
742 cusec [0] INTEGER (0..999999),
743 ctime [1] KerberosTime,
744 nonce [2] INTEGER (0..4294967295),
745 paChecksum [3] OCTET STRING OPTIONAL,
746 freshnessToken [4] OCTET STRING OPTIONAL,
750 TD-TRUSTED-CERTIFIERS ::= SEQUENCE OF ExternalPrincipalIdentifier
751 TD-INVALID-CERTIFICATES ::= SEQUENCE OF ExternalPrincipalIdentifier
753 KRB5PrincipalName ::= SEQUENCE {
755 principalName [1] PrincipalName
758 AD-INITIAL-VERIFIED-CAS ::= SEQUENCE OF ExternalPrincipalIdentifier
760 PA-PK-AS-REP ::= CHOICE {
761 dhInfo [0] DHRepInfo,
762 encKeyPack [1] IMPLICIT OCTET STRING,
766 DHRepInfo ::= SEQUENCE {
767 dhSignedData [0] IMPLICIT OCTET STRING,
768 serverDHNonce [1] DHNonce OPTIONAL,
772 KDCDHKeyInfo ::= SEQUENCE {
773 subjectPublicKey [0] BIT STRING,
774 nonce [1] INTEGER (0..4294967295),
775 dhKeyExpiration [2] KerberosTime OPTIONAL,
779 ReplyKeyPack ::= SEQUENCE {
780 replyKey [0] EncryptionKey,
781 asChecksum [1] Checksum,
785 TD-DH-PARAMETERS ::= SEQUENCE OF AlgorithmIdentifier
789 Attribute ::= SEQUENCE {
791 values SET OF AttributeValue
792 -- at least one value is required
795 AttCertIssuer ::= CHOICE {
796 v1Form GeneralNames, -- MUST NOT be used in this
798 v2Form [0] V2Form -- v2 only
801 V2Form ::= SEQUENCE {
802 issuerName GeneralNames OPTIONAL,
803 baseCertificateID [0] IssuerSerial OPTIONAL,
804 objectDigestInfo [1] ObjectDigestInfo OPTIONAL
805 -- issuerName MUST be present in this profile
806 -- baseCertificateID and objectDigestInfo MUST NOT
807 -- be present in this profile
810 IssuerSerial ::= SEQUENCE {
812 serial CertificateSerialNumber,
813 issuerUID UniqueIdentifier OPTIONAL
816 AttCertValidityPeriod ::= SEQUENCE {
817 notBeforeTime GeneralizedTime,
818 notAfterTime GeneralizedTime
823 id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 }
825 id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
827 SubjectAltName ::= GeneralNames
830 -- asn1ate doesn’t support ‘MAX’.
832 -- GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
833 GeneralNames ::= SEQUENCE SIZE (1..256) OF GeneralName
835 GeneralName ::= CHOICE {
836 otherName [0] OtherName,
837 rfc822Name [1] IA5String,
838 dNSName [2] IA5String,
839 x400Address [3] ORAddress,
840 directoryName [4] Name,
841 ediPartyName [5] EDIPartyName,
842 uniformResourceIdentifier [6] IA5String,
843 iPAddress [7] OCTET STRING,
844 registeredID [8] OBJECT IDENTIFIER
847 OtherName ::= SEQUENCE {
848 type-id OBJECT IDENTIFIER,
849 value [0] EXPLICIT ANY DEFINED BY type-id
852 EDIPartyName ::= SEQUENCE {
853 nameAssigner [0] DirectoryString OPTIONAL,
854 partyName [1] DirectoryString
857 Name ::= CHOICE { -- only one possibility for now --
858 rdnSequence RDNSequence
861 DirectoryString ::= CHOICE {
863 -- asn1ate doesn’t support ‘MAX’.
865 -- teletexString TeletexString (SIZE (1..MAX)),
866 -- printableString PrintableString (SIZE (1..MAX)),
867 -- universalString UniversalString (SIZE (1..MAX)),
868 -- utf8String UTF8String (SIZE (1..MAX)),
869 -- bmpString BMPString (SIZE (1..MAX))
870 teletexString TeletexString (SIZE (1..256)),
871 printableString PrintableString (SIZE (1..256)),
872 universalString UniversalString (SIZE (1..256)),
873 utf8String UTF8String (SIZE (1..256)),
874 bmpString BMPString (SIZE (1..256))
877 Certificate ::= SEQUENCE {
878 tbsCertificate TBSCertificate,
879 signatureAlgorithm AlgorithmIdentifier,
880 signatureValue BIT STRING
883 TBSCertificate ::= SEQUENCE {
885 -- asn1ate doesn’t support ‘v1’.
887 -- version [0] EXPLICIT Version DEFAULT v1,
888 version [0] EXPLICIT Version DEFAULT 1,
889 serialNumber CertificateSerialNumber,
890 signature AlgorithmIdentifier,
894 subjectPublicKeyInfo SubjectPublicKeyInfo,
895 issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
896 -- If present, version MUST be v2 or v3
897 subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
898 -- If present, version MUST be v2 or v3
899 extensions [3] EXPLICIT Extensions OPTIONAL
900 -- If present, version MUST be v3
903 Version ::= INTEGER { v1(0), v2(1), v3(2) }
905 CertificateSerialNumber ::= INTEGER
907 Validity ::= SEQUENCE {
914 generalTime GeneralizedTime
917 UniqueIdentifier ::= BIT STRING
919 AlgorithmIdentifier ::= SEQUENCE {
920 algorithm OBJECT IDENTIFIER,
921 parameters ANY DEFINED BY algorithm OPTIONAL
924 SubjectPublicKeyInfo ::= SEQUENCE {
925 algorithm AlgorithmIdentifier,
926 subjectPublicKey BIT STRING
929 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
931 ORAddress ::= SEQUENCE {
932 built-in-standard-attributes BuiltInStandardAttributes,
933 built-in-domain-defined-attributes
934 BuiltInDomainDefinedAttributes OPTIONAL,
935 -- see also teletex-domain-defined-attributes
936 extension-attributes ExtensionAttributes OPTIONAL
939 BuiltInStandardAttributes ::= SEQUENCE {
940 country-name CountryName OPTIONAL,
941 administration-domain-name AdministrationDomainName OPTIONAL,
942 network-address [0] IMPLICIT NetworkAddress OPTIONAL,
943 -- see also extended-network-address
944 terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
945 private-domain-name [2] PrivateDomainName OPTIONAL,
946 organization-name [3] IMPLICIT OrganizationName OPTIONAL,
947 -- see also teletex-organization-name
948 numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
950 personal-name [5] IMPLICIT PersonalName OPTIONAL,
951 -- see also teletex-personal-name
952 organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
954 -- see also teletex-organizational-unit-names
957 CountryName ::= [APPLICATION 1] CHOICE {
958 x121-dcc-code NumericString
959 (SIZE (ub-country-name-numeric-length)),
960 iso-3166-alpha2-code PrintableString
961 (SIZE (ub-country-name-alpha-length))
964 AdministrationDomainName ::= [APPLICATION 2] CHOICE {
965 numeric NumericString (SIZE (0..ub-domain-name-length)),
966 printable PrintableString (SIZE (0..ub-domain-name-length))
969 NetworkAddress ::= X121Address -- see also extended-network-address
971 X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
973 TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
975 PrivateDomainName ::= CHOICE {
976 numeric NumericString (SIZE (1..ub-domain-name-length)),
977 printable PrintableString (SIZE (1..ub-domain-name-length))
980 OrganizationName ::= PrintableString
981 (SIZE (1..ub-organization-name-length))
982 -- see also teletex-organization-name
984 NumericUserIdentifier ::= NumericString
985 (SIZE (1..ub-numeric-user-id-length))
987 PersonalName ::= SET {
988 surname [0] IMPLICIT PrintableString
989 (SIZE (1..ub-surname-length)),
990 given-name [1] IMPLICIT PrintableString
991 (SIZE (1..ub-given-name-length)) OPTIONAL,
992 initials [2] IMPLICIT PrintableString
993 (SIZE (1..ub-initials-length)) OPTIONAL,
994 generation-qualifier [3] IMPLICIT PrintableString
995 (SIZE (1..ub-generation-qualifier-length))
998 -- see also teletex-personal-name
1000 OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
1001 OF OrganizationalUnitName
1002 -- see also teletex-organizational-unit-names
1004 OrganizationalUnitName ::= PrintableString (SIZE
1005 (1..ub-organizational-unit-name-length))
1007 BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
1008 (1..ub-domain-defined-attributes) OF
1009 BuiltInDomainDefinedAttribute
1011 BuiltInDomainDefinedAttribute ::= SEQUENCE {
1012 type PrintableString (SIZE
1013 (1..ub-domain-defined-attribute-type-length)),
1014 value PrintableString (SIZE
1015 (1..ub-domain-defined-attribute-value-length))
1018 ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
1021 ExtensionAttribute ::= SEQUENCE {
1022 extension-attribute-type [0] IMPLICIT INTEGER
1023 (0..ub-extension-attributes),
1024 extension-attribute-value [1]
1025 ANY DEFINED BY extension-attribute-type
1029 -- asn1ate doesn’t support ‘MAX’.
1031 -- Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
1032 Extensions ::= SEQUENCE SIZE (1..256) OF Extension
1034 Extension ::= SEQUENCE {
1035 extnID OBJECT IDENTIFIER,
1036 critical BOOLEAN DEFAULT FALSE,
1037 extnValue OCTET STRING
1038 -- contains the DER encoding of an ASN.1 value
1039 -- corresponding to the extension type identified
1043 CertificateList ::= SEQUENCE {
1044 tbsCertList TBSCertList,
1045 signatureAlgorithm AlgorithmIdentifier,
1046 signatureValue BIT STRING
1049 TBSCertList ::= SEQUENCE {
1050 version Version OPTIONAL,
1051 -- if present, MUST be v2
1052 signature AlgorithmIdentifier,
1055 nextUpdate Time OPTIONAL,
1056 revokedCertificates SEQUENCE OF SEQUENCE {
1057 userCertificate CertificateSerialNumber,
1058 revocationDate Time,
1059 crlEntryExtensions Extensions OPTIONAL
1060 -- if present, version MUST be v2
1062 crlExtensions [0] EXPLICIT Extensions OPTIONAL
1063 -- if present, version MUST be v2
1066 ub-name INTEGER ::= 32768
1067 ub-common-name INTEGER ::= 64
1068 ub-locality-name INTEGER ::= 128
1069 ub-state-name INTEGER ::= 128
1070 ub-organization-name INTEGER ::= 64
1071 ub-organizational-unit-name INTEGER ::= 64
1072 ub-title INTEGER ::= 64
1073 ub-serial-number INTEGER ::= 64
1074 ub-match INTEGER ::= 128
1075 ub-emailaddress-length INTEGER ::= 255
1076 ub-common-name-length INTEGER ::= 64
1077 ub-country-name-alpha-length INTEGER ::= 2
1078 ub-country-name-numeric-length INTEGER ::= 3
1079 ub-domain-defined-attributes INTEGER ::= 4
1080 ub-domain-defined-attribute-type-length INTEGER ::= 8
1081 ub-domain-defined-attribute-value-length INTEGER ::= 128
1082 ub-domain-name-length INTEGER ::= 16
1083 ub-extension-attributes INTEGER ::= 256
1084 ub-e163-4-number-length INTEGER ::= 15
1085 ub-e163-4-sub-address-length INTEGER ::= 40
1086 ub-generation-qualifier-length INTEGER ::= 3
1087 ub-given-name-length INTEGER ::= 16
1088 ub-initials-length INTEGER ::= 5
1089 ub-integer-options INTEGER ::= 256
1090 ub-numeric-user-id-length INTEGER ::= 32
1091 ub-organization-name-length INTEGER ::= 64
1092 ub-organizational-unit-name-length INTEGER ::= 32
1093 ub-organizational-units INTEGER ::= 4
1094 ub-pds-name-length INTEGER ::= 16
1095 ub-pds-parameter-length INTEGER ::= 30
1096 ub-pds-physical-address-lines INTEGER ::= 6
1097 ub-postal-code-length INTEGER ::= 16
1098 ub-pseudonym INTEGER ::= 128
1099 ub-surname-length INTEGER ::= 40
1100 ub-terminal-id-length INTEGER ::= 24
1101 ub-unformatted-address-length INTEGER ::= 180
1102 ub-x121-address-length INTEGER ::= 16
1105 -- asn1ate doesn’t support ‘MAX’.
1107 -- RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
1108 RelativeDistinguishedName ::= SET SIZE (1..256) OF AttributeTypeAndValue
1110 AttributeTypeAndValue ::= SEQUENCE {
1112 value AttributeValue
1115 AttributeType ::= OBJECT IDENTIFIER
1117 AttributeValue ::= ANY -- DEFINED BY AttributeType
1121 ContentType ::= OBJECT IDENTIFIER
1123 RevocationInfoChoices ::= SET OF RevocationInfoChoice
1125 RevocationInfoChoice ::= CHOICE {
1126 crl CertificateList,
1127 other [1] IMPLICIT OtherRevocationInfoFormat
1130 OtherRevocationInfoFormat ::= SEQUENCE {
1131 otherRevInfoFormat OBJECT IDENTIFIER,
1132 otherRevInfo ANY DEFINED BY otherRevInfoFormat
1135 AttributeCertificateV1 ::= SEQUENCE {
1136 acInfo AttributeCertificateInfoV1,
1137 signatureAlgorithm AlgorithmIdentifier,
1138 signature BIT STRING
1141 AttributeCertificateInfoV1 ::= SEQUENCE {
1143 -- asn1ate doesn’t support ‘v1’.
1145 -- version AttCertVersionV1 DEFAULT v1,
1146 version AttCertVersionV1 DEFAULT 1,
1148 baseCertificateID [0] IssuerSerial,
1149 -- associated with a Public Key Certificate
1150 subjectName [1] GeneralNames },
1151 -- associated with a name
1152 issuer GeneralNames,
1153 signature AlgorithmIdentifier,
1154 serialNumber CertificateSerialNumber,
1155 attCertValidityPeriod AttCertValidityPeriod,
1156 attributes SEQUENCE OF Attribute,
1157 issuerUniqueID UniqueIdentifier OPTIONAL,
1158 extensions Extensions OPTIONAL
1161 AttCertVersionV1 ::= INTEGER { v1(0) }
1163 ExtendedCertificate ::= SEQUENCE {
1164 extendedCertificateInfo ExtendedCertificateInfo,
1165 signatureAlgorithm SignatureAlgorithmIdentifier,
1169 ExtendedCertificateInfo ::= SEQUENCE {
1171 certificate Certificate,
1172 attributes UnauthAttributes
1175 CertificateChoices ::= CHOICE {
1176 certificate Certificate,
1177 extendedCertificate [0] IMPLICIT ExtendedCertificate, -- Obsolete
1178 v1AttrCert [1] IMPLICIT AttributeCertificateV1, -- Obsolete
1179 v2AttrCert [2] IMPLICIT AttributeCertificateV2,
1180 other [3] IMPLICIT OtherCertificateFormat
1183 AttributeCertificateV2 ::= AttributeCertificate
1185 OtherCertificateFormat ::= SEQUENCE {
1186 otherCertFormat OBJECT IDENTIFIER,
1187 otherCert ANY DEFINED BY otherCertFormat
1190 CertificateSet ::= SET OF CertificateChoices
1192 IssuerAndSerialNumber ::= SEQUENCE {
1194 serialNumber CertificateSerialNumber
1197 CMSVersion ::= INTEGER { v0(0), v1(1), v2(2), v3(3), v4(4), v5(5) }
1199 SignerInfo ::= SEQUENCE {
1201 sid SignerIdentifier,
1202 digestAlgorithm DigestAlgorithmIdentifier,
1203 signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
1204 signatureAlgorithm SignatureAlgorithmIdentifier,
1205 signature SignatureValue,
1206 unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL
1209 SignerIdentifier ::= CHOICE {
1210 issuerAndSerialNumber IssuerAndSerialNumber,
1211 subjectKeyIdentifier [0] SubjectKeyIdentifier
1214 SubjectKeyIdentifier ::= OCTET STRING
1217 -- asn1ate doesn’t support ‘MAX’.
1219 -- SignedAttributes ::= SET SIZE (1..MAX) OF Attribute
1220 SignedAttributes ::= SET SIZE (1..256) OF Attribute
1223 -- asn1ate doesn’t support ‘MAX’.
1225 -- UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute
1226 UnsignedAttributes ::= SET SIZE (1..256) OF Attribute
1228 Attribute ::= SEQUENCE {
1229 attrType OBJECT IDENTIFIER,
1230 attrValues SET OF AttributeValue
1233 AttributeValue ::= ANY
1235 SignatureValue ::= OCTET STRING
1237 SignedData ::= SEQUENCE {
1239 digestAlgorithms DigestAlgorithmIdentifiers,
1240 encapContentInfo EncapsulatedContentInfo,
1241 certificates [0] IMPLICIT CertificateSet OPTIONAL,
1242 crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
1243 signerInfos SignerInfos
1246 DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
1248 SignerInfos ::= SET OF SignerInfo
1250 EncapsulatedContentInfo ::= SEQUENCE {
1251 eContentType ContentType,
1252 eContent [0] EXPLICIT OCTET STRING OPTIONAL
1255 EnvelopedData ::= SEQUENCE {
1257 originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
1258 recipientInfos RecipientInfos,
1259 encryptedContentInfo EncryptedContentInfo,
1260 unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
1263 OriginatorInfo ::= SEQUENCE {
1264 certs [0] IMPLICIT CertificateSet OPTIONAL,
1265 crls [1] IMPLICIT RevocationInfoChoices OPTIONAL
1269 -- asn1ate doesn't support 'MAX'
1271 -- RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
1272 RecipientInfos ::= SET SIZE (1..256) OF RecipientInfo
1274 EncryptedContentInfo ::= SEQUENCE {
1275 contentType ContentType,
1276 contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
1277 encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
1280 EncryptedContent ::= OCTET STRING
1283 -- asn1ate doesn't support 'MAX'
1285 -- UnprotectedAttributes ::= SET SIZE (1..MAX) OF Attribute
1286 UnprotectedAttributes ::= SET SIZE (1..256) OF Attribute
1288 RecipientInfo ::= CHOICE {
1289 ktri KeyTransRecipientInfo,
1290 kari [1] KeyAgreeRecipientInfo,
1291 kekri [2] KEKRecipientInfo,
1292 pwri [3] PasswordRecipientInfo,
1293 ori [4] OtherRecipientInfo
1296 EncryptedKey ::= OCTET STRING
1298 KeyTransRecipientInfo ::= SEQUENCE {
1299 version CMSVersion, -- always set to 0 or 2
1300 rid RecipientIdentifier,
1301 keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
1302 encryptedKey EncryptedKey
1305 RecipientIdentifier ::= CHOICE {
1306 issuerAndSerialNumber IssuerAndSerialNumber,
1307 subjectKeyIdentifier [0] SubjectKeyIdentifier
1310 KeyAgreeRecipientInfo ::= SEQUENCE {
1311 version CMSVersion, -- always set to 3
1312 originator [0] EXPLICIT OriginatorIdentifierOrKey,
1313 ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
1314 keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
1315 recipientEncryptedKeys RecipientEncryptedKeys
1318 OriginatorIdentifierOrKey ::= CHOICE {
1319 issuerAndSerialNumber IssuerAndSerialNumber,
1320 subjectKeyIdentifier [0] SubjectKeyIdentifier,
1321 originatorKey [1] OriginatorPublicKey
1324 OriginatorPublicKey ::= SEQUENCE {
1325 algorithm AlgorithmIdentifier,
1326 publicKey BIT STRING
1329 RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey
1331 RecipientEncryptedKey ::= SEQUENCE {
1332 rid KeyAgreeRecipientIdentifier,
1333 encryptedKey EncryptedKey
1336 KeyAgreeRecipientIdentifier ::= CHOICE {
1337 issuerAndSerialNumber IssuerAndSerialNumber,
1338 rKeyId [0] IMPLICIT RecipientKeyIdentifier
1341 RecipientKeyIdentifier ::= SEQUENCE {
1342 subjectKeyIdentifier SubjectKeyIdentifier,
1343 date GeneralizedTime OPTIONAL,
1344 other OtherKeyAttribute OPTIONAL
1347 SubjectKeyIdentifier ::= OCTET STRING
1349 KEKRecipientInfo ::= SEQUENCE {
1350 version CMSVersion, -- always set to 4
1351 kekid KEKIdentifier,
1352 keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
1353 encryptedKey EncryptedKey
1356 KEKIdentifier ::= SEQUENCE {
1357 keyIdentifier OCTET STRING,
1358 date GeneralizedTime OPTIONAL,
1359 other OtherKeyAttribute OPTIONAL
1362 PasswordRecipientInfo ::= SEQUENCE {
1363 version CMSVersion, -- always set to 0
1364 keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
1366 keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
1367 encryptedKey EncryptedKey
1370 OtherRecipientInfo ::= SEQUENCE {
1371 oriType OBJECT IDENTIFIER,
1372 oriValue ANY DEFINED BY oriType
1375 UserKeyingMaterial ::= OCTET STRING
1377 OtherKeyAttribute ::= SEQUENCE {
1378 keyAttrId OBJECT IDENTIFIER,
1379 keyAttr ANY DEFINED BY keyAttrId OPTIONAL
1382 MessageDigest ::= OCTET STRING
1384 id-data OBJECT IDENTIFIER ::= {
1385 iso(1) member-body(2)
1386 us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1
1389 id-signedData OBJECT IDENTIFIER ::= {
1390 iso(1) member-body(2)
1391 us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2
1394 id-envelopedData OBJECT IDENTIFIER ::= {
1395 iso(1) member-body(2)
1396 us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3
1399 id-contentType OBJECT IDENTIFIER ::= {
1400 iso(1) member-body(2)
1401 us(840) rsadsi(113549) pkcs(1) pkcs9(9) 3
1404 id-messageDigest OBJECT IDENTIFIER ::= {
1405 iso(1) member-body(2)
1406 us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4
1410 -- asn1ate doesn’t support ‘MAX’.
1412 -- UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
1413 UnauthAttributes ::= SET SIZE (1..256) OF Attribute
1415 DigestAlgorithmIdentifier ::= AlgorithmIdentifier
1417 SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
1419 KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
1421 KeyDerivationAlgorithmIdentifier ::= AlgorithmIdentifier
1423 ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
1425 Signature ::= BIT STRING
1427 -- Other PK-INIT definitions
1429 id-pkcs1-sha256WithRSAEncryption OBJECT IDENTIFIER ::= {
1430 iso(1) member-body(2)
1431 us(840) rsadsi(113549) pkcs(1)
1432 label-less(1) label-less(11)
1435 MS-UPN-SAN ::= UTF8String
1437 CMSCBCParameter ::= OCTET STRING
1441 szOID-NTDS-CA-SECURITY-EXT OBJECT IDENTIFIER ::= {
1442 iso(1) org(3) dod(6) internet(1) private(4) enterprise(1)
1443 microsoft(311) directory-service(25) 2
1446 szOID-NTDS-OBJECTSID OBJECT IDENTIFIER ::= {
1447 iso(1) org(3) dod(6) internet(1) private(4) enterprise(1)
1448 microsoft(311) directory-service(25) 2 1
1453 rsaEncryption OBJECT IDENTIFIER ::= {
1455 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 1
1458 id-sha512 OBJECT IDENTIFIER ::= {
1459 joint-iso-itu-t (2) country (16) us (840) organization (1)
1460 gov (101) csor (3) nistalgorithm (4) hashalgs (2) 3
1465 nistAlgorithms OBJECT IDENTIFIER ::= {joint-iso-itu-t(2) country(16)
1466 us(840) organization(1)
1469 aes OBJECT IDENTIFIER ::= { nistAlgorithms 1 }
1471 aes256-CBC-PAD OBJECT IDENTIFIER ::= { aes 42 }
1473 rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) 113549}
1475 encryptionAlgorithm OBJECT IDENTIFIER ::= {rsadsi 3}
1477 des-EDE3-CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 7}
1479 -- Windows 2000 PK-INIT definitions
1481 PKAuthenticator-Win2k ::= SEQUENCE {
1482 kdcName [0] PrincipalName,
1484 cusec [2] INTEGER (0..4294967295),
1485 ctime [3] KerberosTime,
1486 nonce [4] INTEGER (-2147483648..2147483647)
1489 AuthPack-Win2k ::= SEQUENCE {
1490 pkAuthenticator [0] PKAuthenticator-Win2k
1493 TrustedCA-Win2k ::= CHOICE {
1495 issuerAndSerial [2] IssuerAndSerialNumber
1498 PA-PK-AS-REQ-Win2k ::= SEQUENCE {
1499 signedAuthPack [0] IMPLICIT OCTET STRING,
1500 trustedCertifiers [2] SEQUENCE OF TrustedCA-Win2k OPTIONAL,
1501 kdcCert [3] IMPLICIT OCTET STRING OPTIONAL,
1502 encryptionCert [4] IMPLICIT OCTET STRING OPTIONAL,
1506 PA-PK-AS-REP-Win2k ::= CHOICE {
1507 dhSignedData [0] IMPLICIT OCTET STRING,
1508 encKeyPack [1] IMPLICIT OCTET STRING
1511 ReplyKeyPack-Win2k ::= SEQUENCE {
1512 replyKey [0] EncryptionKey,
1513 nonce [1] INTEGER (-2147483648..2147483647),
1519 id-pkinit-ms-san OBJECT IDENTIFIER ::= {
1520 iso(1) org(3) dod(6) internet(1) private(4) enterprise(1)
1521 microsoft(311) 20 2 3
1524 kdc-authentication OBJECT IDENTIFIER ::= { id-pkinit keyPurposeKdc(5) }
1526 smartcard-logon OBJECT IDENTIFIER ::= {
1527 iso(1) org(3) dod(6) internet(1) private(4) enterprise(1)
1528 microsoft(311) 20 2 2
1531 CMSAttributes ::= SET OF Attribute
1537 KERB-ERROR-DATA ::= SEQUENCE {
1538 data-type [1] KerbErrorDataType,
1539 data-value [2] OCTET STRING OPTIONAL
1542 KerbErrorDataType ::= INTEGER
1544 KERB-PA-PAC-REQUEST ::= SEQUENCE {
1545 include-pac[0] BOOLEAN --If TRUE, and no pac present, include PAC.
1546 --If FALSE, and PAC present, remove PAC
1549 KERB-LOCAL ::= OCTET STRING -- Implementation-specific data which MUST be
1550 -- ignored if Kerberos client is not local.
1552 KERB-AD-RESTRICTION-ENTRY ::= SEQUENCE {
1553 restriction-type [0] Int32,
1554 restriction [1] OCTET STRING -- LSAP_TOKEN_INFO_INTEGRITY structure
1557 PA-SUPPORTED-ENCTYPES ::= Int32 -- Supported Encryption Types Bit Field --
1559 PACOptionFlags ::= KerberosFlags -- Claims (0)
1561 -- Forward to Full DC (2)
1562 -- Resource Based Constrained Delegation (3)
1563 PA-PAC-OPTIONS ::= SEQUENCE {
1564 options [0] PACOptionFlags
1566 -- Note: KerberosFlags ::= BIT STRING (SIZE (32..MAX))
1567 -- minimum number of bits shall be sent, but no fewer than 32
1569 KERB-KEY-LIST-REQ ::= SEQUENCE OF EncryptionType -- Int32 encryption type --
1570 KERB-KEY-LIST-REP ::= SEQUENCE OF EncryptionKey
1572 FastOptions ::= BIT STRING {
1574 hide-client-names(1),
1575 kdc-follow-referrals(16)
1578 KrbFastReq ::= SEQUENCE {
1579 fast-options [0] FastOptions,
1580 padata [1] SEQUENCE OF PA-DATA,
1581 req-body [2] KDC-REQ-BODY,
1585 KrbFastArmor ::= SEQUENCE {
1586 armor-type [0] Int32,
1587 armor-value [1] OCTET STRING,
1591 KrbFastArmoredReq ::= SEQUENCE {
1592 armor [0] KrbFastArmor OPTIONAL,
1593 req-checksum [1] Checksum,
1594 enc-fast-req [2] EncryptedData -- KrbFastReq --
1597 PA-FX-FAST-REQUEST ::= CHOICE {
1598 armored-data [0] KrbFastArmoredReq,
1602 KrbFastFinished ::= SEQUENCE {
1603 timestamp [0] KerberosTime,
1606 cname [3] PrincipalName,
1607 ticket-checksum [4] Checksum,
1611 KrbFastResponse ::= SEQUENCE {
1612 padata [0] SEQUENCE OF PA-DATA,
1613 -- padata typed holes.
1614 strengthen-key [1] EncryptionKey OPTIONAL,
1615 -- This, if present, strengthens the reply key for AS and
1616 -- TGS. MUST be present for TGS.
1617 -- MUST be absent in KRB-ERROR.
1618 finished [2] KrbFastFinished OPTIONAL,
1619 -- Present in AS or TGS reply; absent otherwise.
1621 -- Nonce from the client request.
1625 KrbFastArmoredRep ::= SEQUENCE {
1626 enc-fast-rep [0] EncryptedData, -- KrbFastResponse --
1630 PA-FX-FAST-REPLY ::= CHOICE {
1631 armored-data [0] KrbFastArmoredRep,
1635 ChangePasswdDataMS ::= SEQUENCE {
1636 newpasswd [0] OCTET STRING,
1637 targname [1] PrincipalName OPTIONAL,
1638 targrealm [2] Realm OPTIONAL
1647 -- prettyPrint values
1651 NameTypeValues ::= INTEGER { -- Int32
1652 kRB5-NT-UNKNOWN(0), -- Name type not known
1653 kRB5-NT-PRINCIPAL(1), -- Just the name of the principal as in
1654 kRB5-NT-SRV-INST(2), -- Service and other unique instance (krbtgt)
1655 kRB5-NT-SRV-HST(3), -- Service with host name as instance
1656 kRB5-NT-SRV-XHST(4), -- Service with host as remaining components
1657 kRB5-NT-UID(5), -- Unique ID
1658 kRB5-NT-X500-PRINCIPAL(6), -- PKINIT
1659 kRB5-NT-SMTP-NAME(7), -- Name in form of SMTP email name
1660 kRB5-NT-ENTERPRISE-PRINCIPAL(10), -- Windows 2000 UPN
1661 kRB5-NT-WELLKNOWN(11), -- Wellknown
1662 kRB5-NT-ENT-PRINCIPAL-AND-ID(-130), -- Windows 2000 UPN and SID
1663 kRB5-NT-MS-PRINCIPAL(-128), -- NT 4 style name
1664 kRB5-NT-MS-PRINCIPAL-AND-ID(-129) -- NT style name and SID
1666 NameTypeSequence ::= SEQUENCE {
1667 dummy [0] NameTypeValues
1670 TicketFlagsValues ::= BIT STRING { -- KerberosFlags
1683 -- the following are new since 1510
1684 transited-policy-checked(12),
1688 TicketFlagsSequence ::= SEQUENCE {
1689 dummy [0] TicketFlagsValues
1692 KDCOptionsValues ::= BIT STRING { -- KerberosFlags
1704 opt-hardware-auth(11),
1707 cname-in-addl-tkt(14),
1708 -- Canonicalize is used by RFC 6806
1710 -- 26 was unused in 1510
1711 disable-transited-check(26),
1714 enc-tkt-in-skey(28),
1718 KDCOptionsSequence ::= SEQUENCE {
1719 dummy [0] KDCOptionsValues
1722 APOptionsValues ::= BIT STRING { -- KerberosFlags
1727 APOptionsSequence ::= SEQUENCE {
1728 dummy [0] APOptionsValues
1731 MessageTypeValues ::= INTEGER {
1732 krb-as-req(10), -- Request for initial authentication
1733 krb-as-rep(11), -- Response to KRB_AS_REQ request
1734 krb-tgs-req(12), -- Request for authentication based on TGT
1735 krb-tgs-rep(13), -- Response to KRB_TGS_REQ request
1736 krb-ap-req(14), -- application request to server
1737 krb-ap-rep(15), -- Response to KRB_AP_REQ_MUTUAL
1738 krb-safe(20), -- Safe (checksummed) application message
1739 krb-priv(21), -- Private (encrypted) application message
1740 krb-cred(22), -- Private (encrypted) message to forward credentials
1741 krb-error(30) -- Error response
1743 MessageTypeSequence ::= SEQUENCE {
1744 dummy [0] MessageTypeValues
1747 PADataTypeValues ::= INTEGER {
1748 kRB5-PADATA-NONE(0),
1749 -- kRB5-PADATA-TGS-REQ(1),
1750 -- kRB5-PADATA-AP-REQ(1),
1751 kRB5-PADATA-KDC-REQ(1),
1752 kRB5-PADATA-ENC-TIMESTAMP(2),
1753 kRB5-PADATA-PW-SALT(3),
1754 kRB5-PADATA-ENC-UNIX-TIME(5),
1755 kRB5-PADATA-SANDIA-SECUREID(6),
1756 kRB5-PADATA-SESAME(7),
1757 kRB5-PADATA-OSF-DCE(8),
1758 kRB5-PADATA-CYBERSAFE-SECUREID(9),
1759 kRB5-PADATA-AFS3-SALT(10),
1760 kRB5-PADATA-ETYPE-INFO(11),
1761 kRB5-PADATA-SAM-CHALLENGE(12), -- (sam/otp)
1762 kRB5-PADATA-SAM-RESPONSE(13), -- (sam/otp)
1763 kRB5-PADATA-PK-AS-REQ-19(14), -- (PKINIT-19)
1764 kRB5-PADATA-PK-AS-REP-19(15), -- (PKINIT-19)
1765 -- kRB5-PADATA-PK-AS-REQ-WIN(15), - (PKINIT - old number)
1766 kRB5-PADATA-PK-AS-REQ(16), -- (PKINIT-25)
1767 kRB5-PADATA-PK-AS-REP(17), -- (PKINIT-25)
1768 kRB5-PADATA-PA-PK-OCSP-RESPONSE(18),
1769 kRB5-PADATA-ETYPE-INFO2(19),
1770 -- kRB5-PADATA-USE-SPECIFIED-KVNO(20),
1771 kRB5-PADATA-SVR-REFERRAL-INFO(20), --- old ms referral number
1772 kRB5-PADATA-SAM-REDIRECT(21), -- (sam/otp)
1773 kRB5-PADATA-GET-FROM-TYPED-DATA(22),
1774 kRB5-PADATA-SAM-ETYPE-INFO(23),
1775 kRB5-PADATA-SERVER-REFERRAL(25),
1776 kRB5-PADATA-ALT-PRINC(24), -- (crawdad@fnal.gov)
1777 kRB5-PADATA-SAM-CHALLENGE2(30), -- (kenh@pobox.com)
1778 kRB5-PADATA-SAM-RESPONSE2(31), -- (kenh@pobox.com)
1779 kRB5-PA-EXTRA-TGT(41), -- Reserved extra TGT
1780 kRB5-PADATA-TD-KRB-PRINCIPAL(102), -- PrincipalName
1781 kRB5-PADATA-PK-TD-TRUSTED-CERTIFIERS(104), -- PKINIT
1782 kRB5-PADATA-PK-TD-CERTIFICATE-INDEX(105), -- PKINIT
1783 kRB5-PADATA-TD-APP-DEFINED-ERROR(106), -- application specific
1784 kRB5-PADATA-TD-REQ-NONCE(107), -- INTEGER
1785 kRB5-PADATA-TD-REQ-SEQ(108), -- INTEGER
1786 kRB5-PADATA-PA-PAC-REQUEST(128), -- jbrezak@exchange.microsoft.com
1787 kRB5-PADATA-FOR-USER(129), -- MS-KILE
1788 kRB5-PADATA-FOR-X509-USER(130), -- MS-KILE
1789 kRB5-PADATA-FOR-CHECK-DUPS(131), -- MS-KILE
1790 kRB5-PADATA-AS-CHECKSUM(132), -- MS-KILE
1791 -- kRB5-PADATA-PK-AS-09-BINDING(132), - client send this to
1792 -- tell KDC that is supports
1793 -- the asCheckSum in the
1795 kRB5-PADATA-FX-COOKIE(133), -- krb-wg-preauth-framework
1796 kRB5-PADATA-AUTHENTICATION-SET(134), -- krb-wg-preauth-framework
1797 kRB5-PADATA-AUTH-SET-SELECTED(135), -- krb-wg-preauth-framework
1798 kRB5-PADATA-FX-FAST(136), -- krb-wg-preauth-framework
1799 kRB5-PADATA-FX-ERROR(137), -- krb-wg-preauth-framework
1800 kRB5-PADATA-ENCRYPTED-CHALLENGE(138), -- krb-wg-preauth-framework
1801 kRB5-PADATA-OTP-CHALLENGE(141), -- (gareth.richards@rsa.com)
1802 kRB5-PADATA-OTP-REQUEST(142), -- (gareth.richards@rsa.com)
1803 kBB5-PADATA-OTP-CONFIRM(143), -- (gareth.richards@rsa.com)
1804 kRB5-PADATA-OTP-PIN-CHANGE(144), -- (gareth.richards@rsa.com)
1805 kRB5-PADATA-EPAK-AS-REQ(145),
1806 kRB5-PADATA-EPAK-AS-REP(146),
1807 kRB5-PADATA-PKINIT-KX(147), -- krb-wg-anon
1808 kRB5-PADATA-PKU2U-NAME(148), -- zhu-pku2u
1809 kRB5-PADATA-REQ-ENC-PA-REP(149), --
1810 kRB5-PADATA-AS-FRESHNESS(150), -- RFC 8070
1811 kRB5-PADATA-SUPPORTED-ETYPES(165), -- MS-KILE
1812 kRB5-PADATA-PAC-OPTIONS(167), -- MS-KILE
1813 kRB5-PADATA-GSS(655) -- gss-preauth
1815 PADataTypeSequence ::= SEQUENCE {
1816 dummy [0] PADataTypeValues
1819 AuthDataTypeValues ::= INTEGER {
1820 kRB5-AUTHDATA-IF-RELEVANT(1),
1821 kRB5-AUTHDATA-INTENDED-FOR-SERVER(2),
1822 kRB5-AUTHDATA-INTENDED-FOR-APPLICATION-CLASS(3),
1823 kRB5-AUTHDATA-KDC-ISSUED(4),
1824 kRB5-AUTHDATA-AND-OR(5),
1825 kRB5-AUTHDATA-MANDATORY-TICKET-EXTENSIONS(6),
1826 kRB5-AUTHDATA-IN-TICKET-EXTENSIONS(7),
1827 kRB5-AUTHDATA-MANDATORY-FOR-KDC(8),
1828 kRB5-AUTHDATA-INITIAL-VERIFIED-CAS(9),
1829 kRB5-AUTHDATA-OSF-DCE(64),
1830 kRB5-AUTHDATA-SESAME(65),
1831 kRB5-AUTHDATA-OSF-DCE-PKI-CERTID(66),
1832 kRB5-AUTHDATA-WIN2K-PAC(128),
1833 kRB5-AUTHDATA-GSS-API-ETYPE-NEGOTIATION(129), -- Authenticator only
1834 kRB5-AUTHDATA-SIGNTICKET-OLDER(-17),
1835 kRB5-AUTHDATA-SIGNTICKET-OLD(142),
1836 kRB5-AUTHDATA-SIGNTICKET(512)
1838 AuthDataTypeSequence ::= SEQUENCE {
1839 dummy [0] AuthDataTypeValues
1842 ChecksumTypeValues ::= INTEGER {
1843 kRB5-CKSUMTYPE-NONE(0),
1844 kRB5-CKSUMTYPE-CRC32(1),
1845 kRB5-CKSUMTYPE-RSA-MD4(2),
1846 kRB5-CKSUMTYPE-RSA-MD4-DES(3),
1847 kRB5-CKSUMTYPE-DES-MAC(4),
1848 kRB5-CKSUMTYPE-DES-MAC-K(5),
1849 kRB5-CKSUMTYPE-RSA-MD4-DES-K(6),
1850 kRB5-CKSUMTYPE-RSA-MD5(7),
1851 kRB5-CKSUMTYPE-RSA-MD5-DES(8),
1852 kRB5-CKSUMTYPE-RSA-MD5-DES3(9),
1853 kRB5-CKSUMTYPE-SHA1-OTHER(10),
1854 kRB5-CKSUMTYPE-HMAC-SHA1-DES3(12),
1855 kRB5-CKSUMTYPE-SHA1(14),
1856 kRB5-CKSUMTYPE-HMAC-SHA1-96-AES-128(15),
1857 kRB5-CKSUMTYPE-HMAC-SHA1-96-AES-256(16),
1858 kRB5-CKSUMTYPE-GSSAPI(32771), -- 0x8003
1859 kRB5-CKSUMTYPE-HMAC-MD5(-138), -- unofficial microsoft number
1860 kRB5-CKSUMTYPE-HMAC-MD5-ENC(-1138) -- even more unofficial
1862 ChecksumTypeSequence ::= SEQUENCE {
1863 dummy [0] ChecksumTypeValues
1866 EncryptionTypeValues ::= INTEGER {
1867 kRB5-ENCTYPE-NULL(0),
1868 kRB5-ENCTYPE-DES-CBC-CRC(1),
1869 kRB5-ENCTYPE-DES-CBC-MD4(2),
1870 kRB5-ENCTYPE-DES-CBC-MD5(3),
1871 kRB5-ENCTYPE-DES3-CBC-MD5(5),
1872 kRB5-ENCTYPE-OLD-DES3-CBC-SHA1(7),
1873 kRB5-ENCTYPE-SIGN-DSA-GENERATE(8),
1874 kRB5-ENCTYPE-ENCRYPT-RSA-PRIV(9),
1875 kRB5-ENCTYPE-ENCRYPT-RSA-PUB(10),
1876 kRB5-ENCTYPE-DES3-CBC-SHA1(16), -- with key derivation
1877 kRB5-ENCTYPE-AES128-CTS-HMAC-SHA1-96(17),
1878 kRB5-ENCTYPE-AES256-CTS-HMAC-SHA1-96(18),
1879 kRB5-ENCTYPE-ARCFOUR-HMAC-MD5(23),
1880 kRB5-ENCTYPE-ARCFOUR-HMAC-MD5-56(24),
1881 kRB5-ENCTYPE-ENCTYPE-PK-CROSS(48),
1882 -- some "old" windows types
1883 kRB5-ENCTYPE-ARCFOUR-MD4(-128),
1884 kRB5-ENCTYPE-ARCFOUR-HMAC-OLD(-133),
1885 kRB5-ENCTYPE-ARCFOUR-HMAC-OLD-EXP(-135),
1886 -- these are for Heimdal internal use
1887 -- kRB5-ENCTYPE-DES-CBC-NONE(-0x1000),
1888 -- kRB5-ENCTYPE-DES3-CBC-NONE(-0x1001),
1889 -- kRB5-ENCTYPE-DES-CFB64-NONE(-0x1002),
1890 -- kRB5-ENCTYPE-DES-PCBC-NONE(-0x1003),
1891 -- kRB5-ENCTYPE-DIGEST-MD5-NONE(-0x1004), - private use, lukeh@padl.com
1892 -- kRB5-ENCTYPE-CRAM-MD5-NONE(-0x1005) - private use, lukeh@padl.com
1893 kRB5-ENCTYPE-DUMMY(-1111)
1895 EncryptionTypeSequence ::= SEQUENCE {
1896 dummy [0] EncryptionTypeValues
1899 KerbErrorDataTypeValues ::= INTEGER {
1900 kERB-AP-ERR-TYPE-SKEW-RECOVERY(2),
1901 kERB-ERR-TYPE-EXTENDED(3)
1903 KerbErrorDataTypeSequence ::= SEQUENCE {
1904 dummy [0] KerbErrorDataTypeValues
1907 PACOptionFlagsValues ::= BIT STRING { -- KerberosFlags
1910 forward-to-full-dc(2),
1911 resource-based-constrained-delegation(3)
1913 PACOptionFlagsSequence ::= SEQUENCE {
1914 dummy [0] PACOptionFlagsValues