java.security.cert
public abstract class Certificate extends Object implements Serializable
This class is used to manage different types of certificates but have important common puposes. Different types of certificates like X.509 and OpenPGP share general certificate functions (like encoding and verifying) and information like public keys.
X.509, OpenPGP, and SDSI can be implemented by subclassing this class even though they differ in storage methods and information stored.
CertificateFactory
,
X509Certificate
,
Serialized FormModifier and Type | Class and Description |
---|---|
protected static class |
Certificate.CertificateRep
Certificate.CertificateRep is an inner class used to provide an alternate
storage mechanism for serialized Certificates.
|
Modifier | Constructor and Description |
---|---|
protected |
Certificate(String type)
Constructs a new certificate of the specified type.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
Compares this Certificate to other.
|
abstract byte[] |
getEncoded()
Gets the DER ASN.1 encoded format for this Certificate.
|
abstract PublicKey |
getPublicKey()
Returns the public key stored in the Certificate.
|
String |
getType()
Returns the Certificate type.
|
int |
hashCode()
Returns a hash code for this Certificate in its encoded
form.
|
abstract String |
toString()
Returns a string representing the Certificate.
|
abstract void |
verify(PublicKey key)
Verifies that this Certificate was properly signed with the
PublicKey that corresponds to its private key.
|
abstract void |
verify(PublicKey key,
String sigProvider)
Verifies that this Certificate was properly signed with the
PublicKey that corresponds to its private key and uses
the signature engine provided by the provider.
|
protected Object |
writeReplace()
Returns a replacement for this certificate to be serialized.
|
protected Certificate(String type)
type
- a valid standard name for a certificate.public final String getType()
public boolean equals(Object other)
equals
in class Object
other
- An Object to test for equalityObject.hashCode()
public int hashCode()
hashCode
in class Object
Object.equals(Object)
,
System.identityHashCode(Object)
public abstract byte[] getEncoded() throws CertificateEncodingException
CertificateEncodingException
- if an error occurspublic abstract void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- PublicKey to verify withCertificateException
- encoding errorNoSuchAlgorithmException
- unsupported algorithmInvalidKeyException
- incorrect keyNoSuchProviderException
- no providerSignatureException
- signature errorpublic abstract void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- PublicKey to verify withsigProvider
- Provider to use for signature algorithmCertificateException
- encoding errorNoSuchAlgorithmException
- unsupported algorithmInvalidKeyException
- incorrect keyNoSuchProviderException
- incorrect providerSignatureException
- signature errorpublic abstract String toString()
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
public abstract PublicKey getPublicKey()
protected Object writeReplace() throws ObjectStreamException
new CertificateRep(getType(), getEncoded());
This thusly replaces the certificate with its name and its
encoded form, which can be deserialized later with the CertificateFactory
implementation for this certificate's type.
ObjectStreamException
- If the replacement could not be
created.