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 Hughes/** 198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Vera Y. Petrashkova 208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.security.tests.java.security.cert; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidAlgorithmParameterException; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchAlgorithmException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchProviderException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Provider; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Security; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CertStore; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CertStoreException; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CertStoreParameters; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CertStoreSpi; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CollectionCertStoreParameters; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.LDAPCertStoreParameters; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.tests.support.SpiEngUtils; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.tests.support.cert.MyCertStoreParameters; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.tests.support.cert.MyCertStoreSpi; 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>CertStore</code> class constructors and 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * methods. 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class CertStore1Test extends TestCase { 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Constructor for CertStoreTests. 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param arg0 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public CertStore1Test(String arg0) { 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(arg0); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static final String srvCertStore = "CertStore"; 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private static final String defaultType = "LDAP"; 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static final String[] validValues = { 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "LDAP", "ldap", "Ldap", "lDAP", "lDaP" }; 648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static String[] validValuesC = null; 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private static String[] invalidValues = SpiEngUtils.invalidValues; 678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static boolean LDAPSupport = false; 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final String CollectionType = "Collection"; 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static boolean CollectionSupport = false; 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static Provider defaultProvider; 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static String defaultProviderName; 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static Provider defaultProviderCol; 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static String defaultProviderColName; 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static String NotSupportMsg = ""; 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static { 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProvider = SpiEngUtils.isSupport(defaultType, 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes srvCertStore); 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LDAPSupport = (defaultProvider != null); 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderName = (LDAPSupport ? defaultProvider.getName() : null); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NotSupportMsg = "LDAP and Collection algorithm are not supported"; 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderCol = SpiEngUtils.isSupport(CollectionType, 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes srvCertStore); 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CollectionSupport = (defaultProviderCol != null); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes defaultProviderColName = (CollectionSupport ? defaultProviderCol.getName() : null); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (CollectionSupport) { 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValuesC = new String[3]; 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValuesC[0] = CollectionType; 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValuesC[1] = CollectionType.toUpperCase(); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes validValuesC[2] = CollectionType.toLowerCase(); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private Provider dProv = null; 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private String dName = null; 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private String dType = null; 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private CertStoreParameters dParams = null; 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private String[] dValid; 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private boolean initParams() { 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!LDAPSupport && !CollectionSupport) { 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportMsg); 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return false; 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath dParams = (CollectionSupport ? (CertStoreParameters) new CollectionCertStoreParameters() : 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath (CertStoreParameters) new LDAPCertStoreParameters()); 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath dType = (CollectionSupport ? CollectionType : defaultType); 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath dProv = (CollectionSupport ? defaultProviderCol : defaultProvider); 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath dName = (CollectionSupport ? defaultProviderColName : defaultProviderName); 1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath dValid = (CollectionSupport ? validValuesC : validValues); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return true; 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private CertStore[] createCS() { 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!LDAPSupport && !CollectionSupport) { 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(NotSupportMsg); 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertStore[] ss = new CertStore[3]; 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ss[0] = CertStore.getInstance(dType, dParams); 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ss[1] = CertStore.getInstance(dType, dParams, dProv); 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ss[2] = CertStore.getInstance(dType, dParams, dName); 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return ss; 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getDefaultType()</code> method 1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: returns security property "certstore.type" or "LDAP" 1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCertStore01() { 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!LDAPSupport) { 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String dt = CertStore.getDefaultType(); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String sn = Security.getProperty("certstore.type"); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String def = "Proba.cert.store.type"; 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (sn == null) { 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes sn = defaultType; 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("Default type have not be null", dt); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect default type", dt, sn); 1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Security.setProperty("certstore.type", def); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes dt = CertStore.getDefaultType(); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect default type", dt, def); 1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Security.setProperty("certstore.type", sn); 1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Incorrect default type", Security.getProperty("certstore.type"), sn); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test for 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>CertStore</code> constructor 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: returns CertStore object 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCertStore02() throws NoSuchAlgorithmException, 1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath InvalidAlgorithmParameterException, CertStoreException { 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyCertStoreParameters pp = new MyCertStoreParameters(); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStoreSpi spi = new MyCertStoreSpi(pp); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore certS = new myCertStore(spi, dProv, dType, pp); 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect algorithm", certS.getType(), dType); 1748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Incorrect provider", certS.getProvider(), dProv); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Incorrect parameters", certS.getCertStoreParameters() 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes instanceof MyCertStoreParameters); 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS.getCertificates(null); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("CertStoreException must be thrown"); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (CertStoreException e) { 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS = new myCertStore(null, null, null, null); 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Incorrect algorithm", certS.getType()); 1848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull("Incorrect provider", certS.getProvider()); 1858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull("Incorrect parameters", certS.getCertStoreParameters()); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS.getCertificates(null); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException must be thrown"); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String type, CertStoreParameters params)</code> method 1958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NullPointerException when type is null 1978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * throws NoSuchAlgorithmException when type is incorrect; 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCertStore03() throws InvalidAlgorithmParameterException { 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 2028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(null, dParams); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException or NoSuchAlgorithmException must be thrown when type is null"); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int i = 0; i < invalidValues.length; i++) { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(invalidValues[i], dParams); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException must be thrown"); 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String type, CertStoreParameters params)</code> method 2208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: return CertStore object 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore05() 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchAlgorithmException { 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 2268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore certS; 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < dValid.length; i++) { 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS = CertStore.getInstance(dValid[i], dParams); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect type", certS.getType(), dValid[i]); 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS.getCertStoreParameters(); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for method 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getInstance(String type, CertStoreParameters params, String provider)</code> 2388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: throws IllegalArgumentException when provider is null or empty 2398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * <p/> 2408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * FIXME: verify IllegalArgumentException when provider is empty 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore06() 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, 2448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath NoSuchProviderException { 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 2478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String provider = null; 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < dValid.length; i++) { 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(dValid[i], dParams, provider); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(dValid[i], dParams, ""); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for method 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getInstance(String type, CertStoreParameters params, String provider)</code> 2668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: throws NoSuchProviderException when provider has invalid value 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore07() 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchAlgorithmException { 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 2728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < dValid.length; i++) { 2748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int j = 1; j < invalidValues.length; j++) { 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(dValid[i], dParams, invalidValues[j]); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchProviderException must be thrown"); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchProviderException e) { 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 2858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test for method 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getInstance(String type, CertStoreParameters params, String provider)</code> 2878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NullPointerException when type is null 2898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * throws NoSuchAlgorithmException when type is incorrect; 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 2918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore08() 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchProviderException, 2938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath NoSuchAlgorithmException { 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 2968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < invalidValues.length; i++) { 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(invalidValues[i], dParams, dName); 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException must be thrown"); 3018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NoSuchAlgorithmException e) { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(null, dParams, dName); 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException or NoSuchAlgorithmException must be thrown when type is null"); 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for method 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getInstance(String type, CertStoreParameters params, String provider)</code> 3158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: return CertStore object 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 3178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore10() 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException { 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 3218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore certS; 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < dValid.length; i++) { 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS = CertStore.getInstance(dValid[i], dParams, dName); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect type", certS.getType(), dValid[i]); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS.getCertStoreParameters(); 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for method 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getInstance(String type, CertStoreParameters params, Provider provider)</code> 3338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: throws IllegalArgumentException when provider is null 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 3358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore11() 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, 3378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath NoSuchProviderException { 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 3408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Provider provider = null; 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < dValid.length; i++) { 3438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(dValid[i], dParams, provider); 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>getInstance(String type, CertStoreParameters params, Provider provider)</code> method 3538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws NullPointerException when type is null 3558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * throws NoSuchAlgorithmException when type is incorrect; 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 3578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore12() 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, 3598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath NoSuchAlgorithmException { 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 3628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(null, dParams, dProv); 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException or NoSuchAlgorithmException must be thrown when type is null"); 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int i = 0; i < invalidValues.length; i++) { 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore.getInstance(invalidValues[i], dParams, dProv); 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NoSuchAlgorithmException must be thrown"); 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NoSuchAlgorithmException e) { 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 3798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test for method 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getInstance(String type, CertStoreParameters params, Provider provider)</code> 3818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: return CertStore object 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 3838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore14() 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidAlgorithmParameterException, NoSuchAlgorithmException { 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 3878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CertStore certS; 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < dValid.length; i++) { 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS = CertStore.getInstance(dValid[i], dParams, dProv); 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect type", certS.getType(), dValid[i]); 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes certS.getCertStoreParameters(); 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 3958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 3978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test for methods 3988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * <code>getCertificates(CertSelector selector)</code> 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getCRLs(CRLSelector selector)</code> 4008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: returns empty Collection when selector is null 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 4028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testCertStore15() 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws NoSuchAlgorithmException, InvalidAlgorithmParameterException, 4048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertStoreException { 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!initParams()) { 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 4078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 4088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertStore[] certS = createCS(); 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("CertStore object were not created", certS); 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Collection coll; 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < certS.length; i++) { 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes coll = certS[i].getCertificates(null); 4138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("Result collection not empty", coll.isEmpty()); 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes coll = certS[i].getCRLs(null); 4158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("Result collection not empty", coll.isEmpty()); 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 4198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Additional class to verify CertStore constructor 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesclass myCertStore extends CertStore { 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public myCertStore(CertStoreSpi spi, Provider prov, String type, CertStoreParameters params) { 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(spi, prov, type, params); 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 428