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/**
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes* @author Alexander Y. Kleymenov
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage java.security.cert;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.math.BigInteger;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidKeyException;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchAlgorithmException;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchProviderException;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Principal;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.PublicKey;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.SignatureException;
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CRLException;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.X509CRLEntry;
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ArrayList;
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Collection;
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Date;
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Set;
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.security.auth.x500.X500Principal;
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.asn1.ASN1Integer;
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.asn1.ASN1OctetString;
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.Test;
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestSuite;
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class X509CRLSelectorTest extends TestCase {
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * The abstract class stub implementation.
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private class TestCRL extends X509CRL {
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        private X500Principal principal = null;
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        private BigInteger crlNumber = null;
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        private Date thisUpdate = null;
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        private Date nextUpdate = null;
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public TestCRL(X500Principal principal) {
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            this.principal = principal;
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public TestCRL(Date thisUpdate, Date nextUpdate) {
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            setUpdateDates(thisUpdate, nextUpdate);
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public TestCRL(BigInteger crlNumber) {
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            setCrlNumber(crlNumber);
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void setUpdateDates(Date thisUpdate, Date nextUpdate) {
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            this.thisUpdate = thisUpdate;
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            this.nextUpdate = nextUpdate;
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
78e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void setCrlNumber(BigInteger crlNumber) {
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            this.crlNumber = crlNumber;
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public X500Principal getIssuerX500Principal() {
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return principal;
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public String toString() {
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public boolean isRevoked(Certificate cert) {
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return true;
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Set getNonCriticalExtensionOIDs() {
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Set getCriticalExtensionOIDs() {
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public byte[] getExtensionValue(String oid) {
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            if ("2.5.29.20".equals(oid) && (crlNumber != null)) {
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                return ASN1OctetString.getInstance().encode(
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        ASN1Integer.getInstance().encode(
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                crlNumber.toByteArray()));
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public boolean hasUnsupportedCriticalExtension() {
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return false;
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public byte[] getEncoded() {
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void verify(PublicKey key)
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                 throws CRLException, NoSuchAlgorithmException,
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        InvalidKeyException, NoSuchProviderException,
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        SignatureException
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        {
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public void verify(PublicKey key, String sigProvider)
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                 throws CRLException, NoSuchAlgorithmException,
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        InvalidKeyException, NoSuchProviderException,
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        SignatureException
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        {
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public int getVersion() {
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return 2;
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Principal getIssuerDN() {
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Date getThisUpdate() {
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return thisUpdate;
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Date getNextUpdate() {
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return nextUpdate;
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) {
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public Set getRevokedCertificates() {
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public byte[] getTBSCertList() {
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public byte[] getSignature() {
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public String getSigAlgName() {
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public String getSigAlgOID() {
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        public byte[] getSigAlgParams() {
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            return null;
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * setIssuers(Collection <X500Principal> issuers) method testing.
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with any issuers match the selector in the case of
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * null issuerNames criteria, if specified issuers match the selector,
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * and if not specified issuer does not match the selector.
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSetIssuers() {
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss1 = new X500Principal("O=First Org.");
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss2 = new X500Principal("O=Second Org.");
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss3 = new X500Principal("O=Third Org.");
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl1 = new TestCRL(iss1);
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl2 = new TestCRL(iss2);
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl3 = new TestCRL(iss3);
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setIssuers(null);
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Any CRL issuers should match in the case of null issuers.",
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    selector.match(crl1) && selector.match(crl2));
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayList issuers = new ArrayList(2);
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        issuers.add(iss1);
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        issuers.add(iss2);
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setIssuers(issuers);
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    selector.match(crl1) && selector.match(crl2));
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl3));
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        issuers.add(iss3);
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The internal issuer collection is not protected "
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "against the modifications.", selector.match(crl3));
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * setIssuerNames(Collection <?> names) method testing.
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with any issuers match the selector in the case of
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * null issuerNames criteria, if specified issuers match the selector,
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * if not specified issuer does not match the selector, and if the
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * internal collection of issuer names is copied during initialization.
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSetIssuerNames() {
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss1 = "O=First Org.";
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iss2 = new byte[]
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            //manually obtained DER encoding of "O=Second Org." issuer name;
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            {48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11,
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46};
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss3 = "O=Third Org.";
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl1 = new TestCRL(new X500Principal(iss1));
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl2 = new TestCRL(new X500Principal(iss2));
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl3 = new TestCRL(new X500Principal(iss3));
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.setIssuerNames(null);
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Any CRL issuers should match in the case of null issuers.",
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    selector.match(crl1) && selector.match(crl2));
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ArrayList issuers = new ArrayList(2);
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        issuers.add(iss1);
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        issuers.add(iss2);
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.setIssuerNames(issuers);
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    selector.match(crl1) && selector.match(crl2));
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl3));
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        issuers.add(iss3);
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The internal issuer collection is not protected "
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "against the modifications.", selector.match(crl3));
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * addIssuer(X500Principal issuer) method testing.
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with specified issuers match the selector,
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * and if not specified issuer does not match the selector.
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testAddIssuer() {
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss1 = new X500Principal("O=First Org.");
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss2 = new X500Principal("O=Second Org.");
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl1 = new TestCRL(iss1);
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl2 = new TestCRL(iss2);
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss1);
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl1));
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl2));
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss2);
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl2));
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * addIssuerName(String name) method testing.
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with specified issuers match the selector,
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * and if not specified issuer does not match the selector.
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testAddIssuerName1() {
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss1 = "O=First Org.";
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss2 = "O=Second Org.";
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl1 = new TestCRL(new X500Principal(iss1));
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl2 = new TestCRL(new X500Principal(iss2));
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.addIssuerName(iss1);
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl1));
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl2));
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.addIssuerName(iss2);
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl2));
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * addIssuerName(byte[] name) method testing.
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with specified issuers match the selector,
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * and if not specified issuer does not match the selector.
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testAddIssuerName2() {
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iss1 = new byte[]
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            //manually obtained DER encoding of "O=First Org." issuer name;
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            {48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10,
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                70, 105, 114, 115, 116, 32, 79, 114, 103, 46};
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iss2 = new byte[]
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            //manually obtained DER encoding of "O=Second Org." issuer name;
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            {48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11,
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46};
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl1 = new TestCRL(new X500Principal(iss1));
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl2 = new TestCRL(new X500Principal(iss2));
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.addIssuerName(iss1);
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl1));
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl2));
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.addIssuerName(iss2);
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl2));
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * setMinCRLNumber(BigInteger minCRL) method testing.
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with any crl number value match the selector in the case of
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * null crlNumber criteria, if specified minCRL value matches the selector,
353e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes     * and if CRL with inappropriate crlNumber value does not match the selector.
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSetMinCRLNumber() {
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger minCRL = new BigInteger("10000");
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl = new TestCRL(minCRL);
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMinCRLNumber(null);
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Any CRL should match in the case of null minCRLNumber.",
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMinCRLNumber(minCRL);
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMinCRLNumber(new BigInteger("10001"));
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * setMaxCRLNumber(BigInteger maxCRL) method testing.
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with any crl number value match the selector in the case of
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * null crlNumber criteria, if specified maxCRL value matches the selector,
375e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes     * and if CRL with inappropriate crlNumber value does not match the selector.
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSetMaxCRLNumber() {
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger maxCRL = new BigInteger("10000");
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl = new TestCRL(maxCRL);
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMaxCRLNumber(null);
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Any CRL should match in the case of null minCRLNumber.",
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMaxCRLNumber(maxCRL);
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMaxCRLNumber(new BigInteger("9999"));
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * setDateAndTime(Date dateAndTime) method testing.
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if CRLs with any update dates match the selector in the case of
396e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes     * null dateAndTime criteria, if correct dates match and incorrect
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * do not match the selector.
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSetDateAndTime() {
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl = new TestCRL(new Date(200), new Date(300));
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(null);
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Any CRL should match in the case of null dateAndTime.",
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(new Date(200));
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(new Date(250));
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(new Date(300));
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The CRL should match the selection criteria.",
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(new Date(150));
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(new Date(350));
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The CRL should not match the selection criteria.",
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            selector.match(crl));
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getIssuers() method testing.
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if the method return null in the case of not specified issuers,
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * if the returned collection corresponds to the specified issuers and
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * this collection is unmodifiable.
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetIssuers() throws Exception {
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss1 = new X500Principal("O=First Org.");
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss2 = new X500Principal("O=Second Org.");
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss3 = new X500Principal("O=Third Org.");
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss_name_1 = "O=First String DN";
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss_name_2 = "O=Second String DN";
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String iss_name_3 = "O=Third String DN";
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull("The collection should be null.",
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        selector.getIssuers());
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuerName(iss_name_1);
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss1);
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuerName(iss_name_2);
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss2);
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuerName(iss_name_3);
443e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collection result = selector.getIssuers();
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Size does not correspond to expected",
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                5, result.size());
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            result.add(iss3);
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("The returned collection should be unmodifiable.");
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The collection should contain the specified DN.",
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            result.contains(iss1));
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The collection should contain the specified DN.",
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            result.contains(iss2));
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The collection should contain the specified DN.",
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        result.contains(new X500Principal(iss_name_1)));
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The collection should contain the specified DN.",
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        result.contains(new X500Principal(iss_name_2)));
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss3);
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The collection should contain the specified DN.",
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            result.contains(iss3));
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getIssuerNames() method testing.
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if the method return null in the case of not specified issuers,
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * if the returned collection corresponds to the specified issuers.
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetIssuerNames() {
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iss1 = new byte[]
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            //manually obtained DER encoding of "O=First Org." issuer name;
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            {48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10,
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                70, 105, 114, 115, 116, 32, 79, 114, 103, 46};
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iss2 = new byte[]
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            //manually obtained DER encoding of "O=Second Org." issuer name;
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            {48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11,
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            83, 101, 99, 111, 110, 100, 32, 79, 114, 103, 46};
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull("The collection should be null.",
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        selector.getIssuerNames());
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.addIssuerName(iss1);
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            selector.addIssuerName(iss2);
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IOException e) {
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            e.printStackTrace();
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Unexpected IOException was thrown.");
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Collection result = selector.getIssuerNames();
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("The collection should contain all of the specified DNs.",
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                2, result.size());
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getMinCRL() method testing.
496e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes     * Tests if the method return null in the case of not specified minCRL
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * criteria, and if the returned value corresponds to the specified one.
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetMinCRL() {
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull("Initially the minCRL should be null.",
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        selector.getMinCRL());
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger minCRL = new BigInteger("10000");
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMinCRLNumber(minCRL);
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The result should be equal to specified.",
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        minCRL.equals(selector.getMinCRL()));
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getMaxCRL() method testing.
511e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes     * Tests if the method return null in the case of not specified maxCRL
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * criteria, and if the returned value corresponds to the specified one.
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetMaxCRL() {
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull("Initially the maxCRL should be null.",
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        selector.getMaxCRL());
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger maxCRL = new BigInteger("10000");
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMaxCRLNumber(maxCRL);
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The result should be equal to specified.",
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        maxCRL.equals(selector.getMaxCRL()));
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getDateAndTime() method testing.
526e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes     * Tests if the method return null in the case of not specified dateAndTime
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * criteria, and if the returned value corresponds to the specified one.
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetDateAndTime() {
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull("Initially the dateAndTime criteria should be null.",
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        selector.getDateAndTime());
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Date date = new Date(200);
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(date);
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The result should be equal to specified.",
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        date.equals(selector.getDateAndTime()));
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * match(CRL crl) method testing.
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if the null object matches to the selector or not.
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testMatch() {
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
545e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes        assertFalse("The null object should not match",
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                        selector.match((X509CRL) null));
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * clone() method testing.
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests if the selector is cloned correctly: the crl which matche to
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * the initial selector should match to the clone and the change of clone
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * should not cause the change of initial selector.
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testClone() {
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss1 = new X500Principal("O=First Org.");
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss2 = new X500Principal("O=Second Org.");
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss3 = new X500Principal("O=Third Org.");
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger minCRL = new BigInteger("10000");
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger maxCRL = new BigInteger("10000");
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Date date = new Date(200);
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss1);
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss2);
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMinCRLNumber(minCRL);
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMaxCRLNumber(maxCRL);
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(date);
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector clone = (X509CRLSelector) selector.clone();
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        TestCRL crl = new TestCRL(iss1);
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        crl.setCrlNumber(minCRL);
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        crl.setUpdateDates(new Date(200), new Date(200));
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The specified CRL should match the clone selector.",
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    selector.match(crl));
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        clone.addIssuer(iss3);
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The changes of the clone selector should not cause "
579e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes                    + "the changes of initial object",
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                    selector.getIssuerNames().size() == 3);
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testToString() {
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X509CRLSelector selector = new X509CRLSelector();
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss1 = new X500Principal("O=First Org.");
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        X500Principal iss2 = new X500Principal("O=Second Org.");
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger minCRL = new BigInteger("10000");
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        BigInteger maxCRL = new BigInteger("10000");
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Date date = new Date(200);
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss1);
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.addIssuer(iss2);
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMinCRLNumber(minCRL);
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setMaxCRLNumber(maxCRL);
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        selector.setDateAndTime(date);
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull("The result should not be null.", selector.toString());
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public static Test suite() {
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        return new TestSuite(X509CRLSelectorTest.class);
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
605