package java.security.cert;
import java.math.BigInteger;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Principal;
import java.security.PublicKey;
import java.security.SignatureException;
import java.util.Date;
import java.util.Set;
public abstract class X509CRL extends CRL implements X509Extension
{
protected X509CRL()
{
super("X.509");
}
public boolean equals(Object other)
{
if ( this == other )
return true;
if ( !(other instanceof X509CRL) )
return false;
try
{
byte[] enc1 = getEncoded();
byte[] enc2 = ((X509CRL)other).getEncoded();
return MessageDigest.isEqual(enc1, enc2);
}
catch (CRLException e)
{
return false;
}
}
public int hashCode()
{
int hashcode = 0;
try
{
byte[] encoded = getEncoded();
for (int i = 1; i < encoded.length; i++)
{
hashcode += encoded[i] * i;
}
}
catch (CRLException ce)
{
return(hashcode);
}
return(hashcode);
}
public abstract byte[] getEncoded() throws CRLException;
public abstract Principal getIssuerDN();
public abstract Date getNextUpdate();
public abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber);
public abstract Set getRevokedCertificates();
public abstract String getSigAlgName();
public abstract String getSigAlgOID();
public abstract byte[] getSigAlgParams();
public abstract byte[] getSignature();
public abstract byte[] getTBSCertList() throws CRLException;
public abstract Date getThisUpdate();
public abstract int getVersion();
public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException;
public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException;
}