|
1 /* |
|
2 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. |
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 * |
|
5 * This code is free software; you can redistribute it and/or modify it |
|
6 * under the terms of the GNU General Public License version 2 only, as |
|
7 * published by the Free Software Foundation. |
|
8 * |
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
|
13 * accompanied this code). |
|
14 * |
|
15 * You should have received a copy of the GNU General Public License version |
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
18 * |
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
20 * or visit www.oracle.com if you need additional information or have any |
|
21 * questions. |
|
22 */ |
|
23 /* |
|
24 * @test |
|
25 * @bug 6979329 |
|
26 * @summary CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1 |
|
27 */ |
|
28 |
|
29 import java.io.ByteArrayInputStream; |
|
30 import java.io.File; |
|
31 import java.io.FileOutputStream; |
|
32 import sun.security.krb5.internal.ccache.CCacheInputStream; |
|
33 import sun.security.krb5.internal.ccache.CredentialsCache; |
|
34 |
|
35 public class UnknownCCEntry { |
|
36 public static void main(String[] args) throws Exception { |
|
37 // This is a ccache file generated on a test machine: |
|
38 // Default principal: dummy@MAX.LOCAL |
|
39 // Valid starting Expires Service principal |
|
40 // 08/24/10 10:37:28 08/25/10 10:37:28 krbtgt/MAX.LOCAL@MAX.LOCAL |
|
41 // Flags: FI, Etype (skey, tkt): AES-128 CTS mode with 96-bit SHA-1 |
|
42 // HMAC, AES-256 CTS mode with 96-bit SHA-1 HMAC |
|
43 byte[] krb5cc = { |
|
44 (byte)0x05, (byte)0x04, (byte)0x00, (byte)0x0C, |
|
45 (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x08, |
|
46 (byte)0xFF, (byte)0xFF, (byte)0xFF, (byte)0xFA, |
|
47 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
48 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, |
|
49 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, |
|
50 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x09, |
|
51 (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E, |
|
52 (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41, |
|
53 (byte)0x4C, (byte)0x00, (byte)0x00, (byte)0x00, |
|
54 (byte)0x05, (byte)0x64, (byte)0x75, (byte)0x6D, |
|
55 (byte)0x6D, (byte)0x79, (byte)0x00, (byte)0x00, |
|
56 (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x00, |
|
57 (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x00, |
|
58 (byte)0x00, (byte)0x09, (byte)0x4D, (byte)0x41, |
|
59 (byte)0x58, (byte)0x2E, (byte)0x4C, (byte)0x4F, |
|
60 (byte)0x43, (byte)0x41, (byte)0x4C, (byte)0x00, |
|
61 (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x64, |
|
62 (byte)0x75, (byte)0x6D, (byte)0x6D, (byte)0x79, |
|
63 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
64 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x02, |
|
65 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x09, |
|
66 (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E, |
|
67 (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41, |
|
68 (byte)0x4C, (byte)0x00, (byte)0x00, (byte)0x00, |
|
69 (byte)0x06, (byte)0x6B, (byte)0x72, (byte)0x62, |
|
70 (byte)0x74, (byte)0x67, (byte)0x74, (byte)0x00, |
|
71 (byte)0x00, (byte)0x00, (byte)0x09, (byte)0x4D, |
|
72 (byte)0x41, (byte)0x58, (byte)0x2E, (byte)0x4C, |
|
73 (byte)0x4F, (byte)0x43, (byte)0x41, (byte)0x4C, |
|
74 (byte)0x00, (byte)0x11, (byte)0x00, (byte)0x00, |
|
75 (byte)0x00, (byte)0x10, (byte)0x92, (byte)0x1D, |
|
76 (byte)0x1A, (byte)0x0C, (byte)0x7F, (byte)0xB8, |
|
77 (byte)0x01, (byte)0x2E, (byte)0xC9, (byte)0xF5, |
|
78 (byte)0x7B, (byte)0x92, (byte)0x81, (byte)0xCA, |
|
79 (byte)0x49, (byte)0xC5, (byte)0x4C, (byte)0x73, |
|
80 (byte)0x30, (byte)0x68, (byte)0x4C, (byte)0x73, |
|
81 (byte)0x30, (byte)0x68, (byte)0x4C, (byte)0x74, |
|
82 (byte)0x81, (byte)0xE8, (byte)0x00, (byte)0x00, |
|
83 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x40, |
|
84 (byte)0x41, (byte)0x00, (byte)0x00, (byte)0x00, |
|
85 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
86 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
87 (byte)0x00, (byte)0x01, (byte)0x29, (byte)0x61, |
|
88 (byte)0x82, (byte)0x01, (byte)0x25, (byte)0x30, |
|
89 (byte)0x82, (byte)0x01, (byte)0x21, (byte)0xA0, |
|
90 (byte)0x03, (byte)0x02, (byte)0x01, (byte)0x05, |
|
91 (byte)0xA1, (byte)0x0B, (byte)0x1B, (byte)0x09, |
|
92 (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E, |
|
93 (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41, |
|
94 (byte)0x4C, (byte)0xA2, (byte)0x1E, (byte)0x30, |
|
95 (byte)0x1C, (byte)0xA0, (byte)0x03, (byte)0x02, |
|
96 (byte)0x01, (byte)0x00, (byte)0xA1, (byte)0x15, |
|
97 (byte)0x30, (byte)0x13, (byte)0x1B, (byte)0x06, |
|
98 (byte)0x6B, (byte)0x72, (byte)0x62, (byte)0x74, |
|
99 (byte)0x67, (byte)0x74, (byte)0x1B, (byte)0x09, |
|
100 (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E, |
|
101 (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41, |
|
102 (byte)0x4C, (byte)0xA3, (byte)0x81, (byte)0xEC, |
|
103 (byte)0x30, (byte)0x81, (byte)0xE9, (byte)0xA0, |
|
104 (byte)0x03, (byte)0x02, (byte)0x01, (byte)0x12, |
|
105 (byte)0xA1, (byte)0x03, (byte)0x02, (byte)0x01, |
|
106 (byte)0x01, (byte)0xA2, (byte)0x81, (byte)0xDC, |
|
107 (byte)0x04, (byte)0x81, (byte)0xD9, (byte)0xFB, |
|
108 (byte)0x4B, (byte)0xD2, (byte)0x55, (byte)0x33, |
|
109 (byte)0xA8, (byte)0x1A, (byte)0xE6, (byte)0xB5, |
|
110 (byte)0x3D, (byte)0x67, (byte)0x46, (byte)0x69, |
|
111 (byte)0x6F, (byte)0x0A, (byte)0x64, (byte)0xE7, |
|
112 (byte)0x3D, (byte)0xEF, (byte)0x22, (byte)0xBE, |
|
113 (byte)0x81, (byte)0x32, (byte)0xF3, (byte)0x72, |
|
114 (byte)0xB4, (byte)0x50, (byte)0xE3, (byte)0xC3, |
|
115 (byte)0xDB, (byte)0xE5, (byte)0x38, (byte)0x3C, |
|
116 (byte)0x60, (byte)0xC8, (byte)0x08, (byte)0x53, |
|
117 (byte)0x44, (byte)0x6F, (byte)0xDF, (byte)0x55, |
|
118 (byte)0x67, (byte)0x32, (byte)0x02, (byte)0xDD, |
|
119 (byte)0x6B, (byte)0xFB, (byte)0x23, (byte)0x1A, |
|
120 (byte)0x88, (byte)0x71, (byte)0xE0, (byte)0xF8, |
|
121 (byte)0xBB, (byte)0x51, (byte)0x1E, (byte)0x76, |
|
122 (byte)0xC9, (byte)0x1F, (byte)0x45, (byte)0x9B, |
|
123 (byte)0xA0, (byte)0xA5, (byte)0x61, (byte)0x45, |
|
124 (byte)0x9E, (byte)0x65, (byte)0xB8, (byte)0xD6, |
|
125 (byte)0x0E, (byte)0x3C, (byte)0xD9, (byte)0x56, |
|
126 (byte)0xD6, (byte)0xA6, (byte)0xDD, (byte)0x36, |
|
127 (byte)0x21, (byte)0x25, (byte)0x0E, (byte)0xE6, |
|
128 (byte)0xAD, (byte)0xA0, (byte)0x3A, (byte)0x9B, |
|
129 (byte)0x21, (byte)0x87, (byte)0xE2, (byte)0xAF, |
|
130 (byte)0x3A, (byte)0xEF, (byte)0x75, (byte)0x85, |
|
131 (byte)0xA8, (byte)0xD7, (byte)0xE5, (byte)0x46, |
|
132 (byte)0xD8, (byte)0x5C, (byte)0x17, (byte)0x4E, |
|
133 (byte)0x64, (byte)0x51, (byte)0xDB, (byte)0x38, |
|
134 (byte)0x8E, (byte)0x6B, (byte)0x02, (byte)0x05, |
|
135 (byte)0x46, (byte)0x77, (byte)0xD0, (byte)0x75, |
|
136 (byte)0x8A, (byte)0xE0, (byte)0x42, (byte)0x5E, |
|
137 (byte)0x8D, (byte)0x49, (byte)0x86, (byte)0xDE, |
|
138 (byte)0x6C, (byte)0xBC, (byte)0xAF, (byte)0x10, |
|
139 (byte)0x9A, (byte)0x97, (byte)0x64, (byte)0xA6, |
|
140 (byte)0xBD, (byte)0xDB, (byte)0x01, (byte)0x40, |
|
141 (byte)0xA9, (byte)0x3D, (byte)0x74, (byte)0x99, |
|
142 (byte)0xDC, (byte)0x63, (byte)0x34, (byte)0x40, |
|
143 (byte)0x31, (byte)0x57, (byte)0xC7, (byte)0x70, |
|
144 (byte)0x9F, (byte)0xCE, (byte)0xC6, (byte)0x7B, |
|
145 (byte)0x00, (byte)0x5B, (byte)0x02, (byte)0x5C, |
|
146 (byte)0xC7, (byte)0x81, (byte)0x40, (byte)0x4D, |
|
147 (byte)0xA7, (byte)0xB1, (byte)0xD2, (byte)0xEA, |
|
148 (byte)0x8E, (byte)0xEC, (byte)0xA0, (byte)0xB3, |
|
149 (byte)0x03, (byte)0x29, (byte)0xB8, (byte)0x44, |
|
150 (byte)0xD7, (byte)0xA1, (byte)0x2B, (byte)0x37, |
|
151 (byte)0x9D, (byte)0x19, (byte)0x11, (byte)0x1D, |
|
152 (byte)0x58, (byte)0xE8, (byte)0x06, (byte)0xE7, |
|
153 (byte)0x06, (byte)0xE3, (byte)0xF7, (byte)0xEF, |
|
154 (byte)0x05, (byte)0xA9, (byte)0x05, (byte)0x93, |
|
155 (byte)0x42, (byte)0x94, (byte)0x5A, (byte)0xD6, |
|
156 (byte)0xA0, (byte)0x24, (byte)0x3A, (byte)0x52, |
|
157 (byte)0x92, (byte)0xA3, (byte)0x79, (byte)0x98, |
|
158 (byte)0x3C, (byte)0x68, (byte)0x55, (byte)0x1B, |
|
159 (byte)0x6A, (byte)0xC5, (byte)0x83, (byte)0x89, |
|
160 (byte)0x5A, (byte)0x79, (byte)0x5C, (byte)0x52, |
|
161 (byte)0xBA, (byte)0xB8, (byte)0xF7, (byte)0x72, |
|
162 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
163 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, |
|
164 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, |
|
165 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x09, |
|
166 (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E, |
|
167 (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41, |
|
168 (byte)0x4C, (byte)0x00, (byte)0x00, (byte)0x00, |
|
169 (byte)0x05, (byte)0x64, (byte)0x75, (byte)0x6D, |
|
170 (byte)0x6D, (byte)0x79, (byte)0x00, (byte)0x00, |
|
171 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
172 (byte)0x00, (byte)0x03, (byte)0x00, (byte)0x00, |
|
173 (byte)0x00, (byte)0x0C, (byte)0x58, (byte)0x2D, |
|
174 (byte)0x43, (byte)0x41, (byte)0x43, (byte)0x48, |
|
175 (byte)0x45, (byte)0x43, (byte)0x4F, (byte)0x4E, |
|
176 (byte)0x46, (byte)0x3A, (byte)0x00, (byte)0x00, |
|
177 (byte)0x00, (byte)0x15, (byte)0x6B, (byte)0x72, |
|
178 (byte)0x62, (byte)0x35, (byte)0x5F, (byte)0x63, |
|
179 (byte)0x63, (byte)0x61, (byte)0x63, (byte)0x68, |
|
180 (byte)0x65, (byte)0x5F, (byte)0x63, (byte)0x6F, |
|
181 (byte)0x6E, (byte)0x66, (byte)0x5F, (byte)0x64, |
|
182 (byte)0x61, (byte)0x74, (byte)0x61, (byte)0x00, |
|
183 (byte)0x00, (byte)0x00, (byte)0x0A, (byte)0x66, |
|
184 (byte)0x61, (byte)0x73, (byte)0x74, (byte)0x5F, |
|
185 (byte)0x61, (byte)0x76, (byte)0x61, (byte)0x69, |
|
186 (byte)0x6C, (byte)0x00, (byte)0x00, (byte)0x00, |
|
187 (byte)0x1A, (byte)0x6B, (byte)0x72, (byte)0x62, |
|
188 (byte)0x74, (byte)0x67, (byte)0x74, (byte)0x2F, |
|
189 (byte)0x4D, (byte)0x41, (byte)0x58, (byte)0x2E, |
|
190 (byte)0x4C, (byte)0x4F, (byte)0x43, (byte)0x41, |
|
191 (byte)0x4C, (byte)0x40, (byte)0x4D, (byte)0x41, |
|
192 (byte)0x58, (byte)0x2E, (byte)0x4C, (byte)0x4F, |
|
193 (byte)0x43, (byte)0x41, (byte)0x4C, (byte)0x00, |
|
194 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
195 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
196 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
197 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
198 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
199 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
200 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
201 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
202 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, |
|
203 (byte)0x00, (byte)0x03, (byte)0x79, (byte)0x65, |
|
204 (byte)0x73, (byte)0x00, (byte)0x00, (byte)0x00, |
|
205 (byte)0x00, |
|
206 }; |
|
207 |
|
208 File f = File.createTempFile("ccache", "cc", new File(".")); |
|
209 FileOutputStream fout = new FileOutputStream(f); |
|
210 fout.write(krb5cc); |
|
211 fout.close(); |
|
212 |
|
213 CredentialsCache cc = CredentialsCache.getInstance(f.getPath()); |
|
214 if (!cc.getDefaultCreds().getServicePrincipal().getNameStrings()[0] |
|
215 .equals("krbtgt")) { |
|
216 throw new Exception("No TGT found"); |
|
217 } |
|
218 } |
|
219 } |