Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/sun/security/ssl/X509KeyManager/SelectOneKeyOutOfMany.java
41152 views
1
/*
2
* Copyright (c) 2001, 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 4387949 4302197
27
* @summary Need to add Sockets and key arrays to the
28
* X509KeyManager.choose*Alias() methods & There's no mechanism
29
* to select one key out of many in a keystore
30
*
31
* chooseServerAlias method is reverted back to accept a single
32
* keytype as a parameter, please see RFE: 4501014
33
* The part of the test on the server-side is changed to test
34
* passing in a single keytype parameter to chooseServerAlias method.
35
*
36
* @author Brad Wetmore
37
*/
38
39
import java.io.*;
40
import java.net.*;
41
import java.security.*;
42
import javax.net.ssl.*;
43
44
public class SelectOneKeyOutOfMany {
45
46
/*
47
* =============================================================
48
* Set the various variables needed for the tests, then
49
* specify what tests to run on each side.
50
*/
51
52
/*
53
* Where do we find the keystores?
54
*/
55
static String pathToStores = "../../../../javax/net/ssl/etc";
56
static String keyStoreFile = "keystore";
57
static String passwd = "passphrase";
58
59
public static void main(String[] args) throws Exception {
60
KeyStore ks;
61
KeyManagerFactory kmf;
62
X509KeyManager km;
63
64
char[] passphrase = passwd.toCharArray();
65
66
String keyFilename =
67
System.getProperty("test.src", ".") + "/" + pathToStores +
68
"/" + keyStoreFile;
69
/*
70
* Setup the tests.
71
*/
72
kmf = KeyManagerFactory.getInstance("SunX509");
73
ks = KeyStore.getInstance("JKS");
74
ks.load(new FileInputStream(keyFilename), passphrase);
75
kmf.init(ks, passphrase);
76
km = (X509KeyManager) kmf.getKeyManagers()[0];
77
78
/*
79
* There should be one of each key type here.
80
*/
81
String [] nothing = new String [] { "nothing" };
82
String [] rsa = new String [] { "RSA" };
83
String [] dsa = new String [] { "DSA" };
84
String [] rsaDsa = new String [] { "RSA", "DSA" };
85
String [] dsaRsa = new String [] { "DSA", "RSA" };
86
87
String resultsRsaDsa, resultsDsaRsa;
88
String resultsRsa, resultsDsa;
89
String resultsNone;
90
91
String [] resultArrayRSA;
92
String [] resultArrayDSA;
93
94
/*
95
* Check get*Aliases for null returns
96
*/
97
if (km.getClientAliases("nothing", null) != null)
98
throw new Exception("km.getClientAliases(nothing) != null");
99
System.out.println("km.getClientAlias(nothing) returning nulls");
100
101
if (km.getServerAliases("nothing", null) != null)
102
throw new Exception("km.getServerAliases(nothing) != null");
103
System.out.println("km.getServerAlias(nothing) returning nulls");
104
System.out.println("=====");
105
106
System.out.println("Dumping Certs...");
107
if ((resultArrayRSA = km.getServerAliases("RSA", null)) == null)
108
throw new Exception("km.getServerAliases(RSA) == null");
109
for (int i = 0; i < resultArrayRSA.length; i++) {
110
System.out.println(" resultArrayRSA#" + i + ": " +
111
resultArrayRSA[i]);
112
}
113
114
if ((resultArrayDSA = km.getServerAliases("DSA", null)) == null)
115
throw new Exception("km.getServerAliases(DSA) == null");
116
for (int i = 0; i < resultArrayDSA.length; i++) {
117
System.out.println(" resultArrayDSA#" + i + ": " +
118
resultArrayDSA[i]);
119
}
120
System.out.println("=====");
121
122
/*
123
* Check chooseClientAliases for null returns
124
*/
125
resultsNone = km.chooseClientAlias(nothing, null, null);
126
if (resultsNone != null) {
127
throw new Exception("km.chooseClientAlias(nothing) != null");
128
}
129
System.out.println("km.ChooseClientAlias(nothing) passed");
130
131
/*
132
* Check chooseClientAlias for RSA keys.
133
*/
134
resultsRsa = km.chooseClientAlias(rsa, null, null);
135
if (resultsRsa == null) {
136
throw new Exception(
137
"km.chooseClientAlias(rsa, null, null) != null");
138
}
139
System.out.println("km.chooseClientAlias(rsa) passed");
140
141
/*
142
* Check chooseClientAlias for DSA keys.
143
*/
144
resultsDsa = km.chooseClientAlias(dsa, null, null);
145
if (resultsDsa == null) {
146
throw new Exception(
147
"km.chooseClientAlias(dsa, null, null) != null");
148
}
149
System.out.println("km.chooseClientAlias(dsa) passed");
150
151
/*
152
* There should be both an rsa and a dsa entry in the
153
* keystore.
154
*
155
* Check chooseClientAlias for RSA/DSA keys and be sure
156
* the ordering is correct.
157
*/
158
resultsRsaDsa = km.chooseClientAlias(rsaDsa, null, null);
159
if ((resultsRsaDsa == null) || (resultsRsaDsa != resultsRsa)) {
160
throw new Exception("km.chooseClientAlias(rsaDsa) failed");
161
}
162
System.out.println("km.chooseClientAlias(rsaDsa) passed");
163
164
resultsDsaRsa = km.chooseClientAlias(dsaRsa, null, null);
165
if ((resultsDsaRsa == null) || (resultsDsaRsa != resultsDsa)) {
166
throw new Exception("km.chooseClientAlias(DsaRsa) failed");
167
}
168
System.out.println("km.chooseClientAlias(DsaRsa) passed");
169
170
System.out.println("=====");
171
172
/*
173
* Check chooseServerAliases for null returns
174
*/
175
resultsNone = km.chooseServerAlias("nothing", null, null);
176
if (resultsNone != null) {
177
throw new Exception("km.chooseServerAlias(\"nothing\") != null");
178
}
179
System.out.println("km.ChooseServerAlias(\"nothing\") passed");
180
181
/*
182
* Check chooseServerAlias for RSA keys.
183
*/
184
resultsRsa = km.chooseServerAlias("RSA", null, null);
185
if (resultsRsa == null) {
186
throw new Exception(
187
"km.chooseServerAlias(\"RSA\", null, null) != null");
188
}
189
System.out.println("km.chooseServerAlias(\"RSA\") passed");
190
191
/*
192
* Check chooseServerAlias for DSA keys.
193
*/
194
resultsDsa = km.chooseServerAlias("DSA", null, null);
195
if (resultsDsa == null) {
196
throw new Exception(
197
"km.chooseServerAlias(\"DSA\", null, null) != null");
198
}
199
System.out.println("km.chooseServerAlias(\"DSA\") passed");
200
201
}
202
}
203
204