Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/security/auth/kerberos/KerberosHashEqualsTest.java
41152 views
1
/*
2
* Copyright (c) 2005, 2014, 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
/*
25
* @test
26
* @bug 4641821
27
* @summary hashCode() and equals() for KerberosKey and KerberosTicket
28
*/
29
30
/*
31
* Must setup KDC and Kerberos configuration file
32
*/
33
34
import java.net.InetAddress;
35
import java.util.Date;
36
import javax.security.auth.kerberos.*;
37
38
public class KerberosHashEqualsTest {
39
public static void main(String[] args) throws Exception {
40
new KerberosHashEqualsTest().check();
41
}
42
43
void checkSame(Object o1, Object o2) {
44
if(!o1.equals(o2)) {
45
throw new RuntimeException("equals() fails");
46
}
47
if(o1.hashCode() != o2.hashCode()) {
48
throw new RuntimeException("hashCode() not same");
49
}
50
}
51
52
void checkNotSame(Object o1, Object o2) {
53
if(o1.equals(o2)) {
54
throw new RuntimeException("equals() succeeds");
55
}
56
}
57
58
void check() throws Exception {
59
KerberosKey k1, k2;
60
k1 = new KerberosKey(newKP("A"), "pass".getBytes(), 1, 1);
61
k2 = new KerberosKey(newKP("A"), "pass".getBytes(), 1, 1);
62
checkSame(k1, k1); // me to me
63
checkSame(k1, k2); // same
64
65
k2.destroy();
66
checkNotSame(k1, k2);
67
checkNotSame(k2, k1);
68
checkSame(k2, k2);
69
70
k1.destroy();
71
checkNotSame(k1, k2);
72
73
// Destroyed key has string and hashCode
74
k1.toString(); k1.hashCode();
75
76
// a little different
77
k1 = new KerberosKey(newKP("A"), "pass".getBytes(), 1, 1);
78
k2 = new KerberosKey(newKP("B"), "pass".getBytes(), 1, 1);
79
checkNotSame(k1, k2);
80
81
k2 = new KerberosKey(newKP("A"), "ssap".getBytes(), 1, 1);
82
checkNotSame(k1, k2);
83
84
k2 = new KerberosKey(newKP("A"), "pass".getBytes(), 2, 1);
85
checkNotSame(k1, k2);
86
87
k2 = new KerberosKey(newKP("A"), "pass".getBytes(), 1, 2);
88
checkNotSame(k1, k2);
89
90
// Null
91
k1 = new KerberosKey(null, "pass".getBytes(), 1, 2);
92
checkNotSame(k1, k2); // null to non-null
93
k2 = new KerberosKey(null, "pass".getBytes(), 1, 2);
94
checkSame(k1, k2); // null to null
95
96
// Even key with null principal has a string and hashCode
97
k1.toString(); k1.hashCode();
98
99
checkNotSame(k1, "Another Object");
100
101
EncryptionKey e1, e2;
102
e1 = new EncryptionKey("pass".getBytes(), 1);
103
e2 = new EncryptionKey("pass".getBytes(), 1);
104
checkSame(e1, e1); // me to me
105
checkSame(e1, e2); // same
106
107
e2.destroy();
108
checkNotSame(e1, e2);
109
checkNotSame(e2, e1);
110
checkSame(e2, e2);
111
112
e1.destroy();
113
checkNotSame(e1, e2);
114
115
// Destroyed key has string and hashCode
116
e1.toString(); e1.hashCode();
117
118
// a little different
119
e1 = new EncryptionKey("pass".getBytes(), 1);
120
e2 = new EncryptionKey("ssap".getBytes(), 1);
121
checkNotSame(e1, e2);
122
123
e2 = new EncryptionKey("pass".getBytes(), 2);
124
checkNotSame(e1, e2);
125
126
checkNotSame(e1, "Another Object");
127
128
KerberosTicket t1, t2;
129
t1 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
130
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
131
checkSame(t1, t1);
132
checkSame(t1, t2);
133
t2 = new KerberosTicket("asn11".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
134
checkNotSame(t1, t2);
135
t2 = new KerberosTicket("asn1".getBytes(), newKP("client1"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
136
checkNotSame(t1, t2);
137
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server1"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
138
checkNotSame(t1, t2);
139
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass1".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
140
checkNotSame(t1, t2);
141
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 2, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
142
checkNotSame(t1, t2);
143
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {false, true}, new Date(0), new Date(0), new Date(0), new Date(0), null);
144
checkNotSame(t1, t2);
145
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(1), new Date(0), new Date(0), new Date(0), null);
146
checkNotSame(t1, t2);
147
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(1), new Date(0), new Date(0), null);
148
checkNotSame(t1, t2);
149
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(1), new Date(0), null);
150
checkNotSame(t1, t2);
151
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(0), new InetAddress[2]);
152
checkNotSame(t1, t2);
153
154
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(1), null);
155
t1 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true}, new Date(0), new Date(0), new Date(0), new Date(2), null);
156
checkSame(t1, t2); // renewtill is useless
157
158
t2.destroy();
159
checkNotSame(t1, t2);
160
t2.hashCode(); t2.toString();
161
162
// destroyed tickets doesn't equal to each other
163
checkNotSame(t2, t1);
164
checkSame(t2, t2);
165
166
t2 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true, true, true, true, true, true, true, true, true}, new Date(0), new Date(0), new Date(0), new Date(1), null);
167
t1 = new KerberosTicket("asn1".getBytes(), newKP("client"), newKP("server"), "pass".getBytes(), 1, new boolean[] {true, true, true, true, true, true, true, true, true, true}, new Date(0), new Date(0), new Date(0), new Date(2), null);
168
checkNotSame(t1, t2); // renewtill is useful
169
170
checkNotSame(t1, "Another Object");
171
172
KerberosCredMessage m1, m2;
173
m1 = new KerberosCredMessage(newKP("C"), newKP("S"), "message".getBytes());
174
m2 = new KerberosCredMessage(newKP("C"), newKP("S"), "message".getBytes());
175
checkSame(m1, m1); // me to me
176
checkSame(m1, m2); // same
177
178
m2.destroy();
179
checkNotSame(m1, m2);
180
checkNotSame(m2, m1);
181
checkSame(m2, m2);
182
183
m1.destroy();
184
checkNotSame(m1, m2);
185
186
// Destroyed message has string and hashCode
187
m1.toString(); m1.hashCode();
188
189
// a little different
190
m1 = new KerberosCredMessage(newKP("C"), newKP("S"), "message".getBytes());
191
m2 = new KerberosCredMessage(newKP("A"), newKP("S"), "message".getBytes());
192
checkNotSame(m1, m2);
193
194
m2 = new KerberosCredMessage(newKP("C"), newKP("B"), "message".getBytes());
195
checkNotSame(m1, m2);
196
197
m1 = new KerberosCredMessage(newKP("C"), newKP("S"), "hello".getBytes());
198
checkNotSame(m1, m2);
199
200
checkNotSame(m1, "Another Object");
201
202
System.out.println("Good!");
203
}
204
205
KerberosPrincipal newKP(String s) {
206
return new KerberosPrincipal(s + "@JLABS.SFBAY.SUN.COM");
207
}
208
}
209
210