CertPath
这是一个抽象类,它定义了所有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.509 CertPath
可能不遵循这些约定。 PKIX CertPathValidator
s将检测导致认证路径无效的这些约定的任何偏离并抛出CertPathValidatorException
。
Java平台的每个实现都需要支持以下标准CertPath
编码:
-
PKCS7
-
PkiPath
并发访问
所有CertPath
对象必须是线程安全的。 也就是说,多个线程可以同时在单个CertPath
对象(或多个)上调用此类中定义的方法,而不会产生任何不良影响。 List
返回的CertPath.getCertificates
也是如此。
要求CertPath
对象是不可变的和线程安全的,允许它们传递给各种代码而不必担心协调访问。 提供这种线程安全性通常并不困难,因为所CertPath
和List
对象是不可变的。
上一篇: Linux 解压文件
下一篇: https 学习(1)
推荐阅读