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 setUp()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 */ test_getExtensionValueLjava_lang_String()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") test_X509CRL()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 MyX509CRL()121 public MyX509CRL() { 122 super(); 123 } 124 125 @Override getEncoded()126 public byte[] getEncoded() { 127 return null; 128 } 129 130 @Override getIssuerDN()131 public Principal getIssuerDN() { 132 return null; 133 } 134 135 @Override getNextUpdate()136 public Date getNextUpdate() { 137 return null; 138 } 139 140 @Override getRevokedCertificate(BigInteger serialNumber)141 public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) { 142 return null; 143 } 144 145 @Override getRevokedCertificates()146 public Set<? extends X509CRLEntry> getRevokedCertificates() { 147 return null; 148 } 149 150 @Override getSigAlgName()151 public String getSigAlgName() { 152 return null; 153 } 154 155 @Override getSigAlgOID()156 public String getSigAlgOID() { 157 return null; 158 } 159 160 @Override getSigAlgParams()161 public byte[] getSigAlgParams() { 162 return null; 163 } 164 165 @Override getSignature()166 public byte[] getSignature() { 167 return null; 168 } 169 170 @Override getTBSCertList()171 public byte[] getTBSCertList() { 172 return null; 173 } 174 175 @Override getThisUpdate()176 public Date getThisUpdate() { 177 return null; 178 } 179 180 @Override getVersion()181 public int getVersion() { 182 return 0; 183 } 184 185 @Override verify(PublicKey key)186 public void verify(PublicKey key) { 187 } 188 189 @Override verify(PublicKey key, String sigProvider)190 public void verify(PublicKey key, String sigProvider) { 191 } 192 193 @Override isRevoked(Certificate cert)194 public boolean isRevoked(Certificate cert) { 195 return false; 196 } 197 198 @Override toString()199 public String toString() { 200 return null; 201 } 202 getCriticalExtensionOIDs()203 public Set<String> getCriticalExtensionOIDs() { 204 return null; 205 } 206 getExtensionValue(String oid)207 public byte[] getExtensionValue(String oid) { 208 return null; 209 } 210 getNonCriticalExtensionOIDs()211 public Set<String> getNonCriticalExtensionOIDs() { 212 return null; 213 } 214 hasUnsupportedCriticalExtension()215 public boolean hasUnsupportedCriticalExtension() { 216 return false; 217 } 218 } 219 220 } 221