1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.xnet.tests.javax.net.ssl; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidAlgorithmParameterException; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.KeyStore; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.KeyStoreException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchAlgorithmException; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchProviderException; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Provider; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Security; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.UnrecoverableKeyException; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.net.ssl.ManagerFactoryParameters; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.net.ssl.KeyManager; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.net.ssl.KeyManagerFactory; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.net.ssl.KeyManagerFactorySpi; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.xnet.tests.support.SpiEngUtils; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.xnet.tests.support.MyKeyManagerFactorySpi; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>KeyManagerFactory</code> class constructors and methods. 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class KeyManagerFactory1Test extends TestCase { 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String srvKeyManagerFactory = "KeyManagerFactory"; 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static String defaultAlgorithm = null; 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static String defaultProviderName = null; 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static Provider defaultProvider = null; 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static boolean DEFSupported = false; 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String NotSupportedMsg = "There is no suitable provider for KeyManagerFactory"; 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String[] invalidValues = SpiEngUtils.invalidValues; 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static String[] validValues = new String[3]; 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static { 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultAlgorithm = Security 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getProperty("ssl.KeyManagerFactory.algorithm"); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (defaultAlgorithm != null) { 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProvider = SpiEngUtils.isSupport(defaultAlgorithm, 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes srvKeyManagerFactory); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DEFSupported = (defaultProvider != null); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderName = (DEFSupported ? defaultProvider.getName() 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes : null); 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValues[0] = defaultAlgorithm; 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValues[1] = defaultAlgorithm.toUpperCase(); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValues[2] = defaultAlgorithm.toLowerCase(); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected KeyManagerFactory[] createKMFac() { 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(defaultAlgorithm + " algorithm is not supported"); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory[] kMF = new KeyManagerFactory[3]; 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes kMF[0] = KeyManagerFactory.getInstance(defaultAlgorithm); 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes kMF[1] = KeyManagerFactory.getInstance(defaultAlgorithm, 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProvider); 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes kMF[2] = KeyManagerFactory.getInstance(defaultAlgorithm, 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderName); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return kMF; 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes e.printStackTrace(); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getDefaultAlgorithm()</code> method 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: returns value which is specifoed in security property 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetDefaultAlgorithm() { 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String def = KeyManagerFactory.getDefaultAlgorithm(); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (defaultAlgorithm == null) { 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("DefaultAlgorithm must be null", def); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Invalid default algorithm", def, defaultAlgorithm); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String defA = "Proba.keymanagerfactory.defaul.type"; 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Security.setProperty("ssl.KeyManagerFactory.algorithm", defA); 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect defaultAlgorithm", 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getDefaultAlgorithm(), defA); 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (def == null) { 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes def = ""; 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Security.setProperty("ssl.KeyManagerFactory.algorithm", def); 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect defaultAlgorithm", 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getDefaultAlgorithm(), def); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm)</code> method 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertions: 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * returns security property "ssl.KeyManagerFactory.algorithm"; 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * returns instance of KeyManagerFactory 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory01() throws NoSuchAlgorithmException { 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory keyMF; 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < validValues.length; i++) { 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF = KeyManagerFactory.getInstance(validValues[i]); 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Not KeyManagerFactory object", 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF instanceof KeyManagerFactory); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Invalid algorithm", keyMF.getAlgorithm(), 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValues[i]); 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm)</code> method 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NullPointerException when algorithm is null; 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NoSuchAlgorithmException when algorithm is not correct; 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory02() { 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(null); 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException or NullPointerException should be thrown (algorithm is null"); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < invalidValues.length; i++) { 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(invalidValues[i]); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException was not thrown as expected for algorithm: " 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .concat(invalidValues[i])); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, String provider)</code> 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: throws IllegalArgumentException when provider is null or empty 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory03() throws NoSuchProviderException, 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NoSuchAlgorithmException { 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String provider = null; 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < validValues.length; i++) { 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(validValues[i], provider); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException was not thrown for null provider"); 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(validValues[i], ""); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException was not thrown for empty provider"); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, String provider)</code> 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NullPointerException when algorithm is null; 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NoSuchAlgorithmException when algorithm is not correct; 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory04() throws NoSuchProviderException { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(null, defaultProviderName); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException or NullPointerException should be thrown (algorithm is null"); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < invalidValues.length; i++) { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(invalidValues[i], 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderName); 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException must be thrown (algorithm: " 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .concat(invalidValues[i]).concat(")")); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, String provider)</code> 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: throws NoSuchProviderException when provider has 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * invalid value 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory05() throws NoSuchAlgorithmException { 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < validValues.length; i++) { 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 1; j < invalidValues.length; j++) { 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(validValues[i], 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes invalidValues[j]); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NuSuchProviderException must be thrown (algorithm: " 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + validValues[i] + " provider: " + invalidValues[j] 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ")"); 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchProviderException e) { 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, String provider)</code> 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method Assertion: returns instance of KeyManagerFactory 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory06() throws NoSuchProviderException, 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NoSuchAlgorithmException { 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory kMF; 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < validValues.length; i++) { 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes kMF = KeyManagerFactory.getInstance(validValues[i], 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderName); 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Not KeyManagerFactory object", 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes kMF instanceof KeyManagerFactory); 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect algorithm", kMF.getAlgorithm(), 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValues[i]); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect provider", kMF.getProvider().getName(), 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderName); 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, Provider provider)</code> 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: throws IllegalArgumentException when provider is null 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory07() throws NoSuchAlgorithmException { 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Provider provider = null; 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < validValues.length; i++) { 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(validValues[i], provider); 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException was not thrown when provider is null"); 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, Provider provider)</code> 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NullPointerException when algorithm is null; 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NoSuchAlgorithmException when algorithm is not correct; 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory08() { 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory.getInstance(null, defaultProvider); 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException or NullPointerException should be thrown (algorithm is null"); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < invalidValues.length; i++) { 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getInstance(invalidValues[i], defaultProvider); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected NuSuchAlgorithmException was not thrown"); 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String algorithm, Provider provider)</code> 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * method 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: returns instance of KeyManagerFactory 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory09() throws NoSuchAlgorithmException, 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes IllegalArgumentException { 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory kMF; 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < validValues.length; i++) { 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes kMF = KeyManagerFactory 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getInstance(validValues[i], defaultProvider); 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(kMF instanceof KeyManagerFactory); 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(kMF.getAlgorithm(), validValues[i]); 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(kMF.getProvider(), defaultProvider); 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>KeyManagerFactory</code> constructor 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: returns KeyManagerFactory object 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory10() throws Exception { 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactorySpi spi = new MyKeyManagerFactorySpi(); 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory keyMF = new myKeyManagerFactory(spi, defaultProvider, 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultAlgorithm); 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Not CertStore object", keyMF instanceof KeyManagerFactory); 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect algorithm", keyMF.getAlgorithm(), 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultAlgorithm); 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect provider", keyMF.getProvider(), defaultProvider); 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF.init(null, new char[1]); 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("UnrecoverableKeyException must be thrown"); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnrecoverableKeyException e) { 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF = new myKeyManagerFactory(null, null, null); 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Not CertStore object", keyMF instanceof KeyManagerFactory); 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Aalgorithm must be null", keyMF.getAlgorithm()); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Provider must be null", keyMF.getProvider()); 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF.getKeyManagers(); 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>init(KeyStore keyStore, char[] password)</code> and 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getKeyManagers()</code> 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: returns not empty KeyManager array 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory11() throws Exception { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory[] keyMF = createKMFac(); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("KeyManagerFactory object were not created", keyMF); 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyStore ksNull = null; 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManager[] km; 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < keyMF.length; i++) { 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF[i].init(ksNull, new char[10]); 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes km = keyMF[i].getKeyManagers(); 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("Result should not be null", km); 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Length of result KeyManager array should not be 0", 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (km.length > 0)); 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyStore ks; 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ks = KeyStore.getInstance(KeyStore.getDefaultType()); 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ks.load(null, null); 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < keyMF.length; i++) { 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF[i].init(ks, new char[10]); 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (KeyStoreException e) { 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes km = keyMF[i].getKeyManagers(); 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("Result has not be null", km); 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Length of result KeyManager array should not be 0", 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (km.length > 0)); 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>init(ManagerFactoryParameters params)</code> 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws InvalidAlgorithmParameterException when params is null 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testKeyManagerFactory12() throws NoSuchAlgorithmException { 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!DEFSupported) { 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportedMsg); 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ManagerFactoryParameters par = null; 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyManagerFactory[] keyMF = createKMFac(); 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("KeyManagerFactory object were not created", keyMF); 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < keyMF.length; i++) { 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes keyMF[i].init(par); 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("InvalidAlgorithmParameterException must be thrown"); 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidAlgorithmParameterException e) { 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Additional class for KeyManagerFactory constructor verification 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesclass myKeyManagerFactory extends KeyManagerFactory { 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public myKeyManagerFactory(KeyManagerFactorySpi spi, Provider prov, 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String alg) { 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(spi, prov, alg); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 440