- java.lang.Object
-
- java.security.cert.CertPath
-
- 实现的所有接口
-
Serializable
public abstract class CertPathextends Objectimplements Serializable
不可变的证书序列(证书路径)。这是一个抽象类,它定义了所有
CertPath
的方法。 子类可以处理不同类型的证书(X.509,PGP等)。所有
CertPath
对象都有一个类型,一个Certificate
的列表,以及一个或多个支持的编码。 因为CertPath
类是不可变的,所以CertPath
在构造之后不能以任何外部可见的方式改变。 此规定适用于此类的所有公共字段和方法以及由子类添加或重写的任何公共字段和方法。类型为
String
,用于标识证书路径中Certificate
的类型。 对于每个证书cert
证书路径certPath
,cert.getType().equals(certPath.getType())
必须是true
。Certificate
的列表是零或更多Certificate
的订购List
。List
及其中包含的所有Certificate
必须是不可变的。每个
CertPath
对象必须支持一个或多个编码,以便可以将对象转换为字节数组,以便存储或传输给其他方。 优选地,这些编码应该是充分记录的标准(例如PKCS#7)。CertPath
支持的编码CertPath
被认为是默认编码。 如果未明确请求编码,则使用此编码(例如,对于getEncoded()
方法)。所有
CertPath
项目也是Serializable
。 在序列化期间,CertPath
对象被解析为备用CertPathRep
对象。 这允许将CertPath
对象序列化为等效表示,而不管其底层实现如何。CertPath
对象可以使用CertificateFactory
创建,也可以由其他类返回,例如CertPathBuilder
。按照惯例,X.509
CertPath
S(由X509Certificate
S),是有序开头的目标,证书和与信任锚颁发的证书结束。 也就是说,一个证书的发行者是下一个证书的主题。 代表TrustAnchor
的证书不应包含在认证路径中。 未经验证的X.509CertPath
可能不遵循这些约定。 PKIXCertPathValidator
s将检测导致认证路径无效的这些约定的任何偏离并抛出CertPathValidatorException
。Java平台的每个实现都需要支持以下标准
CertPath
编码:-
PKCS7
-
PkiPath
并发访问
所有
CertPath
对象必须是线程安全的。 也就是说,多个线程可以同时在单个CertPath
对象(或多个)上调用此类中定义的方法,而不会产生任何不良影响。List
返回的CertPath.getCertificates
也是如此。要求
CertPath
对象是不可变的和线程安全的,允许它们传递给各种代码而不必担心协调访问。 提供这种线程安全性通常并不困难,因为所CertPath
和List
对象是不可变的。- 从以下版本开始:
- 1.4
- 另请参见:
-
CertificateFactory
,CertPathBuilder
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected static class
CertPath.CertPathRep
替代CertPath
类进行序列化。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 boolean
equals(Object other)
将此证书路径与指定对象进行相等性比较。abstract List<? extends Certificate>
getCertificates()
返回此证书路径中的证书列表。abstract byte[]
getEncoded()
使用默认编码返回此证书路径的编码形式。abstract byte[]
getEncoded(String encoding)
使用指定的编码返回此证书路径的编码形式。abstract Iterator<String>
getEncodings()
返回此证书路径支持的编码的迭代,首先使用默认编码。String
getType()
返回此证书路径中Certificate
的类型。int
hashCode()
返回此证书路径的哈希码。String
toString()
返回此证书路径的字符串表示形式。protected Object
writeReplace()
替换CertPath
成与被序列CertPathRep
对象。
-
-
-
构造方法详细信息
-
CertPath
protected CertPath(String type)
创建指定类型的CertPath
。此构造函数受到保护,因为大多数用户应使用
CertificateFactory
创建CertPath
。- 参数
-
type
- 此路径中Certificate
类型的标准名称
-
-
方法详细信息
-
getType
public String getType()
返回此证书路径中Certificate
的类型。 这与cert.getType()
为证书路径中的所有Certificate
返回的字符串相同。- 结果
- 此证书路径中
Certificate
的类型(永不为空)
-
getEncodings
public abstract Iterator<String> getEncodings()
返回此证书路径支持的编码的迭代,首先使用默认编码。 尝试通过其remove
方法修改返回的Iterator
,结果为UnsupportedOperationException
。- 结果
- 一个
Iterator
在支持的编码的名称上(作为字符串)
-
equals
public boolean equals(Object other)
将此证书路径与指定对象进行相等性比较。 两个CertPath
是相等的,当且仅当它们的类型相等且它们的证书List
s(并暗示Certificate
s中的List
s)相等时。CertPath
永远不会等于不是CertPath
的对象。该算法由该方法实现。 如果被覆盖,则必须维护此处指定的行为。
- 重写:
-
equals
在类Object
- 参数
-
other
- 要测试与此证书路径是否相等的对象 - 结果
- 如果指定的对象等于此证书路径,则返回true,否则返回false
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此证书路径的哈希码。 证书路径的哈希码被定义为以下计算的结果:hashCode = path.getType().hashCode(); hashCode = 31*hashCode + path.getCertificates().hashCode();
path1.equals(path2)
暗示path1.hashCode()==path2.hashCode()
用于任何两个认证路径path1
和path2
,如path2
的一般合同所Object.hashCode
。- 重写:
-
hashCode
类Object
- 结果
- 此证书路径的哈希码值
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
返回此证书路径的字符串表示形式。 这将调用toString
在每个方法Certificate
S IN的路径。
-
getEncoded
public abstract byte[] getEncoded() throws CertificateEncodingException
使用默认编码返回此证书路径的编码形式。- 结果
- 编码的字节
- 异常
-
CertificateEncodingException
- 如果发生编码错误
-
getEncoded
public abstract byte[] getEncoded(String encoding) throws CertificateEncodingException
使用指定的编码返回此证书路径的编码形式。- 参数
-
encoding
- 要使用的编码的名称 - 结果
- 编码的字节
- 异常
-
CertificateEncodingException
- 如果发生编码错误或不支持所请求的编码
-
getCertificates
public abstract List<? extends Certificate> getCertificates()
返回此证书路径中的证书列表。 返回的List
必须是不可变的和线程安全的。- 结果
- 一个不可变的
List
的Certificate
s(可能是空的,但不是null)
-
writeReplace
protected Object writeReplace() throws ObjectStreamException
将CertPath
替换为CertPathRep
对象的序列化。- 结果
- 要序列化的
CertPathRep
- 异常
-
ObjectStreamException
- 如果无法创建表示此证书路径的CertPathRep
对象
-
-