- 所有已实现的接口:
-
Cloneable
,CertPathChecker
- 直接已知的子类:
-
PKIXRevocationChecker
X509Certificate
执行一个或多个检查。
可以创建PKIXCertPathChecker
类的具体实现来扩展PKIX证书路径验证算法。例如,一个实现可以检查并处理证书路径中每个证书的关键私有扩展。
PKIXCertPathChecker
的实例作为参数传递,使用PKIXParameters
和PKIXBuilderParameters
类的setCertPathCheckers(java.util.List)
或addCertPathChecker(java.security.cert.PKIXCertPathChecker)
方法。每个PKIXCertPathChecker
的check
方法将被调用,依次处理PKIX CertPathValidator
或CertPathBuilder
实现处理的每个证书。
PKIXCertPathChecker
可能会在证书路径中的连续证书上被多次调用。预期具体子类将维护可能需要检查连续证书的任何内部状态。init
方法用于初始化检查器的内部状态,以便可以检查新证书路径的证书。如果需要,有状态的实现必须覆盖clone
方法,以便允许PKIX CertPathBuilder
有效地回溯并尝试其他路径。在这些情况下,CertPathBuilder
能够通过恢复克隆的PKIXCertPathChecker
来恢复先前的路径验证状态。
证书被呈现给PKIXCertPathChecker
的顺序可以是正向方向(从目标到最受信任的CA)或反向方向(从最受信任的CA到目标)。PKIXCertPathChecker
实现必须支持反向检查(当以反向方向呈现证书时执行其检查的能力),可以支持正向检查(当以正向方向呈现证书时执行其检查的能力)。isForwardCheckingSupported
方法指示是否支持正向检查。
执行检查所需的额外输入参数可以通过此类的具体实现的构造函数指定。
并发访问
除非另有说明,此类中定义的方法不是线程安全的。需要同时访问单个对象的多个线程应该在彼此之间同步并提供必要的锁定。每个操作不同对象的多个线程不需要同步。
- 自:
- 1.4
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
check
(Certificate cert) 使用其内部状态对指定证书执行检查。abstract void
check
(Certificate cert, Collection<String> unresolvedCritExts) 使用其内部状态对指定证书执行检查,并从表示未解析的关键扩展的OID字符串集合中删除任何处理的关键扩展。clone()
返回此对象的克隆。返回不可变的Set
,表示此PKIXCertPathChecker
支持的X.509证书扩展(即识别、能够处理的),如果不支持任何扩展,则返回null
。abstract void
init
(boolean forward) 初始化此PKIXCertPathChecker
的内部状态。abstract boolean
指示是否支持正向检查。
-
Constructor Details
-
PKIXCertPathChecker
protected PKIXCertPathChecker()默认构造函数。
-
-
Method Details
-
init
初始化此PKIXCertPathChecker
的内部状态。forward
标志指定将证书传递给check
方法的顺序(正向或反向)。PKIXCertPathChecker
必须支持反向检查,可以支持正向检查。- 指定者:
-
init
在接口CertPathChecker
中 - 参数:
-
forward
- 将证书呈现给check
方法的顺序。如果为true
,则证书从目标到最受信任的CA(正向)呈现;如果为false
,则从最受信任的CA到目标(反向)呈现。 - 抛出:
-
CertPathValidatorException
- 如果此PKIXCertPathChecker
无法按指定顺序检查证书;如果反向检查必须受支持,则不应抛出该异常,因为必须支持反向检查
-
isForwardCheckingSupported
public abstract boolean isForwardCheckingSupported()指示是否支持正向检查。正向检查是指PKIXCertPathChecker
在证书以正向方向(从目标到最受信任的CA)呈现给check
方法时执行其检查的能力。- 指定者:
-
isForwardCheckingSupported
在接口CertPathChecker
中 - 返回:
-
如果支持正向检查,则返回
true
,否则返回false
-
getSupportedExtensions
返回不可变的Set
,表示此PKIXCertPathChecker
支持的X.509证书扩展(即识别、能够处理的),如果不支持任何扩展,则返回null
。集合的每个元素都是表示支持的X.509扩展的对象标识符(OID)的
String
。OID由一组用句点分隔的非负整数表示。应包括
PKIXCertPathChecker
可能能够处理的所有X.509证书扩展。- 返回:
-
表示此
PKIXCertPathChecker
支持的X.509扩展OID(以String
格式)的不可变Set
,如果不支持任何扩展,则返回null
-
check
public abstract void check(Certificate cert, Collection<String> unresolvedCritExts) throws CertPathValidatorException 使用其内部状态对指定证书执行检查,并从表示未解析的关键扩展的OID字符串集合中删除任何处理的关键扩展。证书按init
方法指定的顺序呈现。- 参数:
-
cert
- 要检查的Certificate
-
unresolvedCritExts
- 表示当前未解析的关键扩展集合的Collection
的OID字符串 - 抛出:
-
CertPathValidatorException
- 如果指定的证书未通过检查
-
check
使用其内部状态对指定证书执行检查。证书按init
方法指定的顺序呈现。此实现调用
check(cert, java.util.Collections.<String>emptySet())
。- 指定者:
-
check
在接口CertPathChecker
中 - 参数:
-
cert
- 要检查的Certificate
- 抛出:
-
CertPathValidatorException
- 如果指定的证书未通过检查
-
clone
返回此对象的克隆。调用Object.clone()
方法。所有维护状态的子类必须支持并覆盖此方法,如果有必要的话。
-