/*
* Licensed to Jasig under one or more contributor license
* agreements. See the NOTICE file distributed with this work
* for additional information regarding copyright ownership.
* Jasig 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 the following location:
*
* 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 org.jasig.cas.adaptors.x509.authentication.principal;
import java.math.BigInteger;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Principal;
import java.security.PublicKey;
import java.security.SignatureException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateNotYetValidException;
import java.security.cert.X509Certificate;
import java.util.Date;
import java.util.Set;
public abstract class AbstractX509CertificateTests {
public static final X509Certificate VALID_CERTIFICATE = new CasX509Certificate(
true);
public static final X509Certificate INVALID_CERTIFICATE = new CasX509Certificate(
false);
protected static class CasX509Certificate extends X509Certificate {
/**
* Comment for <code>serialVersionUID</code>
*/
private static final long serialVersionUID = -4449243195531417769L;
private final boolean valid;
protected CasX509Certificate(final boolean valid) {
this.valid = valid;
}
@Override
public void checkValidity() throws CertificateExpiredException,
CertificateNotYetValidException {
if (!this.valid) {
throw new CertificateExpiredException();
}
}
@Override
public void checkValidity(final Date arg0)
throws CertificateExpiredException, CertificateNotYetValidException {
if (!this.valid) {
throw new CertificateExpiredException();
}
}
@Override
public int getBasicConstraints() {
return -1;
}
@Override
public Principal getIssuerDN() {
return new Principal(){
@Override
public String getName() {
return "CN=Jasig,DC=jasig,DC=org";
}
};
}
@Override
public boolean[] getIssuerUniqueID() {
return null;
}
@Override
public boolean[] getKeyUsage() {
return null;
}
@Override
public Date getNotAfter() {
return null;
}
@Override
public Date getNotBefore() {
return null;
}
@Override
public BigInteger getSerialNumber() {
return new BigInteger("500000");
}
@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 Principal getSubjectDN() {
return new Principal(){
@Override
public String getName() {
return "CN=CAS,DC=jasig,DC=org";
}
};
}
@Override
public boolean[] getSubjectUniqueID() {
return null;
}
@Override
public byte[] getTBSCertificate() throws CertificateEncodingException {
return null;
}
@Override
public int getVersion() {
return 0;
}
@Override
public Set<String> getCriticalExtensionOIDs() {
return null;
}
@Override
public byte[] getExtensionValue(final String arg0) {
return null;
}
@Override
public Set<String> getNonCriticalExtensionOIDs() {
return null;
}
@Override
public boolean hasUnsupportedCriticalExtension() {
return false;
}
@Override
public byte[] getEncoded() throws CertificateEncodingException {
return null;
}
@Override
public PublicKey getPublicKey() {
return null;
}
@Override
public String toString() {
return "CasX509Certficate";
}
@Override
public void verify(final PublicKey arg0, final String arg1)
throws CertificateException, NoSuchAlgorithmException,
InvalidKeyException, NoSuchProviderException, SignatureException {
// nothing to do right now
}
@Override
public void verify(final PublicKey arg0) throws CertificateException,
NoSuchAlgorithmException, InvalidKeyException,
NoSuchProviderException, SignatureException {
// nothing to do right now
}
}
}