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