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