Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/rmi/ssl/SocketFactoryTest.java
41149 views
1
/*
2
* Copyright (c) 2003, 2012, 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 4932837 6582235
27
* @summary Test SslRMI[Client|Server]SocketFactory equals() and hashCode().
28
* This test does not affect VM global state, so othervm is
29
* not required.
30
* @author Daniel Fuchs
31
*
32
* @run main SocketFactoryTest
33
*/
34
35
import java.io.PrintWriter;
36
import java.io.IOException;
37
import java.io.Serializable;
38
import java.io.ObjectInputStream;
39
import java.io.ObjectOutputStream;
40
import java.io.ByteArrayInputStream;
41
import java.io.ByteArrayOutputStream;
42
import java.util.Map;
43
import java.util.HashMap;
44
import javax.net.ssl.SSLContext;
45
import javax.rmi.ssl.SslRMIClientSocketFactory;
46
import javax.rmi.ssl.SslRMIServerSocketFactory;
47
48
public class SocketFactoryTest {
49
50
public static final String[] ciphersuite =
51
new String[] { "SSL_RSA_WITH_NULL_MD5" };
52
53
public static final String[] protocol =
54
new String[] { "TLSv1" };
55
56
public static class MySslRMIClientSocketFactory
57
extends SslRMIClientSocketFactory {
58
}
59
60
public static class MySslRMIServerSocketFactory
61
extends SslRMIServerSocketFactory {
62
public MySslRMIServerSocketFactory() {
63
super();
64
}
65
public MySslRMIServerSocketFactory(String[] ciphers,
66
String[] protocols,
67
boolean need) {
68
super(ciphers, protocols, need);
69
}
70
public MySslRMIServerSocketFactory(SSLContext context,
71
String[] ciphers,
72
String[] protocols,
73
boolean need) {
74
super(context, ciphers, protocols, need);
75
}
76
}
77
78
public static Object serializeAndClone(Object o) throws Exception {
79
System.out.println("Serializing object: " + o);
80
final ByteArrayOutputStream obytes =
81
new ByteArrayOutputStream();
82
final ObjectOutputStream ostr =
83
new ObjectOutputStream(obytes);
84
ostr.writeObject(o);
85
ostr.flush();
86
87
System.out.println("Deserializing object");
88
final ByteArrayInputStream ibytes =
89
new ByteArrayInputStream(obytes.toByteArray());
90
final ObjectInputStream istr =
91
new ObjectInputStream(ibytes);
92
return istr.readObject();
93
}
94
95
public static void testEquals(Object a, Object b, boolean expected) {
96
final boolean found = a.equals(b);
97
if (found != expected)
98
throw new RuntimeException("testEquals failed: objects are " +
99
((found)?"equals":"not equals"));
100
if (found && a.hashCode()!=b.hashCode())
101
throw new RuntimeException("testEquals failed: objects are " +
102
"equals but their hashcode differ");
103
}
104
105
public static void main(String[] args) {
106
try {
107
System.out.println("SocketFactoryTest START.");
108
109
final SSLContext context = SSLContext.getInstance("SSL");
110
context.init(null, null, null);
111
112
final SslRMIClientSocketFactory client1 =
113
new SslRMIClientSocketFactory();
114
final SslRMIClientSocketFactory client2 =
115
new SslRMIClientSocketFactory();
116
final SslRMIClientSocketFactory client11 =
117
(SslRMIClientSocketFactory) serializeAndClone(client1);
118
final SslRMIClientSocketFactory client21 =
119
(SslRMIClientSocketFactory) serializeAndClone(client2);
120
final SslRMIServerSocketFactory server1 =
121
new SslRMIServerSocketFactory();
122
final SslRMIServerSocketFactory server2 =
123
new SslRMIServerSocketFactory(null,
124
null,
125
false);
126
final SslRMIServerSocketFactory server3 =
127
new SslRMIServerSocketFactory(ciphersuite,
128
null,
129
false);
130
final SslRMIServerSocketFactory server4 =
131
new SslRMIServerSocketFactory(null,
132
protocol,
133
false);
134
final SslRMIServerSocketFactory server5 =
135
new SslRMIServerSocketFactory(null,
136
null,
137
true);
138
final SslRMIServerSocketFactory server6 =
139
new SslRMIServerSocketFactory(null,
140
null,
141
null,
142
false);
143
final SslRMIServerSocketFactory server7 =
144
new SslRMIServerSocketFactory(SSLContext.getDefault(),
145
null,
146
null,
147
false);
148
final SslRMIServerSocketFactory server8 =
149
new SslRMIServerSocketFactory(null,
150
null,
151
null,
152
true);
153
final SslRMIServerSocketFactory server9 =
154
new SslRMIServerSocketFactory(SSLContext.getDefault(),
155
null,
156
null,
157
true);
158
final SslRMIServerSocketFactory server10 =
159
new SslRMIServerSocketFactory(context,
160
null,
161
null,
162
true);
163
final MySslRMIClientSocketFactory subclient1 =
164
new MySslRMIClientSocketFactory();
165
final MySslRMIClientSocketFactory subclient2 =
166
new MySslRMIClientSocketFactory();
167
final MySslRMIServerSocketFactory subserver1 =
168
new MySslRMIServerSocketFactory();
169
final MySslRMIServerSocketFactory subserver2 =
170
new MySslRMIServerSocketFactory(null,
171
null,
172
false);
173
final MySslRMIServerSocketFactory subserver3 =
174
new MySslRMIServerSocketFactory(ciphersuite,
175
null,
176
false);
177
final MySslRMIServerSocketFactory subserver4 =
178
new MySslRMIServerSocketFactory(null,
179
protocol,
180
false);
181
final MySslRMIServerSocketFactory subserver5 =
182
new MySslRMIServerSocketFactory(null,
183
null,
184
true);
185
final MySslRMIServerSocketFactory subserver6 =
186
new MySslRMIServerSocketFactory(null,
187
ciphersuite,
188
null,
189
false);
190
final MySslRMIServerSocketFactory subserver7 =
191
new MySslRMIServerSocketFactory(SSLContext.getDefault(),
192
ciphersuite,
193
null,
194
false);
195
final MySslRMIServerSocketFactory subserver8 =
196
new MySslRMIServerSocketFactory(context,
197
null,
198
null,
199
true);
200
201
// clients
202
System.out.println("testEquals(client1,client1,true)");
203
testEquals(client1,client1,true);
204
System.out.println("testEquals(client1,client2,true)");
205
testEquals(client1,client2,true);
206
System.out.println("testEquals(client1,client11,true)");
207
testEquals(client1,client11,true);
208
System.out.println("testEquals(client1,client21,true)");
209
testEquals(client1,client21,true);
210
System.out.println("testEquals(client11,client21,true)");
211
testEquals(client11,client21,true);
212
System.out.println("testEquals(client1,null,false)");
213
testEquals(client1,null,false);
214
System.out.println("testEquals(client1,server1,false)");
215
testEquals(client1,server1,false);
216
System.out.println("testEquals(client21,server2,false)");
217
testEquals(client21,server2,false);
218
System.out.println("testEquals(client1,new Object(),false)");
219
testEquals(client1,new Object(),false);
220
221
// servers
222
System.out.println("testEquals(server1,server1,true)");
223
testEquals(server1,server1,true);
224
System.out.println("testEquals(server2,server2,true)");
225
testEquals(server2,server2,true);
226
System.out.println("testEquals(server3,server3,true)");
227
testEquals(server3,server3,true);
228
System.out.println("testEquals(server4,server4,true)");
229
testEquals(server4,server4,true);
230
System.out.println("testEquals(server5,server5,true)");
231
testEquals(server5,server5,true);
232
System.out.println("testEquals(server1,server2,true)");
233
testEquals(server1,server2,true);
234
System.out.println("testEquals(server1,server3,false)");
235
testEquals(server1,server3,false);
236
System.out.println("testEquals(server2,server3,false)");
237
testEquals(server2,server3,false);
238
System.out.println("testEquals(server3,server4,false)");
239
testEquals(server3,server4,false);
240
System.out.println("testEquals(server4,server5,false)");
241
testEquals(server4,server5,false);
242
System.out.println("testEquals(server6,server7,false)");
243
testEquals(server6,server7,false);
244
System.out.println("testEquals(server8,server9,false)");
245
testEquals(server8,server9,false);
246
System.out.println("testEquals(server9,server10,false)");
247
testEquals(server9,server10,false);
248
System.out.println("testEquals(server2,server6,true)");
249
testEquals(server2,server6,true);
250
System.out.println("testEquals(server2,server7,false)");
251
testEquals(server2,server7,false);
252
System.out.println("testEquals(server5,server8,true)");
253
testEquals(server5,server8,true);
254
System.out.println("testEquals(server5,server9,false)");
255
testEquals(server5,server9,false);
256
System.out.println("testEquals(server1,null,false)");
257
testEquals(server1,null,false);
258
System.out.println("testEquals(server2,null,false)");
259
testEquals(server2,null,false);
260
System.out.println("testEquals(server3,null,false)");
261
testEquals(server3,null,false);
262
System.out.println("testEquals(server1,client2,false)");
263
testEquals(server1,client2,false);
264
System.out.println("testEquals(server2,client11,false)");
265
testEquals(server2,client11,false);
266
System.out.println("testEquals(server1,new Object(),false)");
267
testEquals(server1,new Object(),false);
268
269
// client subclass
270
System.out.println("testEquals(subclient1,subclient1,true)");
271
testEquals(subclient1,subclient1,true);
272
System.out.println("testEquals(subclient1,subclient2,true)");
273
testEquals(subclient1,subclient2,true);
274
System.out.println("testEquals(subclient1,client1,false)");
275
testEquals(subclient1,client1,false);
276
System.out.println("testEquals(client1,subclient1,false)");
277
testEquals(client1,subclient1,false);
278
System.out.println("testEquals(subclient1,null,false)");
279
testEquals(subclient1,null,false);
280
System.out.println("testEquals(subclient1,server1,false)");
281
testEquals(subclient1,server1,false);
282
System.out.println("testEquals(server1,subclient1,false)");
283
testEquals(server1,subclient1,false);
284
System.out.println("testEquals(subclient2,subserver2,false)");
285
testEquals(subclient1,subserver2,false);
286
System.out.println("testEquals(subclient1,new Object(),false)");
287
testEquals(subclient1,new Object(),false);
288
289
// server subclass
290
System.out.println("testEquals(subserver1,subserver1,true)");
291
testEquals(subserver1,subserver1,true);
292
System.out.println("testEquals(subserver2,subserver2,true)");
293
testEquals(subserver2,subserver2,true);
294
System.out.println("testEquals(subserver3,subserver3,true)");
295
testEquals(subserver3,subserver3,true);
296
System.out.println("testEquals(subserver4,subserver4,true)");
297
testEquals(subserver4,subserver4,true);
298
System.out.println("testEquals(subserver5,subserver5,true)");
299
testEquals(subserver5,subserver5,true);
300
System.out.println("testEquals(subserver1,subserver2,true)");
301
testEquals(subserver1,subserver2,true);
302
System.out.println("testEquals(subserver1,subserver3,false)");
303
testEquals(subserver1,subserver3,false);
304
System.out.println("testEquals(subserver2,subserver3,false)");
305
testEquals(subserver2,subserver3,false);
306
System.out.println("testEquals(subserver3,subserver4,false)");
307
testEquals(subserver3,subserver4,false);
308
System.out.println("testEquals(subserver4,subserver5,false)");
309
testEquals(subserver4,subserver5,false);
310
System.out.println("testEquals(subserver3,subserver6,true)");
311
testEquals(subserver3,subserver6,true);
312
System.out.println("testEquals(subserver3,subserver7,false)");
313
testEquals(subserver3,subserver7,false);
314
System.out.println("testEquals(subserver1,server1,false)");
315
testEquals(subserver1,server1,false);
316
System.out.println("testEquals(server1,subserver1,false)");
317
testEquals(server1,subserver1,false);
318
System.out.println("testEquals(subserver2,server2,false)");
319
testEquals(subserver2,server2,false);
320
System.out.println("testEquals(server2,subserver2,false)");
321
testEquals(server2,subserver2,false);
322
System.out.println("testEquals(subserver3,server3,false)");
323
testEquals(subserver3,server3,false);
324
System.out.println("testEquals(server3,subserver3,false)");
325
testEquals(server3,subserver3,false);
326
System.out.println("testEquals(subserver4,server4,false)");
327
testEquals(subserver4,server4,false);
328
System.out.println("testEquals(server4,subserver4,false)");
329
testEquals(server4,subserver4,false);
330
System.out.println("testEquals(subserver5,server5,false)");
331
testEquals(subserver5,server5,false);
332
System.out.println("testEquals(server5,subserver5,false)");
333
testEquals(server5,subserver5,false);
334
System.out.println("testEquals(server10,subserver8,false)");
335
testEquals(server10,subserver8,false);
336
System.out.println("testEquals(subserver8,server10,false)");
337
testEquals(subserver8,server10,false);
338
System.out.println("testEquals(subserver1,null,false)");
339
testEquals(subserver1,null,false);
340
System.out.println("testEquals(subserver1,client2,false)");
341
testEquals(subserver1,client2,false);
342
System.out.println("testEquals(subserver1,subclient2,false)");
343
testEquals(subserver1,subclient2,false);
344
System.out.println("testEquals(client1,subserver2,false)");
345
testEquals(client1,subserver2,false);
346
System.out.println("testEquals(subserver1,new Object(),false)");
347
testEquals(subserver1,new Object(),false);
348
349
System.out.println("SocketFactoryTest PASSED.");
350
} catch (Exception x) {
351
System.out.println("SocketFactoryTest FAILED: " + x);
352
x.printStackTrace();
353
System.exit(1);
354
}
355
}
356
}
357
358