1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.net.ssl; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FileNotFoundException; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyManagementException; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyStore; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyStoreException; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchAlgorithmException; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchProviderException; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Provider; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.SecureRandom; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.UnrecoverableKeyException; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.KeyManager; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.KeyManagerFactory; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.SSLContext; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.SSLContextSpi; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.SSLEngine; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.SSLServerSocketFactory; 36051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumannimport javax.net.ssl.SSLSessionContext; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.SSLSocketFactory; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.TrustManager; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.TrustManagerFactory; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumannimport junit.framework.TestCase; 42051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.support.SpiEngUtils; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.xnet.tests.support.MySSLContextSpi; 45051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>SSLContext</code> class constructors and methods. 48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SSLContext1Test extends TestCase { 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static String srvSSLContext = "SSLContext"; 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static String defaultProtocol = "TLS"; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final String NotSupportMsg = "Default protocol is not supported"; 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static String defaultProviderName = null; 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static Provider defaultProvider = null; 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final String[] invalidValues = SpiEngUtils.invalidValues; 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static boolean DEFSupported = false; 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static String[] validValues = new String[3]; 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProvider = SpiEngUtils.isSupport(defaultProtocol, srvSSLContext); 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DEFSupported = (defaultProvider != null); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (DEFSupported) { 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProviderName = (DEFSupported ? defaultProvider.getName() 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project : null); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project validValues[0] = defaultProtocol; 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project validValues[1] = defaultProtocol.toUpperCase(); 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project validValues[2] = defaultProtocol.toLowerCase(); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } else { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol = null; 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected SSLContext[] createSSLCon() { 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(defaultProtocol + " protocol is not supported"); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext[] sslC = new SSLContext[3]; 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslC[0] = SSLContext.getInstance(defaultProtocol); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslC[1] = SSLContext.getInstance(defaultProtocol, defaultProvider); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslC[2] = SSLContext.getInstance(defaultProtocol, 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProviderName); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return sslC; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project e.printStackTrace(); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>SSLContext</code> constructor Assertion: returns 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SSLContext object 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjavax_net_ssl_SSLContextSpiLjava_security_ProviderLjava_lang_String() 97051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann throws NoSuchAlgorithmException, 98051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann KeyManagementException { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContextSpi spi = new MySSLContextSpi(); 104be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLContext sslContext = new MySslContext(spi, defaultProvider, 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol); 106be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Incorrect protocol", defaultProtocol, 107be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext.getProtocol()); 108be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Incorrect provider", defaultProvider, 109be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext.getProvider()); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManager[] tm = null; 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManager[] km = null; 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.init(km, tm, new SecureRandom()); 113be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("No SSLEngine created", 114be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext.createSSLEngine()); 115be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("No SSLEngine created", 116be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext.createSSLEngine("host", 8888)); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.init(km, tm, null); 119be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob fail("KeyManagementException should be thrown for null " 120be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob + "SecureRandom"); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (KeyManagementException e) { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 124be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext = new MySslContext(null, null, null); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect protocol", sslContext.getProtocol()); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect provider", sslContext.getProvider()); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.createSSLEngine(); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException should be thrown"); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.getSocketFactory(); 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException should be thrown"); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 140f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 141229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext#createSSLEngine() 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_createSSLEngine() throws KeyManagementException { 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContextSpi spi = new MySSLContextSpi(); 146be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLContext sslContext = new MySslContext(spi, defaultProvider, 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol); 148f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes sslContext.init(null, null, new SecureRandom()); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLEngine sslEngine = sslContext.createSSLEngine(); 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("SSL engine is null", sslEngine); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 152f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 155229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext#createSSLEngine(java.lang.String, int) 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_createSSLEngineLjava_lang_StringI() 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws KeyManagementException { 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContextSpi spi = new MySSLContextSpi(); 161be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLContext sslContext = new MySslContext(spi, defaultProvider, 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol); 163f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes sslContext.init(null, null, new SecureRandom()); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLEngine sslEngine = sslContext.createSSLEngine("www.fortify.net", 80); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("SSL engine is null", sslEngine); 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getClientSessionContext()</code> 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>getServiceSessionContext()</code> 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * methods Assertion: returns correspondent object 172f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 174051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann public void test_getClientSessionContext() throws NoSuchAlgorithmException, KeyManagementException { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext[] sslC = createSSLCon(); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("SSLContext objects were not created", sslC); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < sslC.length; i++) { 182051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann sslC[i].init(null, null, null); 183f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertNotNull("Client session is incorrectly instantiated: " + i, 184be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslC[i].getClientSessionContext()); 185f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertNotNull("Server session is incorrectly instantiated: " + i, 186be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslC[i].getServerSessionContext()); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol)</code> method Assertion: 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * returns SSLContext object 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 194be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob public void test_getInstanceLjava_lang_String01() 195be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob throws NoSuchAlgorithmException { 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext sslContext; 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < validValues.length; i++) { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(validValues[i]); 203be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("No SSLContext created", sslContext); 204be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Invalid protocol", validValues[i], 205be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext.getProtocol()); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol)</code> method Assertion: 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * throws NullPointerException when protocol is null; throws 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * NoSuchAlgorithmException when protocol is not correct; 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_String02() { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(null); 217051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann fail("NoSuchAlgorithmException or NullPointerException should be thrown (protocol is null"); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidValues.length; i++) { 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(invalidValues[i]); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchAlgorithmException was not thrown as expected for provider: " 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .concat(invalidValues[i])); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, String provider)</code> 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: throws IllegalArgumentException when provider is null 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * or empty 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_lang_String01() throws NoSuchProviderException, 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NoSuchAlgorithmException { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String provider = null; 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < validValues.length; i++) { 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(defaultProtocol, provider); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException must be thrown when provider is null"); 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(defaultProtocol, ""); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException must be thrown when provider is empty"); 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, String provider)</code> 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: throws NullPointerException when protocol is null; 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * throws NoSuchAlgorithmException when protocol is not correct; 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_lang_String02() throws NoSuchProviderException { 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(null, defaultProviderName); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchAlgorithmException or NullPointerException should be thrown (protocol is null"); 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidValues.length; i++) { 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(invalidValues[i], defaultProviderName); 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchAlgorithmException was not thrown as expected (protocol: " 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .concat(invalidValues[i]).concat(")")); 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, String provider)</code> 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: throws NoSuchProviderException when provider has 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * invalid value 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_lang_String03() throws NoSuchAlgorithmException { 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 1; i < invalidValues.length; i++) { 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int j = 0; j < validValues.length; j++) { 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(validValues[j], invalidValues[i]); 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NuSuchProviderException must be thrown (protocol: " 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .concat(validValues[j]).concat(" provider: ") 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .concat(invalidValues[i]).concat(")")); 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchProviderException e) { 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, String provider)</code> 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: returns instance of SSLContext 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_lang_String04() throws NoSuchAlgorithmException, 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NoSuchProviderException { 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext sslContext; 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < validValues.length; i++) { 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(validValues[i], 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProviderName); 320be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("Not SSLContext created", sslContext); 321be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Invalid protocol", 322be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob validValues[i], sslContext.getProtocol()); 323be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Invalid provider", 324be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob defaultProvider, sslContext.getProvider()); 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, Provider provider)</code> 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: throws IllegalArgumentException when provider is null 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_security_Provider01() throws NoSuchAlgorithmException { 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider provider = null; 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < validValues.length; i++) { 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(validValues[i], provider); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException must be thrown when provider is null"); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, Provider provider)</code> 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: throws NullPointerException when protocol is null; 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * throws NoSuchAlgorithmException when protocol is not correct; 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_security_Provider02() { 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(null, defaultProvider); 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NoSuchAlgorithmException or NullPointerException should be thrown (protocol is null"); 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidValues.length; i++) { 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext.getInstance(invalidValues[i], defaultProvider); 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected NoSuchAlgorithmException was not thrown as expected"); 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getInstance(String protocol, Provider provider)</code> 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method Assertion: returns instance of SSLContext 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInstanceLjava_lang_StringLjava_security_Provider03() throws NoSuchAlgorithmException { 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext sslContext; 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < validValues.length; i++) { 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getInstance(validValues[i], defaultProvider); 385be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("Not SSLContext created", sslContext); 386be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Invalid protocol", validValues[i], sslContext.getProtocol()); 387be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertEquals("Invalid provider", defaultProvider, sslContext.getProvider()); 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 390f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 392f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 393f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchProviderException 394229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext#getProtocol() 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getProtocol() 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws NoSuchAlgorithmException, NoSuchProviderException { 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContextSpi spi = new MySSLContextSpi(); 400be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLContext sslContext = new MySslContext(spi, defaultProvider, 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol); 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect protocol", 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol, sslContext.getProtocol()); 404be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslContext = new MySslContext(spi, defaultProvider, 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect protocol", sslContext.getProtocol()); 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(defaultProtocol); 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect protocol", 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol, sslContext.getProtocol()); 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(defaultProtocol, defaultProvider); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect protocol", 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol, sslContext.getProtocol()); 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(defaultProtocol, defaultProviderName); 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect protocol", 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol, sslContext.getProtocol()); 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 417f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 419f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 420f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchProviderException 421229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext#getProvider() 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 423f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public void test_getProvider() 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws NoSuchAlgorithmException, NoSuchProviderException { 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContextSpi spi = new MySSLContextSpi(); 427be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLContext sslContext = new MySslContext(spi, defaultProvider, 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol); 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect provider", 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProvider, sslContext.getProvider()); 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(defaultProtocol, defaultProvider); 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect provider", 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProvider, sslContext.getProvider()); 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext = SSLContext.getInstance(defaultProtocol, defaultProviderName); 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect provider", 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProvider, sslContext.getProvider()); 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 440229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext#getServletSessionContext() 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getServerSessionContext() throws NoSuchAlgorithmException, 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagementException, KeyStoreException, 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project UnrecoverableKeyException { 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext[] sslC = createSSLCon(); 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("SSLContext objects were not created", sslC); 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String tAlg = TrustManagerFactory.getDefaultAlgorithm(); 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String kAlg = KeyManagerFactory.getDefaultAlgorithm(); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (tAlg == null) 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("TrustManagerFactory default algorithm is not defined"); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (kAlg == null) 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("KeyManagerFactory default algorithm is not defined"); 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagerFactory kmf = KeyManagerFactory.getInstance(kAlg); 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project kmf.init(null, new char[11]); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManagerFactory tmf = TrustManagerFactory.getInstance(tAlg); 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tmf.init(ks); 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManager[] tms = tmf.getTrustManagers(); 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (SSLContext sslCi : sslC) { 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslCi.init(kmf.getKeyManagers(), tms, new SecureRandom()); 462be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("Server context is incorrectly instantiated", sslCi 463be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob .getServerSessionContext()); 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>getServerSocketFactory()</code> 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>getSocketFactory()</code> 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>init(KeyManager[] km, TrustManager[] tm, SecureRandom random)</code> 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * methods Assertion: returns correspondent object 472f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getServerSocketFactory() throws NoSuchAlgorithmException, 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagementException, KeyStoreException, 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project UnrecoverableKeyException { 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) { 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(NotSupportMsg); 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext[] sslC = createSSLCon(); 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("SSLContext objects were not created", sslC); 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String tAlg = TrustManagerFactory.getDefaultAlgorithm(); 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String kAlg = KeyManagerFactory.getDefaultAlgorithm(); 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (tAlg == null) { 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("TrustManagerFactory default algorithm is not defined"); 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (kAlg == null) { 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("KeyManagerFactory default algorithm is not defined"); 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagerFactory kmf = KeyManagerFactory.getInstance(kAlg); 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ks.load(null, null); 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail(e + " was thrown for method load(null, null)"); 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project kmf.init(ks, new char[10]); 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManager[] kms = kmf.getKeyManagers(); 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManagerFactory tmf = TrustManagerFactory.getInstance(tAlg); 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tmf.init(ks); 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManager[] tms = tmf.getTrustManagers(); 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < sslC.length; i++) { 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslC[i].init(kms, tms, new SecureRandom()); 507be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("No SSLServerSocketFactory available", 508be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslC[i].getServerSocketFactory()); 509be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("No SSLSocketFactory available", 510be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslC[i].getSocketFactory()); 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 515229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext#getSocketFactory() 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getSocketFactory() throws NoSuchAlgorithmException, 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagementException, KeyStoreException, 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project UnrecoverableKeyException { 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContext[] sslC = createSSLCon(); 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("SSLContext objects were not created", sslC); 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String tAlg = TrustManagerFactory.getDefaultAlgorithm(); 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String kAlg = KeyManagerFactory.getDefaultAlgorithm(); 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (tAlg == null) 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("TrustManagerFactory default algorithm is not defined"); 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (kAlg == null) 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("KeyManagerFactory default algorithm is not defined"); 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagerFactory kmf = KeyManagerFactory.getInstance(kAlg); 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project kmf.init(null, new char[11]); 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManagerFactory tmf = TrustManagerFactory.getInstance(tAlg); 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tmf.init(ks); 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManager[] tms = tmf.getTrustManagers(); 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (SSLContext sslCi : sslC) { 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslCi.init(kmf.getKeyManagers(), tms, new SecureRandom()); 537be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob assertNotNull("Socket factory is incorrectly instantiated", 538be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob sslCi.getSocketFactory()); 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 543f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 544f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyStoreException 545f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws FileNotFoundException 546f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 547229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLContext# 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.security.SecureRandom) 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_init$Ljavax_net_ssl_KeyManager$Ljavax_net_ssl_TrustManagerLjava_security_SecureRandom() 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws Exception { 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!DEFSupported) fail(NotSupportMsg); 554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SSLContextSpi spi = new MySSLContextSpi(); 555be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLContext sslContext = new MySslContext(spi, defaultProvider, 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project defaultProtocol); 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.createSSLEngine(); 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected RuntimeException was not thrown"); 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (RuntimeException rte) { 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 563f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.init(null, null, null); 566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("KeyManagementException wasn't thrown"); 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (KeyManagementException kme) { 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 570f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String tAlg = TrustManagerFactory.getDefaultAlgorithm(); 573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String kAlg = KeyManagerFactory.getDefaultAlgorithm(); 574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (tAlg == null) 575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("TrustManagerFactory default algorithm is not defined"); 576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (kAlg == null) 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("KeyManagerFactory default algorithm is not defined"); 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyManagerFactory kmf = KeyManagerFactory.getInstance(kAlg); 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project kmf.init(null, new char[11]); 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManagerFactory tmf = TrustManagerFactory.getInstance(tAlg); 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tmf.init(ks); 583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project TrustManager[] tms = tmf.getTrustManagers(); 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sslContext.init(kmf.getKeyManagers(), tms, new SecureRandom()); 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println("EE = " + e); 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Addifional class to verify SSLContext constructor 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 595be25811712488827cf836ee6170eca8fb4e14fe4Urs Grobclass MySslContext extends SSLContext { 596be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob public MySslContext(SSLContextSpi spi, Provider prov, String alg) { 597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(spi, prov, alg); 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 600