public abstract class Certificate extends Object implements Serializable
用于管理各种身份证件的抽象类。 身份证明书是一个委托人与另一个委托人提供的公钥的绑定。 (主体代表一个实体,如个人用户,一个团体或一个公司)。
该类是具有不同格式但重要常见用途的证书的抽象。 例如,不同类型的证书(如X.509和PGP)共享一般证书功能(如编码和验证)以及某些类型的信息(如公钥)。
X.509,PGP和SDSI证书都可以通过对证书类进行子类化来实现,即使它们包含不同的信息集,并且以不同的方式存储和检索信息。
X509Certificate
, CertificateFactory
, Serialized Form
Modifier and Type | Class and Description |
---|---|
protected static class |
Certificate.CertificateRep
用于序列化的替代证书类。
|
Modifier | Constructor and Description |
---|---|
protected |
Certificate(String type)
创建指定类型的证书。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
将此证书与指定的对象进行比较。
|
abstract byte[] |
getEncoded()
返回此证书的编码形式。
|
abstract PublicKey |
getPublicKey()
从此证书获取公钥。
|
String |
getType()
返回此证书的类型。
|
int |
hashCode()
从其编码形式返回此证书的哈希码值。
|
abstract String |
toString()
返回此证书的字符串表示形式。
|
abstract void |
verify(PublicKey key)
使用与指定公钥对应的私钥验证此证书是否已经签名。
|
void |
verify(PublicKey key, Provider sigProvider)
使用与指定公钥对应的私钥验证此证书是否已经签名。
|
abstract void |
verify(PublicKey key, String sigProvider)
使用与指定公钥对应的私钥验证此证书是否已经签名。
|
protected Object |
writeReplace()
更换要序列化的证书。
|
protected Certificate(String type)
type
- 证书类型的标准名称。
看到的CertificateFactory部分Java Cryptography Architecture Standard Algorithm Name Documentation有关标准证书类型的信息。
public final String getType()
public boolean equals(Object other)
other
对象是instanceof
Certificate
,则其编码形式被检索并与该证书的编码形式进行比较。
equals
在
Object
other
- 测试与此证书相等的对象。
Object.hashCode()
, HashMap
public int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public abstract byte[] getEncoded() throws CertificateEncodingException
CertificateEncodingException
- 如果发生编码错误。
public abstract void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- 用于执行验证的PublicKey。
NoSuchAlgorithmException
- 不支持的签名算法。
InvalidKeyException
- 错误的键。
NoSuchProviderException
- 如果没有默认提供程序。
SignatureException
- 签名错误。
CertificateException
- 编码错误。
public abstract void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- 用于执行验证的PublicKey。
sigProvider
- 签名提供者的名称。
NoSuchAlgorithmException
- 不支持的签名算法。
InvalidKeyException
- 不正确的键。
NoSuchProviderException
- 不正确的提供者。
SignatureException
- 签名错误。
CertificateException
- 编码错误。
public void verify(PublicKey key, Provider sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
该方法被添加到Java Platform Standard Edition的1.8版本。 为了保持与现有服务提供商的向后兼容性,此方法不能为abstract
,默认情况下会抛出UnsupportedOperationException
。
key
- 用于执行验证的PublicKey。
sigProvider
- 签名提供者。
NoSuchAlgorithmException
- 不支持的签名算法。
InvalidKeyException
- 不正确的键。
SignatureException
- 签名错误。
CertificateException
- 编码错误。
UnsupportedOperationException
- 如果不支持该方法
public abstract PublicKey getPublicKey()
protected Object writeReplace() throws ObjectStreamException
ObjectStreamException
- 如果无法创建表示此证书的新对象