1 -- Extracted from RFC 6113
3 KerberosPreauthFramework {
4 iso(1) identified-organization(3) dod(6) internet(1)
5 security(5) kerberosV5(2) modules(4) preauth-framework(3)
6 } DEFINITIONS EXPLICIT TAGS ::= BEGIN
9 KerberosTime, PrincipalName, Realm, EncryptionKey, Checksum,
10 Int32, EncryptedData, PA-ENC-TS-ENC, PA-DATA, KDC-REQ-BODY,
11 Microseconds, KerberosFlags, UInt32
12 FROM KerberosV5Spec2 { iso(1) identified-organization(3)
13 dod(6) internet(1) security(5) kerberosV5(2)
14 modules(4) krb5spec2(2) };
15 -- as defined in RFC 4120.
17 PA-AUTHENTICATION-SET ::= SEQUENCE OF PA-AUTHENTICATION-SET-ELEM
19 PA-AUTHENTICATION-SET-ELEM ::= SEQUENCE {
20 pa-type [0] PADATA-TYPE, -- use k5.asn Int32,
21 -- same as padata-type.
22 pa-hint [1] OCTET STRING OPTIONAL,
23 pa-value [2] OCTET STRING OPTIONAL,
27 KrbFastArmorTypes ::= INTEGER {
29 fX-FAST-ARMOR-AP-REQUEST(1) -- [RFC6113]
32 KrbFastArmor ::= SEQUENCE {
33 armor-type [0] KrbFastArmorTypes,
35 armor-value [1] OCTET STRING,
36 -- Value of the armor.
40 PA-FX-FAST-REQUEST ::= CHOICE {
41 armored-data [0] KrbFastArmoredReq,
45 EncryptedKrbFastReq ::= SEQUENCE {
46 etype [0] ENCTYPE -- EncryptionType --,
47 kvno [1] UInt32 OPTIONAL,
48 cipher [2] OCTET STRING -- ciphertext
51 KrbFastArmoredReq ::= SEQUENCE {
52 armor [0] KrbFastArmor OPTIONAL,
53 -- Contains the armor that identifies the armor key.
54 -- MUST be present in AS-REQ.
55 req-checksum [1] Checksum,
56 -- For AS, contains the checksum performed over the type
57 -- KDC-REQ-BODY for the req-body field of the KDC-REQ
59 -- For TGS, contains the checksum performed over the type
60 -- AP-REQ in the PA-TGS-REQ padata.
61 -- The checksum key is the armor key, the checksum
62 -- type is the required checksum type for the enctype of
63 -- the armor key, and the key usage number is
64 -- KEY_USAGE_FAST_REQ_CHKSUM.
65 enc-fast-req [2] EncryptedKrbFastReq, -- KrbFastReq --
66 -- The encryption key is the armor key, and the key usage
67 -- number is KEY_USAGE_FAST_ENC.
71 KrbFastReq ::= SEQUENCE {
72 fast-options [0] FastOptions,
73 -- Additional options.
74 padata [1] SEQUENCE OF PA-DATA,
75 -- padata typed holes.
76 req-body [2] KDC-REQ-BODY,
77 -- Contains the KDC request body as defined in Section
78 -- 5.4.1 of [RFC4120].
79 -- This req-body field is preferred over the outer field
80 -- in the KDC request.
84 FastOptions ::= BIT STRING {
87 kdc-follow-referrals(16)
88 } (SIZE (32..MAX)) -- KerberosFlags
90 PA-FX-FAST-REPLY ::= CHOICE {
91 armored-data [0] KrbFastArmoredRep,
95 EncryptedKrbFastResponse ::= SEQUENCE {
96 etype [0] ENCTYPE -- EncryptionType --,
97 kvno [1] UInt32 OPTIONAL,
98 cipher [2] OCTET STRING -- ciphertext
101 KrbFastArmoredRep ::= SEQUENCE {
102 enc-fast-rep [0] EncryptedKrbFastResponse, -- KrbFastResponse --
103 -- The encryption key is the armor key in the request, and
104 -- the key usage number is KEY_USAGE_FAST_REP.
108 KrbFastResponse ::= SEQUENCE {
109 padata [0] SEQUENCE OF PA-DATA,
110 -- padata typed holes.
111 strengthen-key [1] EncryptionKey OPTIONAL,
112 -- This, if present, strengthens the reply key for AS and
113 -- TGS. MUST be present for TGS
114 -- MUST be absent in KRB-ERROR.
115 finished [2] KrbFastFinished OPTIONAL,
116 -- Present in AS or TGS reply; absent otherwise.
118 -- Nonce from the client request.
122 KrbFastFinished ::= SEQUENCE {
123 timestamp [0] KerberosTime,
124 usec [1] Microseconds,
125 -- timestamp and usec represent the time on the KDC when
126 -- the reply was generated.
128 cname [3] PrincipalName,
129 -- Contains the client realm and the client name.
130 ticket-checksum [4] Checksum,
131 -- checksum of the ticket in the KDC-REP using the armor
132 -- and the key usage is KEY_USAGE_FAST_FINISH.
133 -- The checksum type is the required checksum type
138 EncryptedChallenge ::= SEQUENCE {
139 etype [0] ENCTYPE -- EncryptionType --,
140 kvno [1] UInt32 OPTIONAL,
141 cipher [2] OCTET STRING -- ciphertext
143 -- Encrypted PA-ENC-TS-ENC, encrypted in the challenge key
144 -- using key usage KEY_USAGE_ENC_CHALLENGE_CLIENT for the
145 -- client and KEY_USAGE_ENC_CHALLENGE_KDC for the KDC.