X509CRL2Test.java revision cec4dd4b1d33f78997603d0f89c0d0e56e64dbcd
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package tests.security.cert;
19
20import dalvik.annotation.TestLevel;
21import dalvik.annotation.TestTargetClass;
22import dalvik.annotation.TestTargetNew;
23import dalvik.annotation.TestTargets;
24
25import junit.framework.TestCase;
26
27import java.io.ByteArrayInputStream;
28import java.math.BigInteger;
29import java.security.Principal;
30import java.security.PublicKey;
31import java.security.cert.Certificate;
32import java.security.cert.CertificateFactory;
33import java.security.cert.X509CRL;
34import java.security.cert.X509CRLEntry;
35import java.security.cert.X509Certificate;
36import java.security.cert.X509Extension;
37import java.util.Date;
38import java.util.Iterator;
39import java.util.Set;
40import java.util.Vector;
41
42@TestTargetClass(X509CRL.class)
43public class X509CRL2Test extends TestCase {
44
45    private X509Certificate pemCert = null;
46
47    String certificate = "-----BEGIN CERTIFICATE-----\n"
48        + "MIID0jCCAzugAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBmjELMAkGA1UEBhMCVUsx\n"
49        + "EjAQBgNVBAgTCUhhbXBzaGlyZTETMBEGA1UEBxMKV2luY2hlc3RlcjETMBEGA1UE\n"
50        + "ChMKSUJNIFVLIEx0ZDEMMAoGA1UECxMDSlRDMRYwFAYDVQQDEw1QYXVsIEggQWJi\n"
51        + "b3R0MScwJQYJKoZIhvcNAQkBFhhQYXVsX0hfQWJib3R0QHVrLmlibS5jb20wHhcN\n"
52        + "MDQwNjIyMjA1MDU1WhcNMDUwNjIyMjA1MDU1WjCBmDELMAkGA1UEBhMCVUsxEjAQ\n"
53        + "BgNVBAgTCUhhbXBzaGlyZTETMBEGA1UEBxMKV2luY2hlc3RlcjETMBEGA1UEChMK\n"
54        + "SUJNIFVrIEx0ZDEMMAoGA1UECxMDSkVUMRQwEgYDVQQDEwtQYXVsIEFiYm90dDEn\n"
55        + "MCUGCSqGSIb3DQEJARYYUGF1bF9IX0FiYm90dEB1ay5pYm0uY29tMIGfMA0GCSqG\n"
56        + "SIb3DQEBAQUAA4GNADCBiQKBgQDitZBQ5d18ecNJpcnuKTraHYtqsAugoc95/L5Q\n"
57        + "28s3t1QAu2505qQR1MZaAkY7tDNyl1vPnZoym+Y06UswTrZoVYo/gPNeyWPMTsLA\n"
58        + "wzQvk5/6yhtE9ciH7B0SqYw6uSiDTbUY/zQ6qed+TsQhjlbn3PUHRjnI2P8A04cg\n"
59        + "LgYYGQIDAQABo4IBJjCCASIwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3Bl\n"
60        + "blNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFPplRPs65hUfxUBs\n"
61        + "6/Taq7nN8i1UMIHHBgNVHSMEgb8wgbyAFJOMtPAwlXdZLqE7DKU6xpL6FjFtoYGg\n"
62        + "pIGdMIGaMQswCQYDVQQGEwJVSzESMBAGA1UECBMJSGFtcHNoaXJlMRMwEQYDVQQH\n"
63        + "EwpXaW5jaGVzdGVyMRMwEQYDVQQKEwpJQk0gVUsgTHRkMQwwCgYDVQQLEwNKVEMx\n"
64        + "FjAUBgNVBAMTDVBhdWwgSCBBYmJvdHQxJzAlBgkqhkiG9w0BCQEWGFBhdWxfSF9B\n"
65        + "YmJvdHRAdWsuaWJtLmNvbYIBADANBgkqhkiG9w0BAQQFAAOBgQAnQ22Jw2HUrz7c\n"
66        + "VaOap31mTikuQ/CQxpwPYiSyTJ4s99eEzn+2yAk9tIDIJpqoay/fj+OLgPUQKIAo\n"
67        + "XpRVvmHlGE7UqMKebZtSZJQzs6VoeeKFhgHmqg8eVC2AsTc4ZswJmg4wCui5AH3a\n"
68        + "oqG7PIM3LxZqXYQlZiPSZ6kCpDOWVg==\n"
69        + "-----END CERTIFICATE-----\n";
70
71
72
73    protected void setUp() throws Exception {
74        ByteArrayInputStream certArray = new ByteArrayInputStream(certificate
75                .getBytes());
76
77        CertificateFactory certFact = CertificateFactory.getInstance("X509");
78        pemCert = (X509Certificate) certFact.generateCertificate(certArray);
79    }
80
81    /**
82     * @tests java.security.cert.X509CRL#getExtensionValue(java.lang.String)
83     */
84    @TestTargets({
85        @TestTargetNew(
86            level = TestLevel.COMPLETE,
87            notes = "",
88            method = "getExtensionValue",
89            args = {java.lang.String.class}
90        ),
91        @TestTargetNew(
92            level = TestLevel.COMPLETE,
93            notes = "",
94            method = "getCriticalExtensionOIDs",
95            args = {}
96        ),
97        @TestTargetNew(
98            level = TestLevel.COMPLETE,
99            notes = "",
100            method = "getNonCriticalExtensionOIDs",
101            args = {}
102        ),
103        @TestTargetNew(
104            level = TestLevel.COMPLETE,
105            notes = "",
106            method = "hasUnsupportedCriticalExtension",
107            args = {}
108        )
109    })
110    public void test_getExtensionValueLjava_lang_String() {
111        try {
112            setUp();
113        } catch (Exception e) {
114            fail("Exception " + e + " was thrown during configaration");
115        }
116        if (pemCert != null) {
117            Vector<String> extensionOids = new Vector<String>();
118            extensionOids.addAll(pemCert.getCriticalExtensionOIDs());
119            extensionOids.addAll(pemCert.getNonCriticalExtensionOIDs());
120            assertFalse(pemCert.hasUnsupportedCriticalExtension());
121            Iterator<String> i = extensionOids.iterator();
122            while (i.hasNext()) {
123                String oid = i.next();
124                byte[] value = pemCert.getExtensionValue(oid);
125                if (value != null && value.length > 0) {
126                    // check that it is an encoded as a OCTET STRING
127                    assertTrue("The extension value for the oid " + oid
128                            + " was not encoded as an OCTET STRING",
129                            value[0] == 0x04);
130                }
131            }// end while
132        } else {
133            fail("Unable to obtain X509Certificate");
134        }
135    }
136
137    /**
138     * @tests java.security.cert.X509CRL#X509CRL()
139     */
140    @SuppressWarnings("cast")
141    @TestTargetNew(
142        level = TestLevel.COMPLETE,
143        notes = "",
144        method = "X509CRL",
145        args = {}
146    )
147    public void test_X509CRL() {
148        try {
149            MyX509CRL crl = new MyX509CRL();
150            assertNotNull(crl);
151            assertTrue(crl instanceof X509CRL);
152        } catch (Exception e) {
153            fail("Unexpected exception for constructor");
154        }
155    }
156
157    class MyX509CRL extends X509CRL implements X509Extension {
158
159        public MyX509CRL() {
160            super();
161        }
162
163        @Override
164        public byte[] getEncoded() {
165            return null;
166        }
167
168        @Override
169        public Principal getIssuerDN() {
170            return null;
171        }
172
173        @Override
174        public Date getNextUpdate() {
175            return null;
176        }
177
178        @Override
179        public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) {
180            return null;
181        }
182
183        @Override
184        public Set<? extends X509CRLEntry> getRevokedCertificates() {
185            return null;
186        }
187
188        @Override
189        public String getSigAlgName() {
190            return null;
191        }
192
193        @Override
194        public String getSigAlgOID() {
195            return null;
196        }
197
198        @Override
199        public byte[] getSigAlgParams() {
200            return null;
201        }
202
203        @Override
204        public byte[] getSignature() {
205            return null;
206        }
207
208        @Override
209        public byte[] getTBSCertList() {
210            return null;
211        }
212
213        @Override
214        public Date getThisUpdate() {
215            return null;
216        }
217
218        @Override
219        public int getVersion() {
220            return 0;
221        }
222
223        @Override
224        public void verify(PublicKey key) {
225        }
226
227        @Override
228        public void verify(PublicKey key, String sigProvider) {
229        }
230
231        @Override
232        public boolean isRevoked(Certificate cert) {
233            return false;
234        }
235
236        @Override
237        public String toString() {
238            return null;
239        }
240
241        public Set<String> getCriticalExtensionOIDs() {
242            return null;
243        }
244
245        public byte[] getExtensionValue(String oid) {
246            return null;
247        }
248
249        public Set<String> getNonCriticalExtensionOIDs() {
250            return null;
251        }
252
253        public boolean hasUnsupportedCriticalExtension() {
254            return false;
255        }
256    }
257
258}
259