1 /* 2 * Copyright (c) 2003, 2011, 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 4898428 7022855 27 * @summary verify getInstance() works using Provider.getService() 28 * Export "PKIX" as the standard algorithm name of KeyManagerFactory 29 * @author Andreas Sterbenz 30 */ 31 32 import java.security.*; 33 34 import javax.net.ssl.*; 35 36 public class GetInstance { 37 same(Provider p1, Provider p2)38 private static void same(Provider p1, Provider p2) throws Exception { 39 if (p1 != p2) { 40 throw new Exception("not same object"); 41 } 42 } 43 main(String[] args)44 public static void main(String[] args) throws Exception { 45 long start = System.currentTimeMillis(); 46 47 Provider p = Security.getProvider("SunJSSE"); 48 49 SSLContext context; 50 context = SSLContext.getInstance("SSL"); 51 same(p, context.getProvider()); 52 context = SSLContext.getInstance("SSL", "SunJSSE"); 53 same(p, context.getProvider()); 54 context = SSLContext.getInstance("SSL", p); 55 same(p, context.getProvider()); 56 57 KeyManagerFactory kmf; 58 kmf = KeyManagerFactory.getInstance("SunX509"); 59 same(p, kmf.getProvider()); 60 kmf = KeyManagerFactory.getInstance("SunX509", "SunJSSE"); 61 same(p, kmf.getProvider()); 62 kmf = KeyManagerFactory.getInstance("SunX509", p); 63 same(p, kmf.getProvider()); 64 65 kmf = KeyManagerFactory.getInstance("NewSunX509"); 66 same(p, kmf.getProvider()); 67 kmf = KeyManagerFactory.getInstance("NewSunX509", "SunJSSE"); 68 same(p, kmf.getProvider()); 69 kmf = KeyManagerFactory.getInstance("NewSunX509", p); 70 same(p, kmf.getProvider()); 71 72 kmf = KeyManagerFactory.getInstance("PKIX"); 73 same(p, kmf.getProvider()); 74 kmf = KeyManagerFactory.getInstance("PKIX", "SunJSSE"); 75 same(p, kmf.getProvider()); 76 kmf = KeyManagerFactory.getInstance("PKIX", p); 77 same(p, kmf.getProvider()); 78 79 TrustManagerFactory tmf; 80 tmf = TrustManagerFactory.getInstance("SunX509"); 81 same(p, tmf.getProvider()); 82 tmf = TrustManagerFactory.getInstance("SunX509", "SunJSSE"); 83 same(p, tmf.getProvider()); 84 tmf = TrustManagerFactory.getInstance("SunX509", p); 85 same(p, tmf.getProvider()); 86 87 tmf = TrustManagerFactory.getInstance("PKIX"); 88 same(p, tmf.getProvider()); 89 tmf = TrustManagerFactory.getInstance("PKIX", "SunJSSE"); 90 same(p, tmf.getProvider()); 91 tmf = TrustManagerFactory.getInstance("PKIX", p); 92 same(p, tmf.getProvider()); 93 94 tmf = TrustManagerFactory.getInstance("SunPKIX"); 95 same(p, tmf.getProvider()); 96 tmf = TrustManagerFactory.getInstance("SunPKIX", "SunJSSE"); 97 same(p, tmf.getProvider()); 98 tmf = TrustManagerFactory.getInstance("SunPKIX", p); 99 same(p, tmf.getProvider()); 100 101 tmf = TrustManagerFactory.getInstance("X509"); 102 same(p, tmf.getProvider()); 103 tmf = TrustManagerFactory.getInstance("X509", "SunJSSE"); 104 same(p, tmf.getProvider()); 105 tmf = TrustManagerFactory.getInstance("X509", p); 106 same(p, tmf.getProvider()); 107 108 tmf = TrustManagerFactory.getInstance("X.509"); 109 same(p, tmf.getProvider()); 110 tmf = TrustManagerFactory.getInstance("X.509", "SunJSSE"); 111 same(p, tmf.getProvider()); 112 tmf = TrustManagerFactory.getInstance("X.509", p); 113 same(p, tmf.getProvider()); 114 115 testComSun(); 116 117 long stop = System.currentTimeMillis(); 118 System.out.println("Done (" + (stop - start) + " ms)."); 119 } 120 testComSun()121 private static void testComSun() throws Exception { 122 Provider p = Security.getProvider("SunJSSE"); 123 124 com.sun.net.ssl.SSLContext context; 125 context = com.sun.net.ssl.SSLContext.getInstance("SSL"); 126 same(p, context.getProvider()); 127 context = com.sun.net.ssl.SSLContext.getInstance("SSL", "SunJSSE"); 128 same(p, context.getProvider()); 129 context = com.sun.net.ssl.SSLContext.getInstance("SSL", p); 130 same(p, context.getProvider()); 131 132 com.sun.net.ssl.KeyManagerFactory kmf; 133 kmf = com.sun.net.ssl.KeyManagerFactory.getInstance("SunX509"); 134 same(p, kmf.getProvider()); 135 kmf = com.sun.net.ssl.KeyManagerFactory.getInstance("SunX509", "SunJSSE"); 136 same(p, kmf.getProvider()); 137 kmf = com.sun.net.ssl.KeyManagerFactory.getInstance("SunX509", p); 138 same(p, kmf.getProvider()); 139 140 com.sun.net.ssl.TrustManagerFactory tmf; 141 tmf = com.sun.net.ssl.TrustManagerFactory.getInstance("SunX509"); 142 same(p, tmf.getProvider()); 143 tmf = com.sun.net.ssl.TrustManagerFactory.getInstance("SunX509", "SunJSSE"); 144 same(p, tmf.getProvider()); 145 tmf = com.sun.net.ssl.TrustManagerFactory.getInstance("SunX509", p); 146 same(p, tmf.getProvider()); 147 } 148 149 } 150