3 KERBEROS5 DEFINITIONS ::=
17 AuthorizationDataElement,
48 KRB5SignedPathPrincipals,
56 PA-ClientCanonicalized,
57 PA-ClientCanonicalizedNames,
62 PA-SERVER-REFERRAL-DATA,
63 PA-ServerReferralData,
89 KERB-ARMOR-SERVICE-REPLY
92 NAME-TYPE ::= INTEGER {
93 KRB5_NT_UNKNOWN(0), -- Name type not known
94 KRB5_NT_PRINCIPAL(1), -- Just the name of the principal as in
95 KRB5_NT_SRV_INST(2), -- Service and other unique instance (krbtgt)
96 KRB5_NT_SRV_HST(3), -- Service with host name as instance
97 KRB5_NT_SRV_XHST(4), -- Service with host as remaining components
98 KRB5_NT_UID(5), -- Unique ID
99 KRB5_NT_X500_PRINCIPAL(6), -- PKINIT
100 KRB5_NT_SMTP_NAME(7), -- Name in form of SMTP email name
101 KRB5_NT_ENTERPRISE_PRINCIPAL(10), -- Windows 2000 UPN
102 KRB5_NT_WELLKNOWN(11), -- Wellknown
103 KRB5_NT_SRV_HST_DOMAIN(12), -- Domain based service with host name as instance (RFC5179)
104 KRB5_NT_ENT_PRINCIPAL_AND_ID(-130), -- Windows 2000 UPN and SID
105 KRB5_NT_MS_PRINCIPAL(-128), -- NT 4 style name
106 KRB5_NT_MS_PRINCIPAL_AND_ID(-129), -- NT style name and SID
107 KRB5_NT_NTLM(-1200), -- NTLM name, realm is domain
108 KRB5_NT_X509_GENERAL_NAME(-1201), -- x509 general name (base64 encoded)
109 KRB5_NT_GSS_HOSTBASED_SERVICE(-1202), -- not used; remove
110 KRB5_NT_CACHE_UUID(-1203), -- name is actually a uuid pointing to ccache, use client name in cache
111 KRB5_NT_SRV_HST_NEEDS_CANON (-195894762) -- Internal: indicates that name canonicalization is needed
116 MESSAGE-TYPE ::= INTEGER {
117 krb-as-req(10), -- Request for initial authentication
118 krb-as-rep(11), -- Response to KRB_AS_REQ request
119 krb-tgs-req(12), -- Request for authentication based on TGT
120 krb-tgs-rep(13), -- Response to KRB_TGS_REQ request
121 krb-ap-req(14), -- application request to server
122 krb-ap-rep(15), -- Response to KRB_AP_REQ_MUTUAL
123 krb-safe(20), -- Safe (checksummed) application message
124 krb-priv(21), -- Private (encrypted) application message
125 krb-cred(22), -- Private (encrypted) message to forward credentials
126 krb-error(30) -- Error response
132 PADATA-TYPE ::= INTEGER {
134 KRB5-PADATA-TGS-REQ(1),
135 KRB5-PADATA-AP-REQ(1),
136 KRB5-PADATA-ENC-TIMESTAMP(2),
137 KRB5-PADATA-PW-SALT(3),
138 KRB5-PADATA-ENC-UNIX-TIME(5),
139 KRB5-PADATA-SANDIA-SECUREID(6),
140 KRB5-PADATA-SESAME(7),
141 KRB5-PADATA-OSF-DCE(8),
142 KRB5-PADATA-CYBERSAFE-SECUREID(9),
143 KRB5-PADATA-AFS3-SALT(10),
144 KRB5-PADATA-ETYPE-INFO(11),
145 KRB5-PADATA-SAM-CHALLENGE(12), -- (sam/otp)
146 KRB5-PADATA-SAM-RESPONSE(13), -- (sam/otp)
147 KRB5-PADATA-PK-AS-REQ-19(14), -- (PKINIT-19)
148 KRB5-PADATA-PK-AS-REP-19(15), -- (PKINIT-19)
149 KRB5-PADATA-PK-AS-REQ-WIN(15), -- (PKINIT - old number)
150 KRB5-PADATA-PK-AS-REQ(16), -- (PKINIT-25)
151 KRB5-PADATA-PK-AS-REP(17), -- (PKINIT-25)
152 KRB5-PADATA-PA-PK-OCSP-RESPONSE(18),
153 KRB5-PADATA-ETYPE-INFO2(19),
154 KRB5-PADATA-USE-SPECIFIED-KVNO(20),
155 KRB5-PADATA-SVR-REFERRAL-INFO(20), --- old ms referral number
156 KRB5-PADATA-SAM-REDIRECT(21), -- (sam/otp)
157 KRB5-PADATA-GET-FROM-TYPED-DATA(22),
158 KRB5-PADATA-SAM-ETYPE-INFO(23),
159 KRB5-PADATA-SERVER-REFERRAL(25),
160 KRB5-PADATA-ALT-PRINC(24), -- (crawdad@fnal.gov)
161 KRB5-PADATA-SAM-CHALLENGE2(30), -- (kenh@pobox.com)
162 KRB5-PADATA-SAM-RESPONSE2(31), -- (kenh@pobox.com)
163 KRB5-PA-EXTRA-TGT(41), -- Reserved extra TGT
164 KRB5-PADATA-FX-FAST-ARMOR(71), -- fast armor
165 KRB5-PADATA-TD-KRB-PRINCIPAL(102), -- PrincipalName
166 KRB5-PADATA-PK-TD-TRUSTED-CERTIFIERS(104), -- PKINIT
167 KRB5-PADATA-PK-TD-CERTIFICATE-INDEX(105), -- PKINIT
168 KRB5-PADATA-TD-APP-DEFINED-ERROR(106), -- application specific
169 KRB5-PADATA-TD-REQ-NONCE(107), -- INTEGER
170 KRB5-PADATA-TD-REQ-SEQ(108), -- INTEGER
171 KRB5-PADATA-PA-PAC-REQUEST(128), -- jbrezak@exchange.microsoft.com
172 KRB5-PADATA-FOR-USER(129), -- MS-KILE
173 KRB5-PADATA-FOR-X509-USER(130), -- MS-KILE
174 KRB5-PADATA-FOR-CHECK-DUPS(131), -- MS-KILE
175 KRB5-PADATA-AS-CHECKSUM(132), -- MS-KILE
176 KRB5-PADATA-PK-AS-09-BINDING(132), -- client send this to
177 -- tell KDC that is supports
178 -- the asCheckSum in the
180 KRB5-PADATA-FX-COOKIE(133), -- krb-wg-preauth-framework
181 KRB5-PADATA-AUTHENTICATION-SET(134), -- krb-wg-preauth-framework
182 KRB5-PADATA-AUTH-SET-SELECTED(135), -- krb-wg-preauth-framework
183 KRB5-PADATA-FX-FAST(136), -- krb-wg-preauth-framework
184 KRB5-PADATA-FX-ERROR(137), -- krb-wg-preauth-framework
185 KRB5-PADATA-ENCRYPTED-CHALLENGE(138), -- krb-wg-preauth-framework
186 KRB5-PADATA-OTP-CHALLENGE(141), -- (gareth.richards@rsa.com)
187 KRB5-PADATA-OTP-REQUEST(142), -- (gareth.richards@rsa.com)
188 KBB5-PADATA-OTP-CONFIRM(143), -- (gareth.richards@rsa.com)
189 KRB5-PADATA-OTP-PIN-CHANGE(144), -- (gareth.richards@rsa.com)
190 KRB5-PADATA-EPAK-AS-REQ(145),
191 KRB5-PADATA-EPAK-AS-REP(146),
192 KRB5-PADATA-PKINIT-KX(147), -- krb-wg-anon
193 KRB5-PADATA-PKU2U-NAME(148), -- zhu-pku2u
194 KRB5-PADATA-REQ-ENC-PA-REP(149), --
195 KRB5-PADATA-SUPPORTED-ETYPES(165) -- MS-KILE
198 AUTHDATA-TYPE ::= INTEGER {
199 KRB5-AUTHDATA-IF-RELEVANT(1),
200 KRB5-AUTHDATA-INTENDED-FOR_SERVER(2),
201 KRB5-AUTHDATA-INTENDED-FOR-APPLICATION-CLASS(3),
202 KRB5-AUTHDATA-KDC-ISSUED(4),
203 KRB5-AUTHDATA-AND-OR(5),
204 KRB5-AUTHDATA-MANDATORY-TICKET-EXTENSIONS(6),
205 KRB5-AUTHDATA-IN-TICKET-EXTENSIONS(7),
206 KRB5-AUTHDATA-MANDATORY-FOR-KDC(8),
207 KRB5-AUTHDATA-INITIAL-VERIFIED-CAS(9),
208 KRB5-AUTHDATA-OSF-DCE(64),
209 KRB5-AUTHDATA-SESAME(65),
210 KRB5-AUTHDATA-OSF-DCE-PKI-CERTID(66),
211 KRB5-AUTHDATA-WIN2K-PAC(128),
212 KRB5-AUTHDATA-GSS-API-ETYPE-NEGOTIATION(129), -- Authenticator only
213 KRB5-AUTHDATA-SIGNTICKET-OLDER(-17),
214 KRB5-AUTHDATA-SIGNTICKET-OLD(142),
215 KRB5-AUTHDATA-SIGNTICKET(512)
220 CKSUMTYPE ::= INTEGER {
223 CKSUMTYPE_RSA_MD4(2),
224 CKSUMTYPE_RSA_MD4_DES(3),
225 CKSUMTYPE_DES_MAC(4),
226 CKSUMTYPE_DES_MAC_K(5),
227 CKSUMTYPE_RSA_MD4_DES_K(6),
228 CKSUMTYPE_RSA_MD5(7),
229 CKSUMTYPE_RSA_MD5_DES(8),
230 CKSUMTYPE_RSA_MD5_DES3(9),
231 CKSUMTYPE_SHA1_OTHER(10),
232 CKSUMTYPE_HMAC_SHA1_DES3(12),
234 CKSUMTYPE_HMAC_SHA1_96_AES_128(15),
235 CKSUMTYPE_HMAC_SHA1_96_AES_256(16),
236 CKSUMTYPE_HMAC_SHA256_128_AES128(19),
237 CKSUMTYPE_HMAC_SHA384_192_AES256(20),
238 CKSUMTYPE_GSSAPI(0x8003),
239 CKSUMTYPE_HMAC_MD5(-138), -- unofficial microsoft number
240 CKSUMTYPE_HMAC_MD5_ENC(-1138) -- even more unofficial
244 ENCTYPE ::= INTEGER {
245 KRB5_ENCTYPE_NULL(0),
246 KRB5_ENCTYPE_DES_CBC_CRC(1),
247 KRB5_ENCTYPE_DES_CBC_MD4(2),
248 KRB5_ENCTYPE_DES_CBC_MD5(3),
249 KRB5_ENCTYPE_DES3_CBC_MD5(5),
250 KRB5_ENCTYPE_OLD_DES3_CBC_SHA1(7),
251 KRB5_ENCTYPE_SIGN_DSA_GENERATE(8),
252 KRB5_ENCTYPE_ENCRYPT_RSA_PRIV(9),
253 KRB5_ENCTYPE_ENCRYPT_RSA_PUB(10),
254 KRB5_ENCTYPE_DES3_CBC_SHA1(16), -- with key derivation
255 KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96(17),
256 KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96(18),
257 KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128(19),
258 KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192(20),
259 KRB5_ENCTYPE_ARCFOUR_HMAC_MD5(23),
260 KRB5_ENCTYPE_ARCFOUR_HMAC_MD5_56(24),
261 KRB5_ENCTYPE_ENCTYPE_PK_CROSS(48),
262 -- some "old" windows types
263 KRB5_ENCTYPE_ARCFOUR_MD4(-128),
264 KRB5_ENCTYPE_ARCFOUR_HMAC_OLD(-133),
265 KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP(-135),
266 -- these are for Heimdal internal use
267 KRB5_ENCTYPE_DES_CBC_NONE(-0x1000),
268 KRB5_ENCTYPE_DES3_CBC_NONE(-0x1001),
269 KRB5_ENCTYPE_DES_CFB64_NONE(-0x1002),
270 KRB5_ENCTYPE_DES_PCBC_NONE(-0x1003),
271 KRB5_ENCTYPE_DIGEST_MD5_NONE(-0x1004), -- private use, lukeh@padl.com
272 KRB5_ENCTYPE_CRAM_MD5_NONE(-0x1005) -- private use, lukeh@padl.com
278 -- this is sugar to make something ASN1 does not have: unsigned
280 krb5uint32 ::= INTEGER (0..4294967295)
281 krb5int32 ::= INTEGER (-2147483648..2147483647)
283 KerberosString ::= GeneralString
285 Realm ::= GeneralString
286 PrincipalName ::= SEQUENCE {
287 name-type[0] NAME-TYPE,
288 name-string[1] SEQUENCE OF GeneralString
291 -- this is not part of RFC1510
292 Principal ::= SEQUENCE {
293 name[0] PrincipalName,
297 Principals ::= SEQUENCE OF Principal
299 HostAddress ::= SEQUENCE {
300 addr-type[0] krb5int32,
301 address[1] OCTET STRING
304 -- This is from RFC1510.
306 -- HostAddresses ::= SEQUENCE OF SEQUENCE {
307 -- addr-type[0] krb5int32,
308 -- address[1] OCTET STRING
311 -- This seems much better.
312 HostAddresses ::= SEQUENCE OF HostAddress
315 KerberosTime ::= GeneralizedTime -- Specifying UTC time zone (Z)
317 AuthorizationDataElement ::= SEQUENCE {
318 ad-type[0] krb5int32,
319 ad-data[1] OCTET STRING
322 AuthorizationData ::= SEQUENCE OF AuthorizationDataElement
324 APOptions ::= BIT STRING {
330 TicketFlags ::= BIT STRING {
343 transited-policy-checked(12),
349 KDCOptions ::= BIT STRING {
358 constrained-delegation(14), -- ms extension (aka cname-in-addl-tkt)
360 request-anonymous(16),
361 disable-transited-check(26),
368 LR-TYPE ::= INTEGER {
369 LR_NONE(0), -- no information
370 LR_INITIAL_TGT(1), -- last initial TGT request
371 LR_INITIAL(2), -- last initial request
372 LR_ISSUE_USE_TGT(3), -- time of newest TGT used
373 LR_RENEWAL(4), -- time of last renewal
374 LR_REQUEST(5), -- time of last request (of any type)
375 LR_PW_EXPTIME(6), -- expiration time of password
376 LR_ACCT_EXPTIME(7) -- expiration time of account
379 LastReq ::= SEQUENCE OF SEQUENCE {
381 lr-value[1] KerberosTime
385 EncryptedData ::= SEQUENCE {
386 etype[0] ENCTYPE, -- EncryptionType
387 kvno[1] krb5int32 OPTIONAL,
388 cipher[2] OCTET STRING -- ciphertext
391 EncryptionKey ::= SEQUENCE {
392 keytype[0] krb5int32,
393 keyvalue[1] OCTET STRING
396 -- encoded Transited field
397 TransitedEncoding ::= SEQUENCE {
398 tr-type[0] krb5int32, -- must be registered
399 contents[1] OCTET STRING
402 Ticket ::= [APPLICATION 1] SEQUENCE {
403 tkt-vno[0] krb5int32,
405 sname[2] PrincipalName,
406 enc-part[3] EncryptedData
408 -- Encrypted part of ticket
409 EncTicketPart ::= [APPLICATION 3] SEQUENCE {
410 flags[0] TicketFlags,
411 key[1] EncryptionKey,
413 cname[3] PrincipalName,
414 transited[4] TransitedEncoding,
415 authtime[5] KerberosTime,
416 starttime[6] KerberosTime OPTIONAL,
417 endtime[7] KerberosTime,
418 renew-till[8] KerberosTime OPTIONAL,
419 caddr[9] HostAddresses OPTIONAL,
420 authorization-data[10] AuthorizationData OPTIONAL
423 Checksum ::= SEQUENCE {
424 cksumtype[0] CKSUMTYPE,
425 checksum[1] OCTET STRING
428 Authenticator ::= [APPLICATION 2] SEQUENCE {
429 authenticator-vno[0] krb5int32,
431 cname[2] PrincipalName,
432 cksum[3] Checksum OPTIONAL,
434 ctime[5] KerberosTime,
435 subkey[6] EncryptionKey OPTIONAL,
436 seq-number[7] krb5uint32 OPTIONAL,
437 authorization-data[8] AuthorizationData OPTIONAL
440 PA-DATA ::= SEQUENCE {
441 -- might be encoded AP-REQ
442 padata-type[1] PADATA-TYPE,
443 padata-value[2] OCTET STRING
446 ETYPE-INFO-ENTRY ::= SEQUENCE {
448 salt[1] OCTET STRING OPTIONAL,
449 salttype[2] krb5int32 OPTIONAL
452 ETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
454 ETYPE-INFO2-ENTRY ::= SEQUENCE {
456 salt[1] KerberosString OPTIONAL,
457 s2kparams[2] OCTET STRING OPTIONAL
460 ETYPE-INFO2 ::= SEQUENCE SIZE (1..MAX) OF ETYPE-INFO2-ENTRY
462 METHOD-DATA ::= SEQUENCE OF PA-DATA
464 TypedData ::= SEQUENCE {
465 data-type[0] krb5int32,
466 data-value[1] OCTET STRING OPTIONAL
469 TYPED-DATA ::= SEQUENCE SIZE (1..MAX) OF TypedData
471 KDC-REQ-BODY ::= SEQUENCE {
472 kdc-options[0] KDCOptions,
473 cname[1] PrincipalName OPTIONAL, -- Used only in AS-REQ
474 realm[2] Realm, -- Server's realm
475 -- Also client's in AS-REQ
476 sname[3] PrincipalName OPTIONAL,
477 from[4] KerberosTime OPTIONAL,
478 till[5] KerberosTime OPTIONAL,
479 rtime[6] KerberosTime OPTIONAL,
481 etype[8] SEQUENCE OF ENCTYPE, -- EncryptionType,
482 -- in preference order
483 addresses[9] HostAddresses OPTIONAL,
484 enc-authorization-data[10] EncryptedData OPTIONAL,
485 -- Encrypted AuthorizationData encoding
486 additional-tickets[11] SEQUENCE OF Ticket OPTIONAL
489 KDC-REQ ::= SEQUENCE {
491 msg-type[2] MESSAGE-TYPE,
492 padata[3] METHOD-DATA OPTIONAL,
493 req-body[4] KDC-REQ-BODY
496 AS-REQ ::= [APPLICATION 10] KDC-REQ
497 TGS-REQ ::= [APPLICATION 12] KDC-REQ
499 -- padata-type ::= PA-ENC-TIMESTAMP
500 -- padata-value ::= EncryptedData - PA-ENC-TS-ENC
502 PA-ENC-TS-ENC ::= SEQUENCE {
503 patimestamp[0] KerberosTime, -- client's time
504 pausec[1] krb5int32 OPTIONAL
507 -- draft-brezak-win2k-krb-authz-01
508 PA-PAC-REQUEST ::= SEQUENCE {
509 include-pac[0] BOOLEAN -- Indicates whether a PAC
510 -- should be included or not
513 -- PacketCable provisioning server location, PKT-SP-SEC-I09-030728.pdf
514 PROV-SRV-LOCATION ::= GeneralString
516 KDC-REP ::= SEQUENCE {
518 msg-type[1] MESSAGE-TYPE,
519 padata[2] METHOD-DATA OPTIONAL,
521 cname[4] PrincipalName,
523 enc-part[6] EncryptedData
526 AS-REP ::= [APPLICATION 11] KDC-REP
527 TGS-REP ::= [APPLICATION 13] KDC-REP
529 EncKDCRepPart ::= SEQUENCE {
530 key[0] EncryptionKey,
533 key-expiration[3] KerberosTime OPTIONAL,
534 flags[4] TicketFlags,
535 authtime[5] KerberosTime,
536 starttime[6] KerberosTime OPTIONAL,
537 endtime[7] KerberosTime,
538 renew-till[8] KerberosTime OPTIONAL,
540 sname[10] PrincipalName,
541 caddr[11] HostAddresses OPTIONAL,
542 encrypted-pa-data[12] METHOD-DATA OPTIONAL
545 EncASRepPart ::= [APPLICATION 25] EncKDCRepPart
546 EncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
548 AP-REQ ::= [APPLICATION 14] SEQUENCE {
550 msg-type[1] MESSAGE-TYPE,
551 ap-options[2] APOptions,
553 authenticator[4] EncryptedData
556 AP-REP ::= [APPLICATION 15] SEQUENCE {
558 msg-type[1] MESSAGE-TYPE,
559 enc-part[2] EncryptedData
562 EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
563 ctime[0] KerberosTime,
565 subkey[2] EncryptionKey OPTIONAL,
566 seq-number[3] krb5uint32 OPTIONAL
569 KRB-SAFE-BODY ::= SEQUENCE {
570 user-data[0] OCTET STRING,
571 timestamp[1] KerberosTime OPTIONAL,
572 usec[2] krb5int32 OPTIONAL,
573 seq-number[3] krb5uint32 OPTIONAL,
574 s-address[4] HostAddress OPTIONAL,
575 r-address[5] HostAddress OPTIONAL
578 KRB-SAFE ::= [APPLICATION 20] SEQUENCE {
580 msg-type[1] MESSAGE-TYPE,
581 safe-body[2] KRB-SAFE-BODY,
585 KRB-PRIV ::= [APPLICATION 21] SEQUENCE {
587 msg-type[1] MESSAGE-TYPE,
588 enc-part[3] EncryptedData
590 EncKrbPrivPart ::= [APPLICATION 28] SEQUENCE {
591 user-data[0] OCTET STRING,
592 timestamp[1] KerberosTime OPTIONAL,
593 usec[2] krb5int32 OPTIONAL,
594 seq-number[3] krb5uint32 OPTIONAL,
595 s-address[4] HostAddress OPTIONAL, -- sender's addr
596 r-address[5] HostAddress OPTIONAL -- recip's addr
599 KRB-CRED ::= [APPLICATION 22] SEQUENCE {
601 msg-type[1] MESSAGE-TYPE, -- KRB_CRED
602 tickets[2] SEQUENCE OF Ticket,
603 enc-part[3] EncryptedData
606 KrbCredInfo ::= SEQUENCE {
607 key[0] EncryptionKey,
608 prealm[1] Realm OPTIONAL,
609 pname[2] PrincipalName OPTIONAL,
610 flags[3] TicketFlags OPTIONAL,
611 authtime[4] KerberosTime OPTIONAL,
612 starttime[5] KerberosTime OPTIONAL,
613 endtime[6] KerberosTime OPTIONAL,
614 renew-till[7] KerberosTime OPTIONAL,
615 srealm[8] Realm OPTIONAL,
616 sname[9] PrincipalName OPTIONAL,
617 caddr[10] HostAddresses OPTIONAL
620 EncKrbCredPart ::= [APPLICATION 29] SEQUENCE {
621 ticket-info[0] SEQUENCE OF KrbCredInfo,
622 nonce[1] krb5int32 OPTIONAL,
623 timestamp[2] KerberosTime OPTIONAL,
624 usec[3] krb5int32 OPTIONAL,
625 s-address[4] HostAddress OPTIONAL,
626 r-address[5] HostAddress OPTIONAL
629 KRB-ERROR ::= [APPLICATION 30] SEQUENCE {
631 msg-type[1] MESSAGE-TYPE,
632 ctime[2] KerberosTime OPTIONAL,
633 cusec[3] krb5int32 OPTIONAL,
634 stime[4] KerberosTime,
636 error-code[6] krb5int32,
637 crealm[7] Realm OPTIONAL,
638 cname[8] PrincipalName OPTIONAL,
639 realm[9] Realm, -- Correct realm
640 sname[10] PrincipalName, -- Correct name
641 e-text[11] GeneralString OPTIONAL,
642 e-data[12] OCTET STRING OPTIONAL
645 ChangePasswdDataMS ::= SEQUENCE {
646 newpasswd[0] OCTET STRING,
647 targname[1] PrincipalName OPTIONAL,
648 targrealm[2] Realm OPTIONAL
651 EtypeList ::= SEQUENCE OF ENCTYPE
652 -- the client's proposed enctype list in
653 -- decreasing preference order, favorite choice first
655 krb5-pvno krb5int32 ::= 5 -- current Kerberos protocol version number
657 -- transited encodings
659 DOMAIN-X500-COMPRESS krb5int32 ::= 1
661 -- authorization data primitives
663 AD-IF-RELEVANT ::= AuthorizationData
665 AD-KDCIssued ::= SEQUENCE {
666 ad-checksum[0] Checksum,
667 i-realm[1] Realm OPTIONAL,
668 i-sname[2] PrincipalName OPTIONAL,
669 elements[3] AuthorizationData
672 AD-AND-OR ::= SEQUENCE {
673 condition-count[0] INTEGER,
674 elements[1] AuthorizationData
677 AD-MANDATORY-FOR-KDC ::= AuthorizationData
679 -- PA-SAM-RESPONSE-2/PA-SAM-RESPONSE-2
681 PA-SAM-TYPE ::= INTEGER {
682 PA_SAM_TYPE_ENIGMA(1), -- Enigma Logic
683 PA_SAM_TYPE_DIGI_PATH(2), -- Digital Pathways
684 PA_SAM_TYPE_SKEY_K0(3), -- S/key where KDC has key 0
685 PA_SAM_TYPE_SKEY(4), -- Traditional S/Key
686 PA_SAM_TYPE_SECURID(5), -- Security Dynamics
687 PA_SAM_TYPE_CRYPTOCARD(6) -- CRYPTOCard
690 PA-SAM-REDIRECT ::= HostAddresses
692 SAMFlags ::= BIT STRING {
694 send-encrypted-sad(1),
695 must-pk-encrypt-sad(2)
698 PA-SAM-CHALLENGE-2-BODY ::= SEQUENCE {
699 sam-type[0] krb5int32,
700 sam-flags[1] SAMFlags,
701 sam-type-name[2] GeneralString OPTIONAL,
702 sam-track-id[3] GeneralString OPTIONAL,
703 sam-challenge-label[4] GeneralString OPTIONAL,
704 sam-challenge[5] GeneralString OPTIONAL,
705 sam-response-prompt[6] GeneralString OPTIONAL,
706 sam-pk-for-sad[7] EncryptionKey OPTIONAL,
707 sam-nonce[8] krb5int32,
708 sam-etype[9] krb5int32,
712 PA-SAM-CHALLENGE-2 ::= SEQUENCE {
713 sam-body[0] PA-SAM-CHALLENGE-2-BODY,
714 sam-cksum[1] SEQUENCE OF Checksum, -- (1..MAX)
718 PA-SAM-RESPONSE-2 ::= SEQUENCE {
719 sam-type[0] krb5int32,
720 sam-flags[1] SAMFlags,
721 sam-track-id[2] GeneralString OPTIONAL,
722 sam-enc-nonce-or-sad[3] EncryptedData, -- PA-ENC-SAM-RESPONSE-ENC
723 sam-nonce[4] krb5int32,
727 PA-ENC-SAM-RESPONSE-ENC ::= SEQUENCE {
728 sam-nonce[0] krb5int32,
729 sam-sad[1] GeneralString OPTIONAL,
733 PA-S4U2Self ::= SEQUENCE {
734 name[0] PrincipalName,
737 auth[3] GeneralString
740 -- never encoded on the wire, just used to checksum over
741 KRB5SignedPathData ::= SEQUENCE {
742 client[0] Principal OPTIONAL,
743 authtime[1] KerberosTime,
744 delegated[2] Principals OPTIONAL,
745 method_data[3] METHOD-DATA OPTIONAL
748 KRB5SignedPath ::= SEQUENCE {
749 -- DERcoded KRB5SignedPathData
750 -- krbtgt key (etype), KeyUsage = XXX
753 -- srvs delegated though
754 delegated[2] Principals OPTIONAL,
755 method_data[3] METHOD-DATA OPTIONAL
758 AD-LoginAlias ::= SEQUENCE { -- ad-type number TBD --
759 login-alias [0] PrincipalName,
760 checksum [1] Checksum
764 PA-SvrReferralData ::= SEQUENCE {
765 referred-name [1] PrincipalName OPTIONAL,
766 referred-realm [0] Realm
769 PA-SERVER-REFERRAL-DATA ::= EncryptedData
771 PA-ServerReferralData ::= SEQUENCE {
772 referred-realm [0] Realm OPTIONAL,
773 true-principal-name [1] PrincipalName OPTIONAL,
774 requested-principal-name [2] PrincipalName OPTIONAL,
775 referral-valid-until [3] KerberosTime OPTIONAL,
779 FastOptions ::= BIT STRING {
781 hide-client-names(1),
782 kdc-follow-referrals(16)
785 KrbFastReq ::= SEQUENCE {
786 fast-options [0] FastOptions,
787 padata [1] METHOD-DATA,
788 req-body [2] KDC-REQ-BODY,
792 KrbFastArmor ::= SEQUENCE {
793 armor-type [0] krb5int32,
794 armor-value [1] OCTET STRING,
798 KrbFastArmoredReq ::= SEQUENCE {
799 armor [0] KrbFastArmor OPTIONAL,
800 req-checksum [1] Checksum,
801 enc-fast-req [2] EncryptedData -- KrbFastReq --
804 PA-FX-FAST-REQUEST ::= CHOICE {
805 armored-data [0] KrbFastArmoredReq,
809 KrbFastFinished ::= SEQUENCE {
810 timestamp [0] KerberosTime,
813 cname [3] PrincipalName,
814 ticket-checksum [4] Checksum,
818 KrbFastResponse ::= SEQUENCE {
819 padata [0] METHOD-DATA,
820 strengthen-key [1] EncryptionKey OPTIONAL,
821 finished [2] KrbFastFinished OPTIONAL,
822 nonce [3] krb5uint32,
826 KrbFastArmoredRep ::= SEQUENCE {
827 enc-fast-rep [0] EncryptedData, -- KrbFastResponse --
831 PA-FX-FAST-REPLY ::= CHOICE {
832 armored-data [0] KrbFastArmoredRep,
836 KDCFastFlags ::= BIT STRING {
839 reply_key_replaced(2),
843 -- KDCFastState is stored in FX_COOKIE
844 KDCFastState ::= SEQUENCE {
845 flags [0] KDCFastFlags,
846 expiration [1] GeneralizedTime,
847 fast-state [2] METHOD-DATA,
848 expected-pa-types [3] SEQUENCE OF PADATA-TYPE OPTIONAL
851 KDCFastCookie ::= SEQUENCE {
852 version [0] UTF8String,
853 cookie [1] EncryptedData
856 KDC-PROXY-MESSAGE ::= SEQUENCE {
857 kerb-message [0] OCTET STRING,
858 target-domain [1] Realm OPTIONAL,
859 dclocator-hint [2] INTEGER OPTIONAL
862 -- these messages are used in the GSSCred communication and is not part of Kerberos propper
864 KERB-TIMES ::= SEQUENCE {
865 authtime [0] KerberosTime,
866 starttime [1] KerberosTime,
867 endtime [2] KerberosTime,
868 renew_till [3] KerberosTime
871 KERB-CRED ::= SEQUENCE {
872 client [0] Principal,
873 server [1] Principal,
874 keyblock [2] EncryptionKey,
875 times [3] KERB-TIMES,
876 ticket [4] OCTET STRING,
877 authdata [5] OCTET STRING,
878 addresses [6] HostAddresses,
879 flags [7] TicketFlags
882 KERB-TGS-REQ-IN ::= SEQUENCE {
883 cache [0] OCTET STRING SIZE (16),
884 addrs [1] HostAddresses,
885 flags [2] krb5uint32,
886 imp [3] Principal OPTIONAL,
887 ticket [4] OCTET STRING OPTIONAL,
888 in_cred [5] KERB-CRED,
889 krbtgt [6] KERB-CRED,
890 padata [7] METHOD-DATA
893 KERB-TGS-REQ-OUT ::= SEQUENCE {
894 subkey [0] EncryptionKey OPTIONAL,
900 KERB-TGS-REP-IN ::= SEQUENCE {
901 cache [0] OCTET STRING SIZE (16),
902 subkey [1] EncryptionKey OPTIONAL,
903 in_cred [2] KERB-CRED,
907 KERB-TGS-REP-OUT ::= SEQUENCE {
908 cache [0] OCTET STRING SIZE (16),
910 subkey [2] EncryptionKey
913 KERB-ARMOR-SERVICE-REPLY ::= SEQUENCE {
914 armor [0] KrbFastArmor,
915 armor-key [1] EncryptionKey
921 -- etags -r '/\([A-Za-z][-A-Za-z0-9]*\).*::=/\1/' k5.asn1