1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.security.cert;
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.AndroidOnly;
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.asn1.ASN1Integer;
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.asn1.ASN1OctetString;
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.TestUtils;
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream;
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException;
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.math.BigInteger;
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.InvalidKeyException;
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchAlgorithmException;
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchProviderException;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Principal;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.PublicKey;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.SignatureException;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CRL;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CRLException;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.Certificate;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateException;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateFactory;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.X509CRL;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.X509CRLEntry;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.X509CRLSelector;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.X509Certificate;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Date;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.security.auth.x500.X500Principal;
35229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class X509CRLSelector2Test extends TestCase {
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor testing.
48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testX509CRLSelector() {
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getDateAndTime());
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getCertificateChecking());
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getIssuerNames());
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getIssuers());
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getMaxCRL());
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getMinCRL());
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * addIssuer(X500Principal issuer) method testing. Tests if CRLs with
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * specified issuers match the selector, and if not specified issuer does
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * not match the selector.
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAddIssuerLjavax_security_auth_x500_X500Principal02() {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss1 = new X500Principal("O=First Org.");
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss2 = new X500Principal("O=Second Org.");
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CRL crl1 = new TestCRL(iss1);
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CRL crl2 = new TestCRL(iss2);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss1);
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl1));
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl2));
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss2);
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl2));
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * addIssuerName(String name) method testing. Tests if CRLs with specified
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * issuers match the selector, and if not specified issuer does not match
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the selector.
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAddIssuerNameLjava_lang_String03() {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String iss1 = "O=First Org.";
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String iss2 = "O=Second Org.";
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl1 = new TestCRL(new X500Principal(iss1));
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl2 = new TestCRL(new X500Principal(iss2));
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.addIssuerName(iss1);
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl1));
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl2));
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.addIssuerName(iss2);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl2));
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * setIssuerNames(Collection <?> names) method testing. Tests if CRLs with
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * any issuers match the selector in the case of null issuerNames criteria,
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * if specified issuers match the selector, if not specified issuer does not
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * match the selector, and if the internal collection of issuer names is
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * copied during initialization.
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @SuppressWarnings("unchecked")
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSetIssuerNamesLjava_util_Collection02() {
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String iss1 = "O=First Org.";
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] iss2 = new byte[]
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // manually obtained DER encoding of "O=Second Org." issuer name;
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 83, 101, 99, 111,
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                110, 100, 32, 79, 114, 103, 46 };
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String iss3 = "O=Third Org.";
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl1 = new TestCRL(new X500Principal(iss1));
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl2 = new TestCRL(new X500Principal(iss2));
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl3 = new TestCRL(new X500Principal(iss3));
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.setIssuerNames(null);
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Any CRL issuers should match in the case of null issuers.",
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl1) && selector.match(crl2));
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ArrayList issuers = new ArrayList(2);
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        issuers.add(iss1);
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        issuers.add(iss2);
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.setIssuerNames(issuers);
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl1)
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                && selector.match(crl2));
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl3));
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        issuers.add(iss3);
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The internal issuer collection is not protected "
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + "against the modifications.", selector.match(crl3));
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * setIssuers(Collection <X500Principal> issuers) method testing. Tests if
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * CRLs with any issuers match the selector in the case of null issuerNames
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * criteria, if specified issuers match the selector, and if not specified
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * issuer does not match the selector.
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSetIssuersLjava_util_Collection() {
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss1 = new X500Principal("O=First Org.");
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss2 = new X500Principal("O=Second Org.");
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss3 = new X500Principal("O=Third Org.");
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl1 = new TestCRL(iss1);
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl2 = new TestCRL(iss2);
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl3 = new TestCRL(iss3);
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setIssuers(null);
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Any CRL issuers should match in the case of null issuers.",
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl1) && selector.match(crl2));
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ArrayList<X500Principal> issuers = new ArrayList<X500Principal>(2);
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        issuers.add(iss1);
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        issuers.add(iss2);
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setIssuers(issuers);
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl1)
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                && selector.match(crl2));
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl3));
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        issuers.add(iss3);
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The internal issuer collection is not protected "
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + "against the modifications.", selector.match(crl3));
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * addIssuerName(byte[] name) method testing. Tests if CRLs with specified
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * issuers match the selector, and if not specified issuer does not match
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the selector.
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAddIssuerName$B() {
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] iss1 = new byte[]
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // manually obtained DER encoding of "O=First Org." issuer name;
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        { 48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 70, 105, 114, 115,
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                116, 32, 79, 114, 103, 46 };
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] iss2 = new byte[]
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // manually obtained DER encoding of "O=Second Org." issuer name;
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 83, 101, 99, 111,
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                110, 100, 32, 79, 114, 103, 46 };
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl1 = new TestCRL(new X500Principal(iss1));
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl2 = new TestCRL(new X500Principal(iss2));
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.addIssuerName(iss1);
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl1));
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl2));
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.addIssuerName(iss2);
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl2));
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * setMinCRLNumber(BigInteger minCRL) method testing. Tests if CRLs with any
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * crl number value match the selector in the case of null crlNumber
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * criteria, if specified minCRL value matches the selector, and if CRL with
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * inappropriate crlNumber value does not match the selector.
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @AndroidOnly("Uses specific class: " +
241f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            "org.apache.harmony.security.asn1.ASN1OctetString.")
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSetMinCRLNumberLjava_math_BigInteger() {
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger minCRL = new BigInteger("10000");
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CRL crl = new TestCRL(minCRL);
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMinCRLNumber(null);
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Any CRL should match in the case of null minCRLNumber.",
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMinCRLNumber(minCRL);
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMinCRLNumber(new BigInteger("10001"));
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * setMaxCRLNumber(BigInteger maxCRL) method testing. Tests if CRLs with any
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * crl number value match the selector in the case of null crlNumber
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * criteria, if specified maxCRL value matches the selector, and if CRL with
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * inappropriate crlNumber value does not match the selector.
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @AndroidOnly("Uses specific class: " +
265f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            "org.apache.harmony.security.asn1.ASN1OctetString.")
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSetMaxCRLNumberLjava_math_BigInteger() {
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger maxCRL = new BigInteger("10000");
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl = new TestCRL(maxCRL);
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMaxCRLNumber(null);
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Any CRL should match in the case of null minCRLNumber.",
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMaxCRLNumber(maxCRL);
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMaxCRLNumber(new BigInteger("9999"));
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * setDateAndTime(Date dateAndTime) method testing. Tests if CRLs with any
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * update dates match the selector in the case of null dateAndTime criteria,
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * if correct dates match and incorrect do not match the selector.
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSetDateAndTimeLjava_util_Date() {
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl = new TestCRL(new Date(200), new Date(300));
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(null);
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Any CRL should match in the case of null dateAndTime.",
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(new Date(200));
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(new Date(250));
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(new Date(300));
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(new Date(150));
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(new Date(350));
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The CRL should not match the selection criteria.",
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
311f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * setCertificateChecking(X509Certificate) method testing.
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSetCertificateCheckingLjava_X509Certificate()
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws CertificateException {
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertificateFactory certFact = CertificateFactory.getInstance("X509");
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate cert = (X509Certificate) certFact
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .generateCertificate(new ByteArrayInputStream(TestUtils
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getX509Certificate_v3()));
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl = new TestCRL();
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setCertificateChecking(cert);
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(cert, selector.getCertificateChecking());
327f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setCertificateChecking(null);
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The CRL should match the selection criteria.", selector
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match(crl));
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getCertificateChecking());
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * getIssuers() method testing. Tests if the method return null in the case
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * of not specified issuers, if the returned collection corresponds to the
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * specified issuers and this collection is unmodifiable.
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetIssuers() {
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss1 = new X500Principal("O=First Org.");
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss2 = new X500Principal("O=Second Org.");
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss3 = new X500Principal("O=Third Org.");
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("The collection should be null.", selector.getIssuers());
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss1);
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss2);
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection<X500Principal> result = selector.getIssuers();
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            result.add(iss3);
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("The returned collection should be unmodifiable.");
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The collection should contain the specified DN.", result
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .contains(iss2));
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * getIssuerNames() method testing. Tests if the method return null in the
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * case of not specified issuers, if the returned collection corresponds to
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the specified issuers.
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetIssuerNames() {
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] iss1 = new byte[]
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // manually obtained DER encoding of "O=First Org." issuer name;
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        { 48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 70, 105, 114, 115,
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                116, 32, 79, 114, 103, 46 };
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] iss2 = new byte[]
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // manually obtained DER encoding of "O=Second Org." issuer name;
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 83, 101, 99, 111,
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                110, 100, 32, 79, 114, 103, 46 };
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("The collection should be null.", selector.getIssuerNames());
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.addIssuerName(iss1);
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            selector.addIssuerName(iss2);
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            e.printStackTrace();
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected IOException was thrown.");
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Collection<Object> result = selector.getIssuerNames();
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("The collection should contain all of the specified DNs.",
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                2, result.size());
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * getMinCRL() method testing. Tests if the method return null in the case
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * of not specified minCRL criteria, and if the returned value corresponds
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * to the specified one.
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetMinCRL() {
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("Initially the minCRL should be null.", selector.getMinCRL());
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger minCRL = new BigInteger("10000");
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMinCRLNumber(minCRL);
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The result should be equal to specified.", minCRL
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(selector.getMinCRL()));
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * getMaxCRL() method testing. Tests if the method return null in the case
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * of not specified maxCRL criteria, and if the returned value corresponds
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * to the specified one.
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetMaxCRL() {
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("Initially the maxCRL should be null.", selector.getMaxCRL());
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger maxCRL = new BigInteger("10000");
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMaxCRLNumber(maxCRL);
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The result should be equal to specified.", maxCRL
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(selector.getMaxCRL()));
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * getDateAndTime() method testing. Tests if the method return null in the
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * case of not specified dateAndTime criteria, and if the returned value
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * corresponds to the specified one.
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetDateAndTime() {
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("Initially the dateAndTime criteria should be null.",
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.getDateAndTime());
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date date = new Date(200);
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(date);
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The result should be equal to specified.", date
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .equals(selector.getDateAndTime()));
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
429f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * getCertificateChecking() method testing.
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetCertificateCheckingLjava_X509Certificate()
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws CertificateException {
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertificateFactory certFact = CertificateFactory.getInstance("X509");
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate cert = (X509Certificate) certFact
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .generateCertificate(new ByteArrayInputStream(TestUtils
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getX509Certificate_v3()));
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setCertificateChecking(cert);
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(cert, selector.getCertificateChecking());
442f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setCertificateChecking(null);
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(selector.getCertificateChecking());
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
446f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * match(CRL crl) method testing. Tests if the null object matches to the
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * selector or not.
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testMatchLjava_security_cert_X509CRL() {
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The null object should not match", selector
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .match((X509CRL) null));
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * clone() method testing. Tests if the selector is cloned correctly: the
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * crl which matche to the initial selector should match to the clone and
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the change of clone should not cause the change of initial selector.
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @AndroidOnly("Uses specific classes: " +
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            "org.apache.harmony.security.asn1.ASN1OctetString, " +
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            "org.apache.harmony.security.asn1.ASN1Integer.")
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testClone() {
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss1 = new X500Principal("O=First Org.");
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss2 = new X500Principal("O=Second Org.");
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss3 = new X500Principal("O=Third Org.");
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger minCRL = new BigInteger("10000");
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger maxCRL = new BigInteger("10000");
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date date = new Date(200);
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss1);
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss2);
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMinCRLNumber(minCRL);
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMaxCRLNumber(maxCRL);
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(date);
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector clone = (X509CRLSelector) selector.clone();
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestCRL crl = new TestCRL(iss1);
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        crl.setCrlNumber(minCRL);
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        crl.setUpdateDates(new Date(200), new Date(200));
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The specified CRL should match the clone selector.",
485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                selector.match(crl));
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        clone.addIssuer(iss3);
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The changes of the clone selector should not cause "
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                + "the changes of initial object", selector.getIssuerNames()
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .size() == 3);
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testToString() {
493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509CRLSelector selector = new X509CRLSelector();
494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss1 = new X500Principal("O=First Org.");
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X500Principal iss2 = new X500Principal("O=Second Org.");
496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger minCRL = new BigInteger("10000");
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        BigInteger maxCRL = new BigInteger("10000");
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date date = new Date(200);
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss1);
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.addIssuer(iss2);
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMinCRLNumber(minCRL);
503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setMaxCRLNumber(maxCRL);
504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        selector.setDateAndTime(date);
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull("The result should not be null.", selector.toString());
507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The abstract class stub implementation.
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private class TestCRL extends X509CRL {
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private X500Principal principal = null;
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private BigInteger crlNumber = null;
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private Date thisUpdate = null;
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private Date nextUpdate = null;
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public TestCRL() {
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public TestCRL(X500Principal principal) {
526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            this.principal = principal;
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public TestCRL(Date thisUpdate, Date nextUpdate) {
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            setUpdateDates(thisUpdate, nextUpdate);
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public TestCRL(BigInteger crlNumber) {
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            setCrlNumber(crlNumber);
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void setUpdateDates(Date thisUpdate, Date nextUpdate) {
538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            this.thisUpdate = thisUpdate;
539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            this.nextUpdate = nextUpdate;
540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void setCrlNumber(BigInteger crlNumber) {
543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            this.crlNumber = crlNumber;
544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public X500Principal getIssuerX500Principal() {
547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return principal;
548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public String toString() {
551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public boolean isRevoked(Certificate cert) {
555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return true;
556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Set<String> getNonCriticalExtensionOIDs() {
559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Set<String> getCriticalExtensionOIDs() {
563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getExtensionValue(String oid) {
567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if ("2.5.29.20".equals(oid) && (crlNumber != null)) {
568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                return ASN1OctetString.getInstance().encode(
569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        ASN1Integer.getInstance().encode(
570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                crlNumber.toByteArray()));
571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public boolean hasUnsupportedCriticalExtension() {
576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return false;
577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getEncoded() {
580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @SuppressWarnings("unused")
584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void verify(PublicKey key) throws CRLException,
585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                NoSuchAlgorithmException, InvalidKeyException,
586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                NoSuchProviderException, SignatureException {
587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @SuppressWarnings("unused")
590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void verify(PublicKey key, String sigProvider)
591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                throws CRLException, NoSuchAlgorithmException,
592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                InvalidKeyException, NoSuchProviderException,
593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SignatureException {
594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public int getVersion() {
597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return 2;
598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Principal getIssuerDN() {
601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Date getThisUpdate() {
605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return thisUpdate;
606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Date getNextUpdate() {
609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return nextUpdate;
610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) {
613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Set<X509CRLEntry> getRevokedCertificates() {
617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getTBSCertList() {
621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getSignature() {
625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public String getSigAlgName() {
629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public String getSigAlgOID() {
633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getSigAlgParams() {
637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
641