- java.lang.Object
-
- java.security.cert.Certificate
-
- All Implemented Interfaces:
-
Serializable
- 已知直接子类:
-
X509Certificate
public abstract class Certificate extends Object implements Serializable
用于管理各种身份证件的抽象类。 身份证明书是一个委托人与另一个委托人提供的公钥的绑定。 (主体代表一个实体,如个人用户,一个团体或一个公司)。
该类是具有不同格式但重要常见用途的证书的抽象。 例如,不同类型的证书(如X.509和PGP)共享一般证书功能(如编码和验证)以及某些类型的信息(如公钥)。
X.509,PGP和SDSI证书都可以通过对证书类进行子类化来实现,即使它们包含不同的信息集,并且以不同的方式存储和检索信息。
- 从以下版本开始:
- 1.2
- 另请参见:
-
X509Certificate
,CertificateFactory
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected static class
Certificate.CertificateRep
用于序列化的替代证书类。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Certificate(String type)
创建指定类型的证书。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 boolean
equals(Object other)
将此证书与指定的对象进行比较。abstract byte[]
getEncoded()
返回此证书的编码形式。abstract PublicKey
getPublicKey()
从此证书获取公钥。String
getType()
返回此证书的类型。int
hashCode()
从其编码形式返回此证书的哈希码值。abstract String
toString()
返回此证书的字符串表示形式。abstract void
verify(PublicKey key)
使用与指定公钥对应的私钥验证此证书是否已经签名。abstract void
verify(PublicKey key, String sigProvider)
使用与指定公钥对应的私钥验证此证书是否已经签名。void
verify(PublicKey key, Provider sigProvider)
使用与指定公钥对应的私钥验证此证书是否已经签名。protected Object
writeReplace()
更换要序列化的证书。
-
-
-
构造方法详细信息
-
Certificate
protected Certificate(String type)
创建指定类型的证书。- 参数
-
type
- 证书类型的标准名称。 有关标准证书类型的信息,请参阅Java Security Standard Algorithm Names Specification中的CertificateFactory部分。
-
-
方法详细信息
-
getType
public final String getType()
返回此证书的类型。- 结果
- 该证书的类型。
-
equals
public boolean equals(Object other)
将此证书与指定的对象进行比较。 如果other
对象是instanceof
Certificate
,则其编码形式将被检索并与该证书的编码形式进行比较。- 重写:
-
equals
在Object
- 参数
-
other
- 要与此证书相等的对象。 - 结果
- 如果两个证书的编码形式匹配,则为true,否则为false。
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
从其编码形式返回此证书的哈希码值。- 重写:
-
hashCode
在Object
- 结果
- 哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
getEncoded
public abstract byte[] getEncoded() throws CertificateEncodingException
返回此证书的编码形式。 假设每个证书类型将只有一种形式的编码; 例如,X.509证书将被编码为ASN.1 DER。- 结果
- 该证书的编码形式
- 异常
-
CertificateEncodingException
- 如果发生编码错误。
-
verify
public abstract void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
使用与指定公钥对应的私钥验证此证书是否已经签名。- 参数
-
key
- 用于执行验证的PublicKey。 - 异常
-
NoSuchAlgorithmException
- 不支持的签名算法。 -
InvalidKeyException
- 键错误。 -
NoSuchProviderException
- 如果没有默认提供程序。 -
SignatureException
- 签名错误。 -
CertificateException
- 编码错误。
-
verify
public abstract void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
使用与指定公钥对应的私钥验证此证书是否已经签名。 此方法使用指定提供商提供的签名验证引擎。- 参数
-
key
- 用于执行验证的PublicKey。 -
sigProvider
- 签名提供者的名称。 - 异常
-
NoSuchAlgorithmException
- 关于不支持的签名算法。 -
InvalidKeyException
- 键错误。 -
NoSuchProviderException
- 不正确的提供者。 -
SignatureException
- 签名错误。 -
CertificateException
- 关于编码错误。
-
verify
public void verify(PublicKey key, Provider sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, SignatureException
使用与指定公钥对应的私钥验证此证书是否已经签名。 此方法使用指定提供商提供的签名验证引擎。 请注意,指定的Provider对象不必在提供者列表中注册。该方法被添加到Java Platform Standard Edition的1.8版本。 为了保持与现有服务提供商的向后兼容性,此方法不能为
abstract
,默认情况下会抛出一个UnsupportedOperationException
。- 参数
-
key
- 用于执行验证的PublicKey。 -
sigProvider
- 签名提供者。 - 异常
-
NoSuchAlgorithmException
- 不支持的签名算法。 -
InvalidKeyException
- 键错误。 -
SignatureException
- 签名错误。 -
CertificateException
- 编码错误。 -
UnsupportedOperationException
- 如果不支持该方法 - 从以下版本开始:
- 1.8
-
getPublicKey
public abstract PublicKey getPublicKey()
从此证书获取公钥。- 结果
- 公钥。
-
writeReplace
protected Object writeReplace() throws ObjectStreamException
更换要序列化的证书。- 结果
- 要序列化的备用证书对象
- 异常
-
ObjectStreamException
- 如果无法创建表示此证书的新对象 - 从以下版本开始:
- 1.3
-
-