blob: c986032ae04c8f869e9bd97223795fa47e63add8 [file] [log] [blame]
/*
* 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;
}
}
}