3789983e89
Reviewed-by: darcy, ihse
215 lines
5.6 KiB
Java
215 lines
5.6 KiB
Java
/*
|
|
* Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
/*
|
|
* test
|
|
* @bug 6377058
|
|
* @summary SunJCE depends on sun.security.provider.SignatureImpl
|
|
* behaviour, BC can't load into 1st slot.
|
|
* @author Brad R. Wetmore
|
|
*/
|
|
|
|
|
|
import java.util.*;
|
|
import java.math.*;
|
|
import java.security.*;
|
|
import java.security.cert.*;
|
|
import javax.security.auth.x500.*;
|
|
|
|
public class MyX509CertImpl extends X509Certificate
|
|
implements X509Extension {
|
|
|
|
X509Certificate c;
|
|
|
|
protected MyX509CertImpl(X509Certificate cert) {
|
|
c = cert;
|
|
}
|
|
|
|
public void checkValidity() throws CertificateExpiredException,
|
|
CertificateNotYetValidException {
|
|
c.checkValidity();
|
|
}
|
|
|
|
|
|
public void checkValidity(Date date) throws CertificateExpiredException,
|
|
CertificateNotYetValidException {
|
|
c.checkValidity(date);
|
|
}
|
|
|
|
public int getVersion() {
|
|
return c.getVersion();
|
|
}
|
|
|
|
public BigInteger getSerialNumber() {
|
|
return c.getSerialNumber();
|
|
}
|
|
|
|
public Principal getIssuerDN() {
|
|
return c.getIssuerDN();
|
|
}
|
|
|
|
public X500Principal getIssuerX500Principal() {
|
|
return c.getIssuerX500Principal();
|
|
}
|
|
|
|
public Principal getSubjectDN() {
|
|
return c.getSubjectDN();
|
|
}
|
|
|
|
public X500Principal getSubjectX500Principal() {
|
|
return c.getSubjectX500Principal();
|
|
}
|
|
|
|
public Date getNotBefore() {
|
|
return c.getNotBefore();
|
|
}
|
|
|
|
public Date getNotAfter() {
|
|
return c.getNotAfter();
|
|
}
|
|
|
|
public byte[] getTBSCertificate()
|
|
throws CertificateEncodingException {
|
|
return c.getTBSCertificate();
|
|
}
|
|
|
|
public byte[] getSignature() {
|
|
return c.getSignature();
|
|
}
|
|
|
|
public String getSigAlgName() {
|
|
return c.getSigAlgName();
|
|
}
|
|
|
|
public String getSigAlgOID() {
|
|
return c.getSigAlgOID();
|
|
}
|
|
|
|
public byte[] getSigAlgParams() {
|
|
return c.getSigAlgParams();
|
|
}
|
|
|
|
public boolean[] getIssuerUniqueID() {
|
|
return c.getIssuerUniqueID();
|
|
}
|
|
|
|
public boolean[] getSubjectUniqueID() {
|
|
return c.getSubjectUniqueID();
|
|
}
|
|
|
|
public boolean[] getKeyUsage() {
|
|
return c.getKeyUsage();
|
|
}
|
|
|
|
public List<String> getExtendedKeyUsage()
|
|
throws CertificateParsingException {
|
|
return c.getExtendedKeyUsage();
|
|
}
|
|
|
|
public int getBasicConstraints() {
|
|
return c.getBasicConstraints();
|
|
}
|
|
|
|
public Collection<List<?>> getSubjectAlternativeNames()
|
|
throws CertificateParsingException {
|
|
return c.getSubjectAlternativeNames();
|
|
}
|
|
|
|
public Collection<List<?>> getIssuerAlternativeNames()
|
|
throws CertificateParsingException {
|
|
return c.getIssuerAlternativeNames();
|
|
}
|
|
|
|
/*
|
|
* The following are from X509Extension
|
|
*/
|
|
public boolean hasUnsupportedCriticalExtension() {
|
|
return c.hasUnsupportedCriticalExtension();
|
|
}
|
|
|
|
public Set<String> getCriticalExtensionOIDs() {
|
|
return c.getCriticalExtensionOIDs();
|
|
}
|
|
|
|
public Set<String> getNonCriticalExtensionOIDs() {
|
|
return c.getNonCriticalExtensionOIDs();
|
|
}
|
|
|
|
public byte[] getExtensionValue(String oid) {
|
|
return c.getExtensionValue(oid);
|
|
}
|
|
|
|
/*
|
|
* The rest are from Certificate
|
|
*/
|
|
public boolean equals(Object other) {
|
|
return c.equals(other);
|
|
}
|
|
|
|
public int hashCode() {
|
|
return c.hashCode();
|
|
}
|
|
|
|
public byte[] getEncoded()
|
|
throws CertificateEncodingException {
|
|
return c.getEncoded();
|
|
}
|
|
|
|
public void verify(PublicKey key)
|
|
throws CertificateException, NoSuchAlgorithmException,
|
|
InvalidKeyException, NoSuchProviderException,
|
|
SignatureException {
|
|
System.out.println("Trying a verify");
|
|
try {
|
|
c.verify(key);
|
|
} catch (SignatureException e) {
|
|
System.out.println("Rethrowing \"acceptable\" exception");
|
|
throw new InvalidKeyException(
|
|
"Rethrowing as a SignatureException", e);
|
|
}
|
|
}
|
|
|
|
public void verify(PublicKey key, String sigProvider)
|
|
throws CertificateException, NoSuchAlgorithmException,
|
|
InvalidKeyException, NoSuchProviderException,
|
|
SignatureException {
|
|
|
|
System.out.println("Trying a verify");
|
|
try {
|
|
c.verify(key, sigProvider);
|
|
} catch (SignatureException e) {
|
|
System.out.println("Rethrowing \"acceptable\" exception");
|
|
throw new InvalidKeyException(
|
|
"Rethrowing as a SignatureException", e);
|
|
}
|
|
}
|
|
|
|
public String toString() {
|
|
return c.toString();
|
|
}
|
|
|
|
public PublicKey getPublicKey() {
|
|
return c.getPublicKey();
|
|
}
|
|
}
|