xref: /freebsd/crypto/heimdal/lib/asn1/krb5.asn1 (revision 6a068746777241722b2b32c5d0bc443a2a64d80b)
1*ae771770SStanislav Sedov-- $Id$
2*ae771770SStanislav Sedov
3*ae771770SStanislav SedovKERBEROS5 DEFINITIONS ::=
4*ae771770SStanislav SedovBEGIN
5*ae771770SStanislav SedovEXPORTS
6*ae771770SStanislav Sedov	AD-AND-OR,
7*ae771770SStanislav Sedov	AD-IF-RELEVANT,
8*ae771770SStanislav Sedov	AD-KDCIssued,
9*ae771770SStanislav Sedov	AD-LoginAlias,
10*ae771770SStanislav Sedov	AP-REP,
11*ae771770SStanislav Sedov	AP-REQ,
12*ae771770SStanislav Sedov	AS-REP,
13*ae771770SStanislav Sedov	AS-REQ,
14*ae771770SStanislav Sedov	AUTHDATA-TYPE,
15*ae771770SStanislav Sedov	Authenticator,
16*ae771770SStanislav Sedov	AuthorizationData,
17*ae771770SStanislav Sedov	AuthorizationDataElement,
18*ae771770SStanislav Sedov	CKSUMTYPE,
19*ae771770SStanislav Sedov	ChangePasswdDataMS,
20*ae771770SStanislav Sedov	Checksum,
21*ae771770SStanislav Sedov	ENCTYPE,
22*ae771770SStanislav Sedov	ETYPE-INFO,
23*ae771770SStanislav Sedov	ETYPE-INFO-ENTRY,
24*ae771770SStanislav Sedov	ETYPE-INFO2,
25*ae771770SStanislav Sedov	ETYPE-INFO2-ENTRY,
26*ae771770SStanislav Sedov	EncAPRepPart,
27*ae771770SStanislav Sedov	EncASRepPart,
28*ae771770SStanislav Sedov	EncKDCRepPart,
29*ae771770SStanislav Sedov	EncKrbCredPart,
30*ae771770SStanislav Sedov	EncKrbPrivPart,
31*ae771770SStanislav Sedov	EncTGSRepPart,
32*ae771770SStanislav Sedov	EncTicketPart,
33*ae771770SStanislav Sedov	EncryptedData,
34*ae771770SStanislav Sedov	EncryptionKey,
35*ae771770SStanislav Sedov	EtypeList,
36*ae771770SStanislav Sedov	HostAddress,
37*ae771770SStanislav Sedov	HostAddresses,
38*ae771770SStanislav Sedov	KDC-REQ-BODY,
39*ae771770SStanislav Sedov	KDCOptions,
40*ae771770SStanislav Sedov	KDC-REP,
41*ae771770SStanislav Sedov	KRB-CRED,
42*ae771770SStanislav Sedov	KRB-ERROR,
43*ae771770SStanislav Sedov	KRB-PRIV,
44*ae771770SStanislav Sedov	KRB-SAFE,
45*ae771770SStanislav Sedov	KRB-SAFE-BODY,
46*ae771770SStanislav Sedov	KRB5SignedPath,
47*ae771770SStanislav Sedov	KRB5SignedPathData,
48*ae771770SStanislav Sedov	KRB5SignedPathPrincipals,
49*ae771770SStanislav Sedov	KerberosString,
50*ae771770SStanislav Sedov	KerberosTime,
51*ae771770SStanislav Sedov	KrbCredInfo,
52*ae771770SStanislav Sedov	LR-TYPE,
53*ae771770SStanislav Sedov	LastReq,
54*ae771770SStanislav Sedov	METHOD-DATA,
55*ae771770SStanislav Sedov	NAME-TYPE,
56*ae771770SStanislav Sedov	PA-ClientCanonicalized,
57*ae771770SStanislav Sedov	PA-ClientCanonicalizedNames,
58*ae771770SStanislav Sedov	PA-DATA,
59*ae771770SStanislav Sedov	PA-ENC-TS-ENC,
60*ae771770SStanislav Sedov	PA-PAC-REQUEST,
61*ae771770SStanislav Sedov	PA-S4U2Self,
62*ae771770SStanislav Sedov	PA-SERVER-REFERRAL-DATA,
63*ae771770SStanislav Sedov	PA-ServerReferralData,
64*ae771770SStanislav Sedov	PA-SvrReferralData,
65*ae771770SStanislav Sedov	PADATA-TYPE,
66*ae771770SStanislav Sedov	Principal,
67*ae771770SStanislav Sedov	PrincipalName,
68*ae771770SStanislav Sedov	Principals,
69*ae771770SStanislav Sedov	Realm,
70*ae771770SStanislav Sedov	TGS-REP,
71*ae771770SStanislav Sedov	TGS-REQ,
72*ae771770SStanislav Sedov	Ticket,
73*ae771770SStanislav Sedov	TicketFlags,
74*ae771770SStanislav Sedov	TransitedEncoding,
75*ae771770SStanislav Sedov	TypedData
76*ae771770SStanislav Sedov	;
77*ae771770SStanislav Sedov
78*ae771770SStanislav SedovNAME-TYPE ::= INTEGER {
79*ae771770SStanislav Sedov	KRB5_NT_UNKNOWN(0),	-- Name type not known
80*ae771770SStanislav Sedov	KRB5_NT_PRINCIPAL(1),	-- Just the name of the principal as in
81*ae771770SStanislav Sedov	KRB5_NT_SRV_INST(2),	-- Service and other unique instance (krbtgt)
82*ae771770SStanislav Sedov	KRB5_NT_SRV_HST(3),	-- Service with host name as instance
83*ae771770SStanislav Sedov	KRB5_NT_SRV_XHST(4),	-- Service with host as remaining components
84*ae771770SStanislav Sedov	KRB5_NT_UID(5),		-- Unique ID
85*ae771770SStanislav Sedov	KRB5_NT_X500_PRINCIPAL(6), -- PKINIT
86*ae771770SStanislav Sedov	KRB5_NT_SMTP_NAME(7),	-- Name in form of SMTP email name
87*ae771770SStanislav Sedov	KRB5_NT_ENTERPRISE_PRINCIPAL(10), -- Windows 2000 UPN
88*ae771770SStanislav Sedov	KRB5_NT_WELLKNOWN(11),	-- Wellknown
89*ae771770SStanislav Sedov	KRB5_NT_ENT_PRINCIPAL_AND_ID(-130), -- Windows 2000 UPN and SID
90*ae771770SStanislav Sedov	KRB5_NT_MS_PRINCIPAL(-128), -- NT 4 style name
91*ae771770SStanislav Sedov	KRB5_NT_MS_PRINCIPAL_AND_ID(-129), -- NT style name and SID
92*ae771770SStanislav Sedov	KRB5_NT_NTLM(-1200) -- NTLM name, realm is domain
93*ae771770SStanislav Sedov}
94*ae771770SStanislav Sedov
95*ae771770SStanislav Sedov-- message types
96*ae771770SStanislav Sedov
97*ae771770SStanislav SedovMESSAGE-TYPE ::= INTEGER {
98*ae771770SStanislav Sedov	krb-as-req(10), -- Request for initial authentication
99*ae771770SStanislav Sedov	krb-as-rep(11), -- Response to KRB_AS_REQ request
100*ae771770SStanislav Sedov	krb-tgs-req(12), -- Request for authentication based on TGT
101*ae771770SStanislav Sedov	krb-tgs-rep(13), -- Response to KRB_TGS_REQ request
102*ae771770SStanislav Sedov	krb-ap-req(14), -- application request to server
103*ae771770SStanislav Sedov	krb-ap-rep(15), -- Response to KRB_AP_REQ_MUTUAL
104*ae771770SStanislav Sedov	krb-safe(20), -- Safe (checksummed) application message
105*ae771770SStanislav Sedov	krb-priv(21), -- Private (encrypted) application message
106*ae771770SStanislav Sedov	krb-cred(22), -- Private (encrypted) message to forward credentials
107*ae771770SStanislav Sedov	krb-error(30) -- Error response
108*ae771770SStanislav Sedov}
109*ae771770SStanislav Sedov
110*ae771770SStanislav Sedov
111*ae771770SStanislav Sedov-- pa-data types
112*ae771770SStanislav Sedov
113*ae771770SStanislav SedovPADATA-TYPE ::= INTEGER {
114*ae771770SStanislav Sedov	KRB5-PADATA-NONE(0),
115*ae771770SStanislav Sedov	KRB5-PADATA-TGS-REQ(1),
116*ae771770SStanislav Sedov	KRB5-PADATA-AP-REQ(1),
117*ae771770SStanislav Sedov	KRB5-PADATA-ENC-TIMESTAMP(2),
118*ae771770SStanislav Sedov	KRB5-PADATA-PW-SALT(3),
119*ae771770SStanislav Sedov	KRB5-PADATA-ENC-UNIX-TIME(5),
120*ae771770SStanislav Sedov	KRB5-PADATA-SANDIA-SECUREID(6),
121*ae771770SStanislav Sedov	KRB5-PADATA-SESAME(7),
122*ae771770SStanislav Sedov	KRB5-PADATA-OSF-DCE(8),
123*ae771770SStanislav Sedov	KRB5-PADATA-CYBERSAFE-SECUREID(9),
124*ae771770SStanislav Sedov	KRB5-PADATA-AFS3-SALT(10),
125*ae771770SStanislav Sedov	KRB5-PADATA-ETYPE-INFO(11),
126*ae771770SStanislav Sedov	KRB5-PADATA-SAM-CHALLENGE(12), -- (sam/otp)
127*ae771770SStanislav Sedov	KRB5-PADATA-SAM-RESPONSE(13), -- (sam/otp)
128*ae771770SStanislav Sedov	KRB5-PADATA-PK-AS-REQ-19(14), -- (PKINIT-19)
129*ae771770SStanislav Sedov	KRB5-PADATA-PK-AS-REP-19(15), -- (PKINIT-19)
130*ae771770SStanislav Sedov	KRB5-PADATA-PK-AS-REQ-WIN(15), -- (PKINIT - old number)
131*ae771770SStanislav Sedov	KRB5-PADATA-PK-AS-REQ(16), -- (PKINIT-25)
132*ae771770SStanislav Sedov	KRB5-PADATA-PK-AS-REP(17), -- (PKINIT-25)
133*ae771770SStanislav Sedov	KRB5-PADATA-PA-PK-OCSP-RESPONSE(18),
134*ae771770SStanislav Sedov	KRB5-PADATA-ETYPE-INFO2(19),
135*ae771770SStanislav Sedov	KRB5-PADATA-USE-SPECIFIED-KVNO(20),
136*ae771770SStanislav Sedov	KRB5-PADATA-SVR-REFERRAL-INFO(20), --- old ms referral number
137*ae771770SStanislav Sedov	KRB5-PADATA-SAM-REDIRECT(21), -- (sam/otp)
138*ae771770SStanislav Sedov	KRB5-PADATA-GET-FROM-TYPED-DATA(22),
139*ae771770SStanislav Sedov	KRB5-PADATA-SAM-ETYPE-INFO(23),
140*ae771770SStanislav Sedov	KRB5-PADATA-SERVER-REFERRAL(25),
141*ae771770SStanislav Sedov	KRB5-PADATA-ALT-PRINC(24),		-- (crawdad@fnal.gov)
142*ae771770SStanislav Sedov	KRB5-PADATA-SAM-CHALLENGE2(30),		-- (kenh@pobox.com)
143*ae771770SStanislav Sedov	KRB5-PADATA-SAM-RESPONSE2(31),		-- (kenh@pobox.com)
144*ae771770SStanislav Sedov	KRB5-PA-EXTRA-TGT(41),			-- Reserved extra TGT
145*ae771770SStanislav Sedov	KRB5-PADATA-TD-KRB-PRINCIPAL(102),	-- PrincipalName
146*ae771770SStanislav Sedov	KRB5-PADATA-PK-TD-TRUSTED-CERTIFIERS(104), -- PKINIT
147*ae771770SStanislav Sedov	KRB5-PADATA-PK-TD-CERTIFICATE-INDEX(105), -- PKINIT
148*ae771770SStanislav Sedov	KRB5-PADATA-TD-APP-DEFINED-ERROR(106),	-- application specific
149*ae771770SStanislav Sedov	KRB5-PADATA-TD-REQ-NONCE(107),		-- INTEGER
150*ae771770SStanislav Sedov	KRB5-PADATA-TD-REQ-SEQ(108),		-- INTEGER
151*ae771770SStanislav Sedov	KRB5-PADATA-PA-PAC-REQUEST(128),	-- jbrezak@exchange.microsoft.com
152*ae771770SStanislav Sedov	KRB5-PADATA-FOR-USER(129),		-- MS-KILE
153*ae771770SStanislav Sedov	KRB5-PADATA-FOR-X509-USER(130),		-- MS-KILE
154*ae771770SStanislav Sedov	KRB5-PADATA-FOR-CHECK-DUPS(131),	-- MS-KILE
155*ae771770SStanislav Sedov	KRB5-PADATA-AS-CHECKSUM(132),		-- MS-KILE
156*ae771770SStanislav Sedov	KRB5-PADATA-PK-AS-09-BINDING(132),	-- client send this to
157*ae771770SStanislav Sedov						-- tell KDC that is supports
158*ae771770SStanislav Sedov						-- the asCheckSum in the
159*ae771770SStanislav Sedov						--  PK-AS-REP
160*ae771770SStanislav Sedov	KRB5-PADATA-CLIENT-CANONICALIZED(133),	-- referals
161*ae771770SStanislav Sedov	KRB5-PADATA-FX-COOKIE(133),		-- krb-wg-preauth-framework
162*ae771770SStanislav Sedov	KRB5-PADATA-AUTHENTICATION-SET(134),	-- krb-wg-preauth-framework
163*ae771770SStanislav Sedov	KRB5-PADATA-AUTH-SET-SELECTED(135),	-- krb-wg-preauth-framework
164*ae771770SStanislav Sedov	KRB5-PADATA-FX-FAST(136),		-- krb-wg-preauth-framework
165*ae771770SStanislav Sedov	KRB5-PADATA-FX-ERROR(137),		-- krb-wg-preauth-framework
166*ae771770SStanislav Sedov	KRB5-PADATA-ENCRYPTED-CHALLENGE(138),	-- krb-wg-preauth-framework
167*ae771770SStanislav Sedov	KRB5-PADATA-OTP-CHALLENGE(141),		-- (gareth.richards@rsa.com)
168*ae771770SStanislav Sedov	KRB5-PADATA-OTP-REQUEST(142),		-- (gareth.richards@rsa.com)
169*ae771770SStanislav Sedov	KBB5-PADATA-OTP-CONFIRM(143),		-- (gareth.richards@rsa.com)
170*ae771770SStanislav Sedov	KRB5-PADATA-OTP-PIN-CHANGE(144),	-- (gareth.richards@rsa.com)
171*ae771770SStanislav Sedov	KRB5-PADATA-EPAK-AS-REQ(145),
172*ae771770SStanislav Sedov	KRB5-PADATA-EPAK-AS-REP(146),
173*ae771770SStanislav Sedov	KRB5-PADATA-PKINIT-KX(147),		-- krb-wg-anon
174*ae771770SStanislav Sedov	KRB5-PADATA-PKU2U-NAME(148),		-- zhu-pku2u
175*ae771770SStanislav Sedov	KRB5-PADATA-REQ-ENC-PA-REP(149),	--
176*ae771770SStanislav Sedov	KRB5-PADATA-SUPPORTED-ETYPES(165)	-- MS-KILE
177*ae771770SStanislav Sedov}
178*ae771770SStanislav Sedov
179*ae771770SStanislav SedovAUTHDATA-TYPE ::= INTEGER {
180*ae771770SStanislav Sedov	KRB5-AUTHDATA-IF-RELEVANT(1),
181*ae771770SStanislav Sedov	KRB5-AUTHDATA-INTENDED-FOR_SERVER(2),
182*ae771770SStanislav Sedov	KRB5-AUTHDATA-INTENDED-FOR-APPLICATION-CLASS(3),
183*ae771770SStanislav Sedov	KRB5-AUTHDATA-KDC-ISSUED(4),
184*ae771770SStanislav Sedov	KRB5-AUTHDATA-AND-OR(5),
185*ae771770SStanislav Sedov	KRB5-AUTHDATA-MANDATORY-TICKET-EXTENSIONS(6),
186*ae771770SStanislav Sedov	KRB5-AUTHDATA-IN-TICKET-EXTENSIONS(7),
187*ae771770SStanislav Sedov	KRB5-AUTHDATA-MANDATORY-FOR-KDC(8),
188*ae771770SStanislav Sedov	KRB5-AUTHDATA-INITIAL-VERIFIED-CAS(9),
189*ae771770SStanislav Sedov	KRB5-AUTHDATA-OSF-DCE(64),
190*ae771770SStanislav Sedov	KRB5-AUTHDATA-SESAME(65),
191*ae771770SStanislav Sedov	KRB5-AUTHDATA-OSF-DCE-PKI-CERTID(66),
192*ae771770SStanislav Sedov	KRB5-AUTHDATA-WIN2K-PAC(128),
193*ae771770SStanislav Sedov	KRB5-AUTHDATA-GSS-API-ETYPE-NEGOTIATION(129), -- Authenticator only
194*ae771770SStanislav Sedov	KRB5-AUTHDATA-SIGNTICKET-OLDER(-17),
195*ae771770SStanislav Sedov	KRB5-AUTHDATA-SIGNTICKET-OLD(142),
196*ae771770SStanislav Sedov	KRB5-AUTHDATA-SIGNTICKET(512)
197*ae771770SStanislav Sedov}
198*ae771770SStanislav Sedov
199*ae771770SStanislav Sedov-- checksumtypes
200*ae771770SStanislav Sedov
201*ae771770SStanislav SedovCKSUMTYPE ::= INTEGER {
202*ae771770SStanislav Sedov	CKSUMTYPE_NONE(0),
203*ae771770SStanislav Sedov	CKSUMTYPE_CRC32(1),
204*ae771770SStanislav Sedov	CKSUMTYPE_RSA_MD4(2),
205*ae771770SStanislav Sedov	CKSUMTYPE_RSA_MD4_DES(3),
206*ae771770SStanislav Sedov	CKSUMTYPE_DES_MAC(4),
207*ae771770SStanislav Sedov	CKSUMTYPE_DES_MAC_K(5),
208*ae771770SStanislav Sedov	CKSUMTYPE_RSA_MD4_DES_K(6),
209*ae771770SStanislav Sedov	CKSUMTYPE_RSA_MD5(7),
210*ae771770SStanislav Sedov	CKSUMTYPE_RSA_MD5_DES(8),
211*ae771770SStanislav Sedov	CKSUMTYPE_RSA_MD5_DES3(9),
212*ae771770SStanislav Sedov	CKSUMTYPE_SHA1_OTHER(10),
213*ae771770SStanislav Sedov	CKSUMTYPE_HMAC_SHA1_DES3(12),
214*ae771770SStanislav Sedov	CKSUMTYPE_SHA1(14),
215*ae771770SStanislav Sedov	CKSUMTYPE_HMAC_SHA1_96_AES_128(15),
216*ae771770SStanislav Sedov	CKSUMTYPE_HMAC_SHA1_96_AES_256(16),
217*ae771770SStanislav Sedov	CKSUMTYPE_GSSAPI(0x8003),
218*ae771770SStanislav Sedov	CKSUMTYPE_HMAC_MD5(-138),	-- unofficial microsoft number
219*ae771770SStanislav Sedov	CKSUMTYPE_HMAC_MD5_ENC(-1138)	-- even more unofficial
220*ae771770SStanislav Sedov}
221*ae771770SStanislav Sedov
222*ae771770SStanislav Sedov--enctypes
223*ae771770SStanislav SedovENCTYPE ::= INTEGER {
224*ae771770SStanislav Sedov	KRB5_ENCTYPE_NULL(0),
225*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES_CBC_CRC(1),
226*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES_CBC_MD4(2),
227*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES_CBC_MD5(3),
228*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES3_CBC_MD5(5),
229*ae771770SStanislav Sedov	KRB5_ENCTYPE_OLD_DES3_CBC_SHA1(7),
230*ae771770SStanislav Sedov	KRB5_ENCTYPE_SIGN_DSA_GENERATE(8),
231*ae771770SStanislav Sedov	KRB5_ENCTYPE_ENCRYPT_RSA_PRIV(9),
232*ae771770SStanislav Sedov	KRB5_ENCTYPE_ENCRYPT_RSA_PUB(10),
233*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES3_CBC_SHA1(16),	-- with key derivation
234*ae771770SStanislav Sedov	KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96(17),
235*ae771770SStanislav Sedov	KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96(18),
236*ae771770SStanislav Sedov	KRB5_ENCTYPE_ARCFOUR_HMAC_MD5(23),
237*ae771770SStanislav Sedov	KRB5_ENCTYPE_ARCFOUR_HMAC_MD5_56(24),
238*ae771770SStanislav Sedov	KRB5_ENCTYPE_ENCTYPE_PK_CROSS(48),
239*ae771770SStanislav Sedov-- some "old" windows types
240*ae771770SStanislav Sedov	KRB5_ENCTYPE_ARCFOUR_MD4(-128),
241*ae771770SStanislav Sedov	KRB5_ENCTYPE_ARCFOUR_HMAC_OLD(-133),
242*ae771770SStanislav Sedov	KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP(-135),
243*ae771770SStanislav Sedov-- these are for Heimdal internal use
244*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES_CBC_NONE(-0x1000),
245*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES3_CBC_NONE(-0x1001),
246*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES_CFB64_NONE(-0x1002),
247*ae771770SStanislav Sedov	KRB5_ENCTYPE_DES_PCBC_NONE(-0x1003),
248*ae771770SStanislav Sedov	KRB5_ENCTYPE_DIGEST_MD5_NONE(-0x1004),		-- private use, lukeh@padl.com
249*ae771770SStanislav Sedov	KRB5_ENCTYPE_CRAM_MD5_NONE(-0x1005)		-- private use, lukeh@padl.com
250*ae771770SStanislav Sedov}
251*ae771770SStanislav Sedov
252*ae771770SStanislav Sedov
253*ae771770SStanislav Sedov
254*ae771770SStanislav Sedov
255*ae771770SStanislav Sedov-- this is sugar to make something ASN1 does not have: unsigned
256*ae771770SStanislav Sedov
257*ae771770SStanislav Sedovkrb5uint32 ::= INTEGER (0..4294967295)
258*ae771770SStanislav Sedovkrb5int32 ::= INTEGER (-2147483648..2147483647)
259*ae771770SStanislav Sedov
260*ae771770SStanislav SedovKerberosString  ::= GeneralString
261*ae771770SStanislav Sedov
262*ae771770SStanislav SedovRealm ::= GeneralString
263*ae771770SStanislav SedovPrincipalName ::= SEQUENCE {
264*ae771770SStanislav Sedov	name-type[0]		NAME-TYPE,
265*ae771770SStanislav Sedov	name-string[1]		SEQUENCE OF GeneralString
266*ae771770SStanislav Sedov}
267*ae771770SStanislav Sedov
268*ae771770SStanislav Sedov-- this is not part of RFC1510
269*ae771770SStanislav SedovPrincipal ::= SEQUENCE {
270*ae771770SStanislav Sedov	name[0]			PrincipalName,
271*ae771770SStanislav Sedov	realm[1]		Realm
272*ae771770SStanislav Sedov}
273*ae771770SStanislav Sedov
274*ae771770SStanislav SedovPrincipals ::= SEQUENCE OF Principal
275*ae771770SStanislav Sedov
276*ae771770SStanislav SedovHostAddress ::= SEQUENCE  {
277*ae771770SStanislav Sedov	addr-type[0]		krb5int32,
278*ae771770SStanislav Sedov	address[1]		OCTET STRING
279*ae771770SStanislav Sedov}
280*ae771770SStanislav Sedov
281*ae771770SStanislav Sedov-- This is from RFC1510.
282*ae771770SStanislav Sedov--
283*ae771770SStanislav Sedov-- HostAddresses ::= SEQUENCE OF SEQUENCE {
284*ae771770SStanislav Sedov-- 	addr-type[0]		krb5int32,
285*ae771770SStanislav Sedov--	address[1]		OCTET STRING
286*ae771770SStanislav Sedov-- }
287*ae771770SStanislav Sedov
288*ae771770SStanislav Sedov-- This seems much better.
289*ae771770SStanislav SedovHostAddresses ::= SEQUENCE OF HostAddress
290*ae771770SStanislav Sedov
291*ae771770SStanislav Sedov
292*ae771770SStanislav SedovKerberosTime ::= GeneralizedTime -- Specifying UTC time zone (Z)
293*ae771770SStanislav Sedov
294*ae771770SStanislav SedovAuthorizationDataElement ::= SEQUENCE {
295*ae771770SStanislav Sedov	ad-type[0]		krb5int32,
296*ae771770SStanislav Sedov	ad-data[1]		OCTET STRING
297*ae771770SStanislav Sedov}
298*ae771770SStanislav Sedov
299*ae771770SStanislav SedovAuthorizationData ::= SEQUENCE OF AuthorizationDataElement
300*ae771770SStanislav Sedov
301*ae771770SStanislav SedovAPOptions ::= BIT STRING {
302*ae771770SStanislav Sedov	reserved(0),
303*ae771770SStanislav Sedov	use-session-key(1),
304*ae771770SStanislav Sedov	mutual-required(2)
305*ae771770SStanislav Sedov}
306*ae771770SStanislav Sedov
307*ae771770SStanislav SedovTicketFlags ::= BIT STRING {
308*ae771770SStanislav Sedov	reserved(0),
309*ae771770SStanislav Sedov	forwardable(1),
310*ae771770SStanislav Sedov	forwarded(2),
311*ae771770SStanislav Sedov	proxiable(3),
312*ae771770SStanislav Sedov	proxy(4),
313*ae771770SStanislav Sedov	may-postdate(5),
314*ae771770SStanislav Sedov	postdated(6),
315*ae771770SStanislav Sedov	invalid(7),
316*ae771770SStanislav Sedov	renewable(8),
317*ae771770SStanislav Sedov	initial(9),
318*ae771770SStanislav Sedov	pre-authent(10),
319*ae771770SStanislav Sedov	hw-authent(11),
320*ae771770SStanislav Sedov	transited-policy-checked(12),
321*ae771770SStanislav Sedov	ok-as-delegate(13),
322*ae771770SStanislav Sedov	anonymous(14),
323*ae771770SStanislav Sedov	enc-pa-rep(15)
324*ae771770SStanislav Sedov}
325*ae771770SStanislav Sedov
326*ae771770SStanislav SedovKDCOptions ::= BIT STRING {
327*ae771770SStanislav Sedov	reserved(0),
328*ae771770SStanislav Sedov	forwardable(1),
329*ae771770SStanislav Sedov	forwarded(2),
330*ae771770SStanislav Sedov	proxiable(3),
331*ae771770SStanislav Sedov	proxy(4),
332*ae771770SStanislav Sedov	allow-postdate(5),
333*ae771770SStanislav Sedov	postdated(6),
334*ae771770SStanislav Sedov	renewable(8),
335*ae771770SStanislav Sedov	request-anonymous(14),
336*ae771770SStanislav Sedov	canonicalize(15),
337*ae771770SStanislav Sedov	constrained-delegation(16), -- ms extension
338*ae771770SStanislav Sedov	disable-transited-check(26),
339*ae771770SStanislav Sedov	renewable-ok(27),
340*ae771770SStanislav Sedov	enc-tkt-in-skey(28),
341*ae771770SStanislav Sedov	renew(30),
342*ae771770SStanislav Sedov	validate(31)
343*ae771770SStanislav Sedov}
344*ae771770SStanislav Sedov
345*ae771770SStanislav SedovLR-TYPE ::= INTEGER {
346*ae771770SStanislav Sedov	LR_NONE(0),		-- no information
347*ae771770SStanislav Sedov	LR_INITIAL_TGT(1),	-- last initial TGT request
348*ae771770SStanislav Sedov	LR_INITIAL(2),		-- last initial request
349*ae771770SStanislav Sedov	LR_ISSUE_USE_TGT(3),	-- time of newest TGT used
350*ae771770SStanislav Sedov	LR_RENEWAL(4),		-- time of last renewal
351*ae771770SStanislav Sedov	LR_REQUEST(5),		-- time of last request (of any type)
352*ae771770SStanislav Sedov	LR_PW_EXPTIME(6),	-- expiration time of password
353*ae771770SStanislav Sedov	LR_ACCT_EXPTIME(7)	-- expiration time of account
354*ae771770SStanislav Sedov}
355*ae771770SStanislav Sedov
356*ae771770SStanislav SedovLastReq ::= SEQUENCE OF SEQUENCE {
357*ae771770SStanislav Sedov	lr-type[0]		LR-TYPE,
358*ae771770SStanislav Sedov	lr-value[1]		KerberosTime
359*ae771770SStanislav Sedov}
360*ae771770SStanislav Sedov
361*ae771770SStanislav Sedov
362*ae771770SStanislav SedovEncryptedData ::= SEQUENCE {
363*ae771770SStanislav Sedov	etype[0] 		ENCTYPE, -- EncryptionType
364*ae771770SStanislav Sedov	kvno[1]			krb5uint32 OPTIONAL,
365*ae771770SStanislav Sedov	cipher[2]		OCTET STRING -- ciphertext
366*ae771770SStanislav Sedov}
367*ae771770SStanislav Sedov
368*ae771770SStanislav SedovEncryptionKey ::= SEQUENCE {
369*ae771770SStanislav Sedov	keytype[0]		krb5int32,
370*ae771770SStanislav Sedov	keyvalue[1]		OCTET STRING
371*ae771770SStanislav Sedov}
372*ae771770SStanislav Sedov
373*ae771770SStanislav Sedov-- encoded Transited field
374*ae771770SStanislav SedovTransitedEncoding ::= SEQUENCE {
375*ae771770SStanislav Sedov	tr-type[0]		krb5int32, -- must be registered
376*ae771770SStanislav Sedov	contents[1]		OCTET STRING
377*ae771770SStanislav Sedov}
378*ae771770SStanislav Sedov
379*ae771770SStanislav SedovTicket ::= [APPLICATION 1] SEQUENCE {
380*ae771770SStanislav Sedov	tkt-vno[0]		krb5int32,
381*ae771770SStanislav Sedov	realm[1]		Realm,
382*ae771770SStanislav Sedov	sname[2]		PrincipalName,
383*ae771770SStanislav Sedov	enc-part[3]		EncryptedData
384*ae771770SStanislav Sedov}
385*ae771770SStanislav Sedov-- Encrypted part of ticket
386*ae771770SStanislav SedovEncTicketPart ::= [APPLICATION 3] SEQUENCE {
387*ae771770SStanislav Sedov	flags[0]		TicketFlags,
388*ae771770SStanislav Sedov	key[1]			EncryptionKey,
389*ae771770SStanislav Sedov	crealm[2]		Realm,
390*ae771770SStanislav Sedov	cname[3]		PrincipalName,
391*ae771770SStanislav Sedov	transited[4]		TransitedEncoding,
392*ae771770SStanislav Sedov	authtime[5]		KerberosTime,
393*ae771770SStanislav Sedov	starttime[6]		KerberosTime OPTIONAL,
394*ae771770SStanislav Sedov	endtime[7]		KerberosTime,
395*ae771770SStanislav Sedov	renew-till[8]		KerberosTime OPTIONAL,
396*ae771770SStanislav Sedov	caddr[9]		HostAddresses OPTIONAL,
397*ae771770SStanislav Sedov	authorization-data[10]	AuthorizationData OPTIONAL
398*ae771770SStanislav Sedov}
399*ae771770SStanislav Sedov
400*ae771770SStanislav SedovChecksum ::= SEQUENCE {
401*ae771770SStanislav Sedov	cksumtype[0]		CKSUMTYPE,
402*ae771770SStanislav Sedov	checksum[1]		OCTET STRING
403*ae771770SStanislav Sedov}
404*ae771770SStanislav Sedov
405*ae771770SStanislav SedovAuthenticator ::= [APPLICATION 2] SEQUENCE    {
406*ae771770SStanislav Sedov	authenticator-vno[0]	krb5int32,
407*ae771770SStanislav Sedov	crealm[1]		Realm,
408*ae771770SStanislav Sedov	cname[2]		PrincipalName,
409*ae771770SStanislav Sedov	cksum[3]		Checksum OPTIONAL,
410*ae771770SStanislav Sedov	cusec[4]		krb5int32,
411*ae771770SStanislav Sedov	ctime[5]		KerberosTime,
412*ae771770SStanislav Sedov	subkey[6]		EncryptionKey OPTIONAL,
413*ae771770SStanislav Sedov	seq-number[7]		krb5uint32 OPTIONAL,
414*ae771770SStanislav Sedov	authorization-data[8]	AuthorizationData OPTIONAL
415*ae771770SStanislav Sedov}
416*ae771770SStanislav Sedov
417*ae771770SStanislav SedovPA-DATA ::= SEQUENCE {
418*ae771770SStanislav Sedov	-- might be encoded AP-REQ
419*ae771770SStanislav Sedov	padata-type[1]		PADATA-TYPE,
420*ae771770SStanislav Sedov	padata-value[2]		OCTET STRING
421*ae771770SStanislav Sedov}
422*ae771770SStanislav Sedov
423*ae771770SStanislav SedovETYPE-INFO-ENTRY ::= SEQUENCE {
424*ae771770SStanislav Sedov	etype[0]		ENCTYPE,
425*ae771770SStanislav Sedov	salt[1]			OCTET STRING OPTIONAL,
426*ae771770SStanislav Sedov	salttype[2]		krb5int32 OPTIONAL
427*ae771770SStanislav Sedov}
428*ae771770SStanislav Sedov
429*ae771770SStanislav SedovETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
430*ae771770SStanislav Sedov
431*ae771770SStanislav SedovETYPE-INFO2-ENTRY ::= SEQUENCE {
432*ae771770SStanislav Sedov	etype[0]		ENCTYPE,
433*ae771770SStanislav Sedov	salt[1]			KerberosString OPTIONAL,
434*ae771770SStanislav Sedov	s2kparams[2]		OCTET STRING OPTIONAL
435*ae771770SStanislav Sedov}
436*ae771770SStanislav Sedov
437*ae771770SStanislav SedovETYPE-INFO2 ::= SEQUENCE SIZE (1..MAX) OF ETYPE-INFO2-ENTRY
438*ae771770SStanislav Sedov
439*ae771770SStanislav SedovMETHOD-DATA ::= SEQUENCE OF PA-DATA
440*ae771770SStanislav Sedov
441*ae771770SStanislav SedovTypedData ::=   SEQUENCE {
442*ae771770SStanislav Sedov	data-type[0]		krb5int32,
443*ae771770SStanislav Sedov	data-value[1]		OCTET STRING OPTIONAL
444*ae771770SStanislav Sedov}
445*ae771770SStanislav Sedov
446*ae771770SStanislav SedovTYPED-DATA ::= SEQUENCE SIZE (1..MAX) OF TypedData
447*ae771770SStanislav Sedov
448*ae771770SStanislav SedovKDC-REQ-BODY ::= SEQUENCE {
449*ae771770SStanislav Sedov	kdc-options[0]		KDCOptions,
450*ae771770SStanislav Sedov	cname[1]		PrincipalName OPTIONAL, -- Used only in AS-REQ
451*ae771770SStanislav Sedov	realm[2]		Realm,	-- Server's realm
452*ae771770SStanislav Sedov					-- Also client's in AS-REQ
453*ae771770SStanislav Sedov	sname[3]		PrincipalName OPTIONAL,
454*ae771770SStanislav Sedov	from[4]			KerberosTime OPTIONAL,
455*ae771770SStanislav Sedov	till[5]			KerberosTime OPTIONAL,
456*ae771770SStanislav Sedov	rtime[6]		KerberosTime OPTIONAL,
457*ae771770SStanislav Sedov	nonce[7]		krb5int32,
458*ae771770SStanislav Sedov	etype[8]		SEQUENCE OF ENCTYPE, -- EncryptionType,
459*ae771770SStanislav Sedov					-- in preference order
460*ae771770SStanislav Sedov	addresses[9]		HostAddresses OPTIONAL,
461*ae771770SStanislav Sedov	enc-authorization-data[10] EncryptedData OPTIONAL,
462*ae771770SStanislav Sedov					-- Encrypted AuthorizationData encoding
463*ae771770SStanislav Sedov	additional-tickets[11]	SEQUENCE OF Ticket OPTIONAL
464*ae771770SStanislav Sedov}
465*ae771770SStanislav Sedov
466*ae771770SStanislav SedovKDC-REQ ::= SEQUENCE {
467*ae771770SStanislav Sedov	pvno[1]			krb5int32,
468*ae771770SStanislav Sedov	msg-type[2]		MESSAGE-TYPE,
469*ae771770SStanislav Sedov	padata[3]		METHOD-DATA OPTIONAL,
470*ae771770SStanislav Sedov	req-body[4]		KDC-REQ-BODY
471*ae771770SStanislav Sedov}
472*ae771770SStanislav Sedov
473*ae771770SStanislav SedovAS-REQ ::= [APPLICATION 10] KDC-REQ
474*ae771770SStanislav SedovTGS-REQ ::= [APPLICATION 12] KDC-REQ
475*ae771770SStanislav Sedov
476*ae771770SStanislav Sedov-- padata-type ::= PA-ENC-TIMESTAMP
477*ae771770SStanislav Sedov-- padata-value ::= EncryptedData - PA-ENC-TS-ENC
478*ae771770SStanislav Sedov
479*ae771770SStanislav SedovPA-ENC-TS-ENC ::= SEQUENCE {
480*ae771770SStanislav Sedov	patimestamp[0]		KerberosTime, -- client's time
481*ae771770SStanislav Sedov	pausec[1]		krb5int32 OPTIONAL
482*ae771770SStanislav Sedov}
483*ae771770SStanislav Sedov
484*ae771770SStanislav Sedov-- draft-brezak-win2k-krb-authz-01
485*ae771770SStanislav SedovPA-PAC-REQUEST ::= SEQUENCE {
486*ae771770SStanislav Sedov	include-pac[0]		BOOLEAN -- Indicates whether a PAC
487*ae771770SStanislav Sedov					-- should be included or not
488*ae771770SStanislav Sedov}
489*ae771770SStanislav Sedov
490*ae771770SStanislav Sedov-- PacketCable provisioning server location, PKT-SP-SEC-I09-030728.pdf
491*ae771770SStanislav SedovPROV-SRV-LOCATION ::= GeneralString
492*ae771770SStanislav Sedov
493*ae771770SStanislav SedovKDC-REP ::= SEQUENCE {
494*ae771770SStanislav Sedov	pvno[0]			krb5int32,
495*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE,
496*ae771770SStanislav Sedov	padata[2]		METHOD-DATA OPTIONAL,
497*ae771770SStanislav Sedov	crealm[3]		Realm,
498*ae771770SStanislav Sedov	cname[4]		PrincipalName,
499*ae771770SStanislav Sedov	ticket[5]		Ticket,
500*ae771770SStanislav Sedov	enc-part[6]		EncryptedData
501*ae771770SStanislav Sedov}
502*ae771770SStanislav Sedov
503*ae771770SStanislav SedovAS-REP ::= [APPLICATION 11] KDC-REP
504*ae771770SStanislav SedovTGS-REP ::= [APPLICATION 13] KDC-REP
505*ae771770SStanislav Sedov
506*ae771770SStanislav SedovEncKDCRepPart ::= SEQUENCE {
507*ae771770SStanislav Sedov	key[0]			EncryptionKey,
508*ae771770SStanislav Sedov	last-req[1]		LastReq,
509*ae771770SStanislav Sedov	nonce[2]		krb5int32,
510*ae771770SStanislav Sedov	key-expiration[3]	KerberosTime OPTIONAL,
511*ae771770SStanislav Sedov	flags[4]		TicketFlags,
512*ae771770SStanislav Sedov	authtime[5]		KerberosTime,
513*ae771770SStanislav Sedov	starttime[6]		KerberosTime OPTIONAL,
514*ae771770SStanislav Sedov	endtime[7]		KerberosTime,
515*ae771770SStanislav Sedov	renew-till[8]		KerberosTime OPTIONAL,
516*ae771770SStanislav Sedov	srealm[9]		Realm,
517*ae771770SStanislav Sedov	sname[10]		PrincipalName,
518*ae771770SStanislav Sedov	caddr[11]		HostAddresses OPTIONAL,
519*ae771770SStanislav Sedov	encrypted-pa-data[12]	METHOD-DATA OPTIONAL
520*ae771770SStanislav Sedov}
521*ae771770SStanislav Sedov
522*ae771770SStanislav SedovEncASRepPart ::= [APPLICATION 25] EncKDCRepPart
523*ae771770SStanislav SedovEncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
524*ae771770SStanislav Sedov
525*ae771770SStanislav SedovAP-REQ ::= [APPLICATION 14] SEQUENCE {
526*ae771770SStanislav Sedov	pvno[0]			krb5int32,
527*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE,
528*ae771770SStanislav Sedov	ap-options[2]		APOptions,
529*ae771770SStanislav Sedov	ticket[3]		Ticket,
530*ae771770SStanislav Sedov	authenticator[4]	EncryptedData
531*ae771770SStanislav Sedov}
532*ae771770SStanislav Sedov
533*ae771770SStanislav SedovAP-REP ::= [APPLICATION 15] SEQUENCE {
534*ae771770SStanislav Sedov	pvno[0]			krb5int32,
535*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE,
536*ae771770SStanislav Sedov	enc-part[2]		EncryptedData
537*ae771770SStanislav Sedov}
538*ae771770SStanislav Sedov
539*ae771770SStanislav SedovEncAPRepPart ::= [APPLICATION 27]     SEQUENCE {
540*ae771770SStanislav Sedov	ctime[0]		KerberosTime,
541*ae771770SStanislav Sedov	cusec[1]		krb5int32,
542*ae771770SStanislav Sedov	subkey[2]		EncryptionKey OPTIONAL,
543*ae771770SStanislav Sedov	seq-number[3]		krb5uint32 OPTIONAL
544*ae771770SStanislav Sedov}
545*ae771770SStanislav Sedov
546*ae771770SStanislav SedovKRB-SAFE-BODY ::= SEQUENCE {
547*ae771770SStanislav Sedov	user-data[0]		OCTET STRING,
548*ae771770SStanislav Sedov	timestamp[1]		KerberosTime OPTIONAL,
549*ae771770SStanislav Sedov	usec[2]			krb5int32 OPTIONAL,
550*ae771770SStanislav Sedov	seq-number[3]		krb5uint32 OPTIONAL,
551*ae771770SStanislav Sedov	s-address[4]		HostAddress OPTIONAL,
552*ae771770SStanislav Sedov	r-address[5]		HostAddress OPTIONAL
553*ae771770SStanislav Sedov}
554*ae771770SStanislav Sedov
555*ae771770SStanislav SedovKRB-SAFE ::= [APPLICATION 20] SEQUENCE {
556*ae771770SStanislav Sedov	pvno[0]			krb5int32,
557*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE,
558*ae771770SStanislav Sedov	safe-body[2]		KRB-SAFE-BODY,
559*ae771770SStanislav Sedov	cksum[3]		Checksum
560*ae771770SStanislav Sedov}
561*ae771770SStanislav Sedov
562*ae771770SStanislav SedovKRB-PRIV ::= [APPLICATION 21] SEQUENCE {
563*ae771770SStanislav Sedov	pvno[0]			krb5int32,
564*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE,
565*ae771770SStanislav Sedov	enc-part[3]		EncryptedData
566*ae771770SStanislav Sedov}
567*ae771770SStanislav SedovEncKrbPrivPart ::= [APPLICATION 28] SEQUENCE {
568*ae771770SStanislav Sedov	user-data[0]		OCTET STRING,
569*ae771770SStanislav Sedov	timestamp[1]		KerberosTime OPTIONAL,
570*ae771770SStanislav Sedov	usec[2]			krb5int32 OPTIONAL,
571*ae771770SStanislav Sedov	seq-number[3]		krb5uint32 OPTIONAL,
572*ae771770SStanislav Sedov	s-address[4]		HostAddress OPTIONAL, -- sender's addr
573*ae771770SStanislav Sedov	r-address[5]		HostAddress OPTIONAL  -- recip's addr
574*ae771770SStanislav Sedov}
575*ae771770SStanislav Sedov
576*ae771770SStanislav SedovKRB-CRED ::= [APPLICATION 22]   SEQUENCE {
577*ae771770SStanislav Sedov	pvno[0]			krb5int32,
578*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE, -- KRB_CRED
579*ae771770SStanislav Sedov	tickets[2]		SEQUENCE OF Ticket,
580*ae771770SStanislav Sedov	enc-part[3]		EncryptedData
581*ae771770SStanislav Sedov}
582*ae771770SStanislav Sedov
583*ae771770SStanislav SedovKrbCredInfo ::= SEQUENCE {
584*ae771770SStanislav Sedov	key[0]			EncryptionKey,
585*ae771770SStanislav Sedov	prealm[1]		Realm OPTIONAL,
586*ae771770SStanislav Sedov	pname[2]		PrincipalName OPTIONAL,
587*ae771770SStanislav Sedov	flags[3]		TicketFlags OPTIONAL,
588*ae771770SStanislav Sedov	authtime[4]		KerberosTime OPTIONAL,
589*ae771770SStanislav Sedov	starttime[5]		KerberosTime OPTIONAL,
590*ae771770SStanislav Sedov	endtime[6] 		KerberosTime OPTIONAL,
591*ae771770SStanislav Sedov	renew-till[7]		KerberosTime OPTIONAL,
592*ae771770SStanislav Sedov	srealm[8]		Realm OPTIONAL,
593*ae771770SStanislav Sedov	sname[9]		PrincipalName OPTIONAL,
594*ae771770SStanislav Sedov	caddr[10]		HostAddresses OPTIONAL
595*ae771770SStanislav Sedov}
596*ae771770SStanislav Sedov
597*ae771770SStanislav SedovEncKrbCredPart ::= [APPLICATION 29]   SEQUENCE {
598*ae771770SStanislav Sedov	ticket-info[0]		SEQUENCE OF KrbCredInfo,
599*ae771770SStanislav Sedov	nonce[1]		krb5int32 OPTIONAL,
600*ae771770SStanislav Sedov	timestamp[2]		KerberosTime OPTIONAL,
601*ae771770SStanislav Sedov	usec[3]			krb5int32 OPTIONAL,
602*ae771770SStanislav Sedov	s-address[4]		HostAddress OPTIONAL,
603*ae771770SStanislav Sedov	r-address[5]		HostAddress OPTIONAL
604*ae771770SStanislav Sedov}
605*ae771770SStanislav Sedov
606*ae771770SStanislav SedovKRB-ERROR ::= [APPLICATION 30] SEQUENCE {
607*ae771770SStanislav Sedov	pvno[0]			krb5int32,
608*ae771770SStanislav Sedov	msg-type[1]		MESSAGE-TYPE,
609*ae771770SStanislav Sedov	ctime[2]		KerberosTime OPTIONAL,
610*ae771770SStanislav Sedov	cusec[3]		krb5int32 OPTIONAL,
611*ae771770SStanislav Sedov	stime[4]		KerberosTime,
612*ae771770SStanislav Sedov	susec[5]		krb5int32,
613*ae771770SStanislav Sedov	error-code[6]		krb5int32,
614*ae771770SStanislav Sedov	crealm[7]		Realm OPTIONAL,
615*ae771770SStanislav Sedov	cname[8]		PrincipalName OPTIONAL,
616*ae771770SStanislav Sedov	realm[9]		Realm, -- Correct realm
617*ae771770SStanislav Sedov	sname[10]		PrincipalName, -- Correct name
618*ae771770SStanislav Sedov	e-text[11]		GeneralString OPTIONAL,
619*ae771770SStanislav Sedov	e-data[12]		OCTET STRING OPTIONAL
620*ae771770SStanislav Sedov}
621*ae771770SStanislav Sedov
622*ae771770SStanislav SedovChangePasswdDataMS ::= SEQUENCE {
623*ae771770SStanislav Sedov	newpasswd[0]		OCTET STRING,
624*ae771770SStanislav Sedov	targname[1]		PrincipalName OPTIONAL,
625*ae771770SStanislav Sedov	targrealm[2]		Realm OPTIONAL
626*ae771770SStanislav Sedov}
627*ae771770SStanislav Sedov
628*ae771770SStanislav SedovEtypeList ::= SEQUENCE OF ENCTYPE
629*ae771770SStanislav Sedov	-- the client's proposed enctype list in
630*ae771770SStanislav Sedov	-- decreasing preference order, favorite choice first
631*ae771770SStanislav Sedov
632*ae771770SStanislav Sedovkrb5-pvno krb5int32 ::= 5 -- current Kerberos protocol version number
633*ae771770SStanislav Sedov
634*ae771770SStanislav Sedov-- transited encodings
635*ae771770SStanislav Sedov
636*ae771770SStanislav SedovDOMAIN-X500-COMPRESS	krb5int32 ::= 1
637*ae771770SStanislav Sedov
638*ae771770SStanislav Sedov-- authorization data primitives
639*ae771770SStanislav Sedov
640*ae771770SStanislav SedovAD-IF-RELEVANT ::= AuthorizationData
641*ae771770SStanislav Sedov
642*ae771770SStanislav SedovAD-KDCIssued ::= SEQUENCE {
643*ae771770SStanislav Sedov	ad-checksum[0]		Checksum,
644*ae771770SStanislav Sedov	i-realm[1]		Realm OPTIONAL,
645*ae771770SStanislav Sedov	i-sname[2]		PrincipalName OPTIONAL,
646*ae771770SStanislav Sedov	elements[3]		AuthorizationData
647*ae771770SStanislav Sedov}
648*ae771770SStanislav Sedov
649*ae771770SStanislav SedovAD-AND-OR ::= SEQUENCE {
650*ae771770SStanislav Sedov	condition-count[0]	INTEGER,
651*ae771770SStanislav Sedov	elements[1]		AuthorizationData
652*ae771770SStanislav Sedov}
653*ae771770SStanislav Sedov
654*ae771770SStanislav SedovAD-MANDATORY-FOR-KDC ::= AuthorizationData
655*ae771770SStanislav Sedov
656*ae771770SStanislav Sedov-- PA-SAM-RESPONSE-2/PA-SAM-RESPONSE-2
657*ae771770SStanislav Sedov
658*ae771770SStanislav SedovPA-SAM-TYPE ::= INTEGER {
659*ae771770SStanislav Sedov	PA_SAM_TYPE_ENIGMA(1),		-- Enigma Logic
660*ae771770SStanislav Sedov	PA_SAM_TYPE_DIGI_PATH(2),	-- Digital Pathways
661*ae771770SStanislav Sedov	PA_SAM_TYPE_SKEY_K0(3),		-- S/key where  KDC has key 0
662*ae771770SStanislav Sedov	PA_SAM_TYPE_SKEY(4),		-- Traditional S/Key
663*ae771770SStanislav Sedov	PA_SAM_TYPE_SECURID(5),		-- Security Dynamics
664*ae771770SStanislav Sedov	PA_SAM_TYPE_CRYPTOCARD(6)	-- CRYPTOCard
665*ae771770SStanislav Sedov}
666*ae771770SStanislav Sedov
667*ae771770SStanislav SedovPA-SAM-REDIRECT ::= HostAddresses
668*ae771770SStanislav Sedov
669*ae771770SStanislav SedovSAMFlags ::= BIT STRING {
670*ae771770SStanislav Sedov	use-sad-as-key(0),
671*ae771770SStanislav Sedov	send-encrypted-sad(1),
672*ae771770SStanislav Sedov	must-pk-encrypt-sad(2)
673*ae771770SStanislav Sedov}
674*ae771770SStanislav Sedov
675*ae771770SStanislav SedovPA-SAM-CHALLENGE-2-BODY ::= SEQUENCE {
676*ae771770SStanislav Sedov	sam-type[0]		krb5int32,
677*ae771770SStanislav Sedov	sam-flags[1]		SAMFlags,
678*ae771770SStanislav Sedov	sam-type-name[2]	GeneralString OPTIONAL,
679*ae771770SStanislav Sedov	sam-track-id[3]		GeneralString OPTIONAL,
680*ae771770SStanislav Sedov	sam-challenge-label[4]	GeneralString OPTIONAL,
681*ae771770SStanislav Sedov	sam-challenge[5]	GeneralString OPTIONAL,
682*ae771770SStanislav Sedov	sam-response-prompt[6]	GeneralString OPTIONAL,
683*ae771770SStanislav Sedov	sam-pk-for-sad[7]	EncryptionKey OPTIONAL,
684*ae771770SStanislav Sedov	sam-nonce[8]		krb5int32,
685*ae771770SStanislav Sedov	sam-etype[9]		krb5int32,
686*ae771770SStanislav Sedov	...
687*ae771770SStanislav Sedov}
688*ae771770SStanislav Sedov
689*ae771770SStanislav SedovPA-SAM-CHALLENGE-2 ::= SEQUENCE {
690*ae771770SStanislav Sedov	sam-body[0]		PA-SAM-CHALLENGE-2-BODY,
691*ae771770SStanislav Sedov	sam-cksum[1]		SEQUENCE OF Checksum, -- (1..MAX)
692*ae771770SStanislav Sedov	...
693*ae771770SStanislav Sedov}
694*ae771770SStanislav Sedov
695*ae771770SStanislav SedovPA-SAM-RESPONSE-2 ::= SEQUENCE {
696*ae771770SStanislav Sedov	sam-type[0]		krb5int32,
697*ae771770SStanislav Sedov	sam-flags[1]		SAMFlags,
698*ae771770SStanislav Sedov	sam-track-id[2]		GeneralString OPTIONAL,
699*ae771770SStanislav Sedov	sam-enc-nonce-or-sad[3]	EncryptedData, -- PA-ENC-SAM-RESPONSE-ENC
700*ae771770SStanislav Sedov	sam-nonce[4]		krb5int32,
701*ae771770SStanislav Sedov	...
702*ae771770SStanislav Sedov}
703*ae771770SStanislav Sedov
704*ae771770SStanislav SedovPA-ENC-SAM-RESPONSE-ENC ::= SEQUENCE {
705*ae771770SStanislav Sedov	sam-nonce[0]		krb5int32,
706*ae771770SStanislav Sedov	sam-sad[1]		GeneralString OPTIONAL,
707*ae771770SStanislav Sedov	...
708*ae771770SStanislav Sedov}
709*ae771770SStanislav Sedov
710*ae771770SStanislav SedovPA-S4U2Self ::= SEQUENCE {
711*ae771770SStanislav Sedov	name[0]		PrincipalName,
712*ae771770SStanislav Sedov        realm[1]	Realm,
713*ae771770SStanislav Sedov        cksum[2]	Checksum,
714*ae771770SStanislav Sedov        auth[3]		GeneralString
715*ae771770SStanislav Sedov}
716*ae771770SStanislav Sedov
717*ae771770SStanislav Sedov-- never encoded on the wire, just used to checksum over
718*ae771770SStanislav SedovKRB5SignedPathData ::= SEQUENCE {
719*ae771770SStanislav Sedov	client[0]	Principal OPTIONAL,
720*ae771770SStanislav Sedov	authtime[1]	KerberosTime,
721*ae771770SStanislav Sedov	delegated[2]	Principals OPTIONAL,
722*ae771770SStanislav Sedov	method_data[3]  METHOD-DATA OPTIONAL
723*ae771770SStanislav Sedov}
724*ae771770SStanislav Sedov
725*ae771770SStanislav SedovKRB5SignedPath ::= SEQUENCE {
726*ae771770SStanislav Sedov	-- DERcoded KRB5SignedPathData
727*ae771770SStanislav Sedov	-- krbtgt key (etype), KeyUsage = XXX
728*ae771770SStanislav Sedov	etype[0]	ENCTYPE,
729*ae771770SStanislav Sedov	cksum[1]	Checksum,
730*ae771770SStanislav Sedov	-- srvs delegated though
731*ae771770SStanislav Sedov	delegated[2]	Principals OPTIONAL,
732*ae771770SStanislav Sedov	method_data[3]  METHOD-DATA OPTIONAL
733*ae771770SStanislav Sedov}
734*ae771770SStanislav Sedov
735*ae771770SStanislav SedovPA-ClientCanonicalizedNames ::= SEQUENCE{
736*ae771770SStanislav Sedov	requested-name	[0] PrincipalName,
737*ae771770SStanislav Sedov	mapped-name	[1] PrincipalName
738*ae771770SStanislav Sedov}
739*ae771770SStanislav Sedov
740*ae771770SStanislav SedovPA-ClientCanonicalized ::= SEQUENCE {
741*ae771770SStanislav Sedov	names		[0] PA-ClientCanonicalizedNames,
742*ae771770SStanislav Sedov	canon-checksum	[1] Checksum
743*ae771770SStanislav Sedov}
744*ae771770SStanislav Sedov
745*ae771770SStanislav SedovAD-LoginAlias ::= SEQUENCE { -- ad-type number TBD --
746*ae771770SStanislav Sedov	login-alias	[0] PrincipalName,
747*ae771770SStanislav Sedov	checksum	[1] Checksum
748*ae771770SStanislav Sedov}
749*ae771770SStanislav Sedov
750*ae771770SStanislav Sedov-- old ms referral
751*ae771770SStanislav SedovPA-SvrReferralData ::= SEQUENCE {
752*ae771770SStanislav Sedov	referred-name   [1] PrincipalName OPTIONAL,
753*ae771770SStanislav Sedov	referred-realm  [0] Realm
754*ae771770SStanislav Sedov}
755*ae771770SStanislav Sedov
756*ae771770SStanislav SedovPA-SERVER-REFERRAL-DATA ::= EncryptedData
757*ae771770SStanislav Sedov
758*ae771770SStanislav SedovPA-ServerReferralData ::= SEQUENCE {
759*ae771770SStanislav Sedov	referred-realm		[0] Realm OPTIONAL,
760*ae771770SStanislav Sedov	true-principal-name	[1] PrincipalName OPTIONAL,
761*ae771770SStanislav Sedov	requested-principal-name [2] PrincipalName OPTIONAL,
762*ae771770SStanislav Sedov	referral-valid-until     [3] KerberosTime OPTIONAL,
763*ae771770SStanislav Sedov	...
764*ae771770SStanislav Sedov}
765*ae771770SStanislav Sedov
766*ae771770SStanislav SedovFastOptions ::= BIT STRING {
767*ae771770SStanislav Sedov	    reserved(0),
768*ae771770SStanislav Sedov	    hide-client-names(1),
769*ae771770SStanislav Sedov	    kdc-follow--referrals(16)
770*ae771770SStanislav Sedov}
771*ae771770SStanislav Sedov
772*ae771770SStanislav SedovKrbFastReq ::= SEQUENCE {
773*ae771770SStanislav Sedov	fast-options [0] FastOptions,
774*ae771770SStanislav Sedov	padata       [1] SEQUENCE OF PA-DATA,
775*ae771770SStanislav Sedov	req-body     [2] KDC-REQ-BODY,
776*ae771770SStanislav Sedov	...
777*ae771770SStanislav Sedov}
778*ae771770SStanislav Sedov
779*ae771770SStanislav SedovKrbFastArmor ::= SEQUENCE {
780*ae771770SStanislav Sedov	armor-type   [0] krb5int32,
781*ae771770SStanislav Sedov	armor-value  [1] OCTET STRING,
782*ae771770SStanislav Sedov        ...
783*ae771770SStanislav Sedov}
784*ae771770SStanislav Sedov
785*ae771770SStanislav SedovKrbFastArmoredReq ::= SEQUENCE {
786*ae771770SStanislav Sedov	armor        [0] KrbFastArmor OPTIONAL,
787*ae771770SStanislav Sedov	req-checksum [1] Checksum,
788*ae771770SStanislav Sedov	enc-fast-req [2] EncryptedData -- KrbFastReq --
789*ae771770SStanislav Sedov}
790*ae771770SStanislav Sedov
791*ae771770SStanislav SedovPA-FX-FAST-REQUEST ::= CHOICE {
792*ae771770SStanislav Sedov	armored-data [0] KrbFastArmoredReq,
793*ae771770SStanislav Sedov	...
794*ae771770SStanislav Sedov}
795*ae771770SStanislav Sedov
796*ae771770SStanislav SedovKrbFastFinished ::= SEQUENCE {
797*ae771770SStanislav Sedov	timestamp   [0] KerberosTime,
798*ae771770SStanislav Sedov	usec        [1] krb5int32,
799*ae771770SStanislav Sedov	crealm      [2] Realm,
800*ae771770SStanislav Sedov	cname       [3] PrincipalName,
801*ae771770SStanislav Sedov	checksum    [4] Checksum,
802*ae771770SStanislav Sedov	ticket-checksum [5] Checksum,
803*ae771770SStanislav Sedov	...
804*ae771770SStanislav Sedov}
805*ae771770SStanislav Sedov
806*ae771770SStanislav SedovKrbFastResponse ::= SEQUENCE {
807*ae771770SStanislav Sedov	padata      [0] SEQUENCE OF PA-DATA,
808*ae771770SStanislav Sedov	rep-key     [1] EncryptionKey OPTIONAL,
809*ae771770SStanislav Sedov	finished    [2] KrbFastFinished OPTIONAL,
810*ae771770SStanislav Sedov	...
811*ae771770SStanislav Sedov}
812*ae771770SStanislav Sedov
813*ae771770SStanislav SedovKrbFastArmoredRep ::= SEQUENCE {
814*ae771770SStanislav Sedov	enc-fast-rep      [0] EncryptedData, -- KrbFastResponse --
815*ae771770SStanislav Sedov	...
816*ae771770SStanislav Sedov}
817*ae771770SStanislav Sedov
818*ae771770SStanislav SedovPA-FX-FAST-REPLY ::= CHOICE {
819*ae771770SStanislav Sedov	armored-data [0] KrbFastArmoredRep,
820*ae771770SStanislav Sedov	...
821*ae771770SStanislav Sedov}
822*ae771770SStanislav Sedov
823*ae771770SStanislav SedovEND
824*ae771770SStanislav Sedov
825*ae771770SStanislav Sedov-- etags -r '/\([A-Za-z][-A-Za-z0-9]*\).*::=/\1/' k5.asn1
826