| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package tests.security.cert; |
| |
| import junit.framework.TestCase; |
| |
| import java.io.ByteArrayInputStream; |
| import java.math.BigInteger; |
| import java.security.Principal; |
| import java.security.PublicKey; |
| import java.security.cert.Certificate; |
| import java.security.cert.CertificateFactory; |
| import java.security.cert.X509CRL; |
| import java.security.cert.X509CRLEntry; |
| import java.security.cert.X509Certificate; |
| import java.security.cert.X509Extension; |
| import java.util.Date; |
| import java.util.Iterator; |
| import java.util.Set; |
| import java.util.Vector; |
| |
| public class X509CRL2Test extends TestCase { |
| |
| private X509Certificate pemCert = null; |
| |
| String certificate = "-----BEGIN CERTIFICATE-----\n" |
| + "MIID0jCCAzugAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBmjELMAkGA1UEBhMCVUsx\n" |
| + "EjAQBgNVBAgTCUhhbXBzaGlyZTETMBEGA1UEBxMKV2luY2hlc3RlcjETMBEGA1UE\n" |
| + "ChMKSUJNIFVLIEx0ZDEMMAoGA1UECxMDSlRDMRYwFAYDVQQDEw1QYXVsIEggQWJi\n" |
| + "b3R0MScwJQYJKoZIhvcNAQkBFhhQYXVsX0hfQWJib3R0QHVrLmlibS5jb20wHhcN\n" |
| + "MDQwNjIyMjA1MDU1WhcNMDUwNjIyMjA1MDU1WjCBmDELMAkGA1UEBhMCVUsxEjAQ\n" |
| + "BgNVBAgTCUhhbXBzaGlyZTETMBEGA1UEBxMKV2luY2hlc3RlcjETMBEGA1UEChMK\n" |
| + "SUJNIFVrIEx0ZDEMMAoGA1UECxMDSkVUMRQwEgYDVQQDEwtQYXVsIEFiYm90dDEn\n" |
| + "MCUGCSqGSIb3DQEJARYYUGF1bF9IX0FiYm90dEB1ay5pYm0uY29tMIGfMA0GCSqG\n" |
| + "SIb3DQEBAQUAA4GNADCBiQKBgQDitZBQ5d18ecNJpcnuKTraHYtqsAugoc95/L5Q\n" |
| + "28s3t1QAu2505qQR1MZaAkY7tDNyl1vPnZoym+Y06UswTrZoVYo/gPNeyWPMTsLA\n" |
| + "wzQvk5/6yhtE9ciH7B0SqYw6uSiDTbUY/zQ6qed+TsQhjlbn3PUHRjnI2P8A04cg\n" |
| + "LgYYGQIDAQABo4IBJjCCASIwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3Bl\n" |
| + "blNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFPplRPs65hUfxUBs\n" |
| + "6/Taq7nN8i1UMIHHBgNVHSMEgb8wgbyAFJOMtPAwlXdZLqE7DKU6xpL6FjFtoYGg\n" |
| + "pIGdMIGaMQswCQYDVQQGEwJVSzESMBAGA1UECBMJSGFtcHNoaXJlMRMwEQYDVQQH\n" |
| + "EwpXaW5jaGVzdGVyMRMwEQYDVQQKEwpJQk0gVUsgTHRkMQwwCgYDVQQLEwNKVEMx\n" |
| + "FjAUBgNVBAMTDVBhdWwgSCBBYmJvdHQxJzAlBgkqhkiG9w0BCQEWGFBhdWxfSF9B\n" |
| + "YmJvdHRAdWsuaWJtLmNvbYIBADANBgkqhkiG9w0BAQQFAAOBgQAnQ22Jw2HUrz7c\n" |
| + "VaOap31mTikuQ/CQxpwPYiSyTJ4s99eEzn+2yAk9tIDIJpqoay/fj+OLgPUQKIAo\n" |
| + "XpRVvmHlGE7UqMKebZtSZJQzs6VoeeKFhgHmqg8eVC2AsTc4ZswJmg4wCui5AH3a\n" |
| + "oqG7PIM3LxZqXYQlZiPSZ6kCpDOWVg==\n" |
| + "-----END CERTIFICATE-----\n"; |
| |
| |
| |
| protected void setUp() throws Exception { |
| ByteArrayInputStream certArray = new ByteArrayInputStream(certificate |
| .getBytes()); |
| |
| CertificateFactory certFact = CertificateFactory.getInstance("X509"); |
| pemCert = (X509Certificate) certFact.generateCertificate(certArray); |
| } |
| |
| /** |
| * java.security.cert.X509CRL#getExtensionValue(java.lang.String) |
| */ |
| public void test_getExtensionValueLjava_lang_String() { |
| try { |
| setUp(); |
| } catch (Exception e) { |
| fail("Exception " + e + " was thrown during configaration"); |
| } |
| if (pemCert != null) { |
| Vector<String> extensionOids = new Vector<String>(); |
| extensionOids.addAll(pemCert.getCriticalExtensionOIDs()); |
| extensionOids.addAll(pemCert.getNonCriticalExtensionOIDs()); |
| assertFalse(pemCert.hasUnsupportedCriticalExtension()); |
| Iterator<String> i = extensionOids.iterator(); |
| while (i.hasNext()) { |
| String oid = i.next(); |
| byte[] value = pemCert.getExtensionValue(oid); |
| if (value != null && value.length > 0) { |
| // check that it is an encoded as a OCTET STRING |
| assertTrue("The extension value for the oid " + oid |
| + " was not encoded as an OCTET STRING", |
| value[0] == 0x04); |
| } |
| }// end while |
| } else { |
| fail("Unable to obtain X509Certificate"); |
| } |
| } |
| |
| /** |
| * java.security.cert.X509CRL#X509CRL() |
| */ |
| @SuppressWarnings("cast") |
| public void test_X509CRL() { |
| try { |
| MyX509CRL crl = new MyX509CRL(); |
| assertNotNull(crl); |
| assertTrue(crl instanceof X509CRL); |
| } catch (Exception e) { |
| fail("Unexpected exception for constructor"); |
| } |
| } |
| |
| class MyX509CRL extends X509CRL implements X509Extension { |
| |
| public MyX509CRL() { |
| super(); |
| } |
| |
| @Override |
| public byte[] getEncoded() { |
| return null; |
| } |
| |
| @Override |
| public Principal getIssuerDN() { |
| return null; |
| } |
| |
| @Override |
| public Date getNextUpdate() { |
| return null; |
| } |
| |
| @Override |
| public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) { |
| return null; |
| } |
| |
| @Override |
| public Set<? extends X509CRLEntry> getRevokedCertificates() { |
| return null; |
| } |
| |
| @Override |
| public String getSigAlgName() { |
| return null; |
| } |
| |
| @Override |
| public String getSigAlgOID() { |
| return null; |
| } |
| |
| @Override |
| public byte[] getSigAlgParams() { |
| return null; |
| } |
| |
| @Override |
| public byte[] getSignature() { |
| return null; |
| } |
| |
| @Override |
| public byte[] getTBSCertList() { |
| return null; |
| } |
| |
| @Override |
| public Date getThisUpdate() { |
| return null; |
| } |
| |
| @Override |
| public int getVersion() { |
| return 0; |
| } |
| |
| @Override |
| public void verify(PublicKey key) { |
| } |
| |
| @Override |
| public void verify(PublicKey key, String sigProvider) { |
| } |
| |
| @Override |
| public boolean isRevoked(Certificate cert) { |
| return false; |
| } |
| |
| @Override |
| public String toString() { |
| return null; |
| } |
| |
| public Set<String> getCriticalExtensionOIDs() { |
| return null; |
| } |
| |
| public byte[] getExtensionValue(String oid) { |
| return null; |
| } |
| |
| public Set<String> getNonCriticalExtensionOIDs() { |
| return null; |
| } |
| |
| public boolean hasUnsupportedCriticalExtension() { |
| return false; |
| } |
| } |
| |
| } |