Home | History | Annotate | Download | only in cert
      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 
     18 package tests.security.cert;
     19 
     20 import junit.framework.TestCase;
     21 
     22 import java.io.ByteArrayInputStream;
     23 import java.math.BigInteger;
     24 import java.security.Principal;
     25 import java.security.PublicKey;
     26 import java.security.cert.Certificate;
     27 import java.security.cert.CertificateFactory;
     28 import java.security.cert.X509CRL;
     29 import java.security.cert.X509CRLEntry;
     30 import java.security.cert.X509Certificate;
     31 import java.security.cert.X509Extension;
     32 import java.util.Date;
     33 import java.util.Iterator;
     34 import java.util.Set;
     35 import java.util.Vector;
     36 
     37 public class X509CRL2Test extends TestCase {
     38 
     39     private X509Certificate pemCert = null;
     40 
     41     String certificate = "-----BEGIN CERTIFICATE-----\n"
     42         + "MIID0jCCAzugAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBmjELMAkGA1UEBhMCVUsx\n"
     43         + "EjAQBgNVBAgTCUhhbXBzaGlyZTETMBEGA1UEBxMKV2luY2hlc3RlcjETMBEGA1UE\n"
     44         + "ChMKSUJNIFVLIEx0ZDEMMAoGA1UECxMDSlRDMRYwFAYDVQQDEw1QYXVsIEggQWJi\n"
     45         + "b3R0MScwJQYJKoZIhvcNAQkBFhhQYXVsX0hfQWJib3R0QHVrLmlibS5jb20wHhcN\n"
     46         + "MDQwNjIyMjA1MDU1WhcNMDUwNjIyMjA1MDU1WjCBmDELMAkGA1UEBhMCVUsxEjAQ\n"
     47         + "BgNVBAgTCUhhbXBzaGlyZTETMBEGA1UEBxMKV2luY2hlc3RlcjETMBEGA1UEChMK\n"
     48         + "SUJNIFVrIEx0ZDEMMAoGA1UECxMDSkVUMRQwEgYDVQQDEwtQYXVsIEFiYm90dDEn\n"
     49         + "MCUGCSqGSIb3DQEJARYYUGF1bF9IX0FiYm90dEB1ay5pYm0uY29tMIGfMA0GCSqG\n"
     50         + "SIb3DQEBAQUAA4GNADCBiQKBgQDitZBQ5d18ecNJpcnuKTraHYtqsAugoc95/L5Q\n"
     51         + "28s3t1QAu2505qQR1MZaAkY7tDNyl1vPnZoym+Y06UswTrZoVYo/gPNeyWPMTsLA\n"
     52         + "wzQvk5/6yhtE9ciH7B0SqYw6uSiDTbUY/zQ6qed+TsQhjlbn3PUHRjnI2P8A04cg\n"
     53         + "LgYYGQIDAQABo4IBJjCCASIwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3Bl\n"
     54         + "blNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFPplRPs65hUfxUBs\n"
     55         + "6/Taq7nN8i1UMIHHBgNVHSMEgb8wgbyAFJOMtPAwlXdZLqE7DKU6xpL6FjFtoYGg\n"
     56         + "pIGdMIGaMQswCQYDVQQGEwJVSzESMBAGA1UECBMJSGFtcHNoaXJlMRMwEQYDVQQH\n"
     57         + "EwpXaW5jaGVzdGVyMRMwEQYDVQQKEwpJQk0gVUsgTHRkMQwwCgYDVQQLEwNKVEMx\n"
     58         + "FjAUBgNVBAMTDVBhdWwgSCBBYmJvdHQxJzAlBgkqhkiG9w0BCQEWGFBhdWxfSF9B\n"
     59         + "YmJvdHRAdWsuaWJtLmNvbYIBADANBgkqhkiG9w0BAQQFAAOBgQAnQ22Jw2HUrz7c\n"
     60         + "VaOap31mTikuQ/CQxpwPYiSyTJ4s99eEzn+2yAk9tIDIJpqoay/fj+OLgPUQKIAo\n"
     61         + "XpRVvmHlGE7UqMKebZtSZJQzs6VoeeKFhgHmqg8eVC2AsTc4ZswJmg4wCui5AH3a\n"
     62         + "oqG7PIM3LxZqXYQlZiPSZ6kCpDOWVg==\n"
     63         + "-----END CERTIFICATE-----\n";
     64 
     65 
     66 
     67     protected void setUp() throws Exception {
     68         ByteArrayInputStream certArray = new ByteArrayInputStream(certificate
     69                 .getBytes());
     70 
     71         CertificateFactory certFact = CertificateFactory.getInstance("X509");
     72         pemCert = (X509Certificate) certFact.generateCertificate(certArray);
     73     }
     74 
     75     /**
     76      * java.security.cert.X509CRL#getExtensionValue(java.lang.String)
     77      */
     78     public void test_getExtensionValueLjava_lang_String() {
     79         try {
     80             setUp();
     81         } catch (Exception e) {
     82             fail("Exception " + e + " was thrown during configaration");
     83         }
     84         if (pemCert != null) {
     85             Vector<String> extensionOids = new Vector<String>();
     86             extensionOids.addAll(pemCert.getCriticalExtensionOIDs());
     87             extensionOids.addAll(pemCert.getNonCriticalExtensionOIDs());
     88             assertFalse(pemCert.hasUnsupportedCriticalExtension());
     89             Iterator<String> i = extensionOids.iterator();
     90             while (i.hasNext()) {
     91                 String oid = i.next();
     92                 byte[] value = pemCert.getExtensionValue(oid);
     93                 if (value != null && value.length > 0) {
     94                     // check that it is an encoded as a OCTET STRING
     95                     assertTrue("The extension value for the oid " + oid
     96                             + " was not encoded as an OCTET STRING",
     97                             value[0] == 0x04);
     98                 }
     99             }// end while
    100         } else {
    101             fail("Unable to obtain X509Certificate");
    102         }
    103     }
    104 
    105     /**
    106      * java.security.cert.X509CRL#X509CRL()
    107      */
    108     @SuppressWarnings("cast")
    109     public void test_X509CRL() {
    110         try {
    111             MyX509CRL crl = new MyX509CRL();
    112             assertNotNull(crl);
    113             assertTrue(crl instanceof X509CRL);
    114         } catch (Exception e) {
    115             fail("Unexpected exception for constructor");
    116         }
    117     }
    118 
    119     class MyX509CRL extends X509CRL implements X509Extension {
    120 
    121         public MyX509CRL() {
    122             super();
    123         }
    124 
    125         @Override
    126         public byte[] getEncoded() {
    127             return null;
    128         }
    129 
    130         @Override
    131         public Principal getIssuerDN() {
    132             return null;
    133         }
    134 
    135         @Override
    136         public Date getNextUpdate() {
    137             return null;
    138         }
    139 
    140         @Override
    141         public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) {
    142             return null;
    143         }
    144 
    145         @Override
    146         public Set<? extends X509CRLEntry> getRevokedCertificates() {
    147             return null;
    148         }
    149 
    150         @Override
    151         public String getSigAlgName() {
    152             return null;
    153         }
    154 
    155         @Override
    156         public String getSigAlgOID() {
    157             return null;
    158         }
    159 
    160         @Override
    161         public byte[] getSigAlgParams() {
    162             return null;
    163         }
    164 
    165         @Override
    166         public byte[] getSignature() {
    167             return null;
    168         }
    169 
    170         @Override
    171         public byte[] getTBSCertList() {
    172             return null;
    173         }
    174 
    175         @Override
    176         public Date getThisUpdate() {
    177             return null;
    178         }
    179 
    180         @Override
    181         public int getVersion() {
    182             return 0;
    183         }
    184 
    185         @Override
    186         public void verify(PublicKey key) {
    187         }
    188 
    189         @Override
    190         public void verify(PublicKey key, String sigProvider) {
    191         }
    192 
    193         @Override
    194         public boolean isRevoked(Certificate cert) {
    195             return false;
    196         }
    197 
    198         @Override
    199         public String toString() {
    200             return null;
    201         }
    202 
    203         public Set<String> getCriticalExtensionOIDs() {
    204             return null;
    205         }
    206 
    207         public byte[] getExtensionValue(String oid) {
    208             return null;
    209         }
    210 
    211         public Set<String> getNonCriticalExtensionOIDs() {
    212             return null;
    213         }
    214 
    215         public boolean hasUnsupportedCriticalExtension() {
    216             return false;
    217         }
    218     }
    219 
    220 }
    221