- 所有已实现的接口:
-
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheck(Certificate cert) 使用其内部状态对指定证书执行检查。abstract voidcheck(Certificate cert, Collection<String> unresolvedCritExts) 使用其内部状态对指定证书执行检查,并从表示未解析的关键扩展的OID字符串集合中删除任何处理的关键扩展。clone()返回此对象的克隆。返回不可变的Set,表示此PKIXCertPathChecker支持的X.509证书扩展(即识别、能够处理的),如果不支持任何扩展,则返回null。abstract voidinit(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()方法。所有维护状态的子类必须支持并覆盖此方法,如果有必要的话。
-