Module  java.base
软件包  java.security.cert

Class PKIXCertPathChecker

  • All Implemented Interfaces:
    CloneableCertPathChecker
    已知直接子类:
    PKIXRevocationChecker


    public abstract class PKIXCertPathChecker
    extends Object
    implements CertPathChecker, Cloneable
    X509Certificate执行一个或多个检查的抽象类。

    可以创建PKIXCertPathChecker类的具体实现来扩展PKIX认证路径验证算法。 例如,实现可以检查和处理认证路径中每个证书的关键私人扩展。

    PKIXCertPathChecker实例使用PKIXParametersPKIXBuilderParameters类的setCertPathCheckersaddCertPathChecker方法作为参数传递。 将针对由PKIX CertPathValidatorCertPathBuilder实现的每个证书调用PKIXCertPathCheckercheck方法。

    A PKIXCertPathChecker可以在认证路径中的连续证书上多次调用。 预期具体子类将维护可能需要检查连续证书的任何内部状态。 init方法用于初始化检查器的内部状态,以便可以检查新的认证路径的证书。 必要时,有状态的实现必须覆盖clone方法,以便允许PKIX CertPathBuilder有效地回溯并尝试其他路径。 在这些情况下, CertPathBuilder能够通过恢复克隆的PKIXCertPathChecker s恢复先前的路径验证状态。

    证书提交给PKIXCertPathChecker可能是向前(从目标到最受信任的CA)或反向(从最受信任的CA到目标)。 一个PKIXCertPathChecker实现必须支持反向检查(当相反方向呈现证书时执行检查的能力),并且可以支持前向检查(当向前方向呈现证书时执行检查的能力)。 isForwardCheckingSupported方法指示是否支持前向检查。

    执行检查所需的附加输入参数可以通过此类的具体实现的构造函数来指定。

    并发访问

    除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。

    从以下版本开始:
    1.4
    另请参见:
    PKIXParametersPKIXBuilderParameters
    • 构造方法详细信息

      • PKIXCertPathChecker

        protected PKIXCertPathChecker​()
        默认构造函数。
    • 方法详细信息

      • init

        public abstract void init​(boolean forward)
                           throws CertPathValidatorException
        初始化这个PKIXCertPathChecker的内部状态。

        forward标志指定证书将传递给check方法(正向或反向)的顺序。 A PKIXCertPathChecker 必须支持反向检查,并且可以支持前向检查。

        Specified by:
        init在接口 CertPathChecker
        参数
        forward - 证书颁发给check方法的check 如果true ,证书将从目标提供给最受信任的CA(转发); 如果是false ,从最信任的CA到目标(反向)。
        异常
        CertPathValidatorException - 如果这个PKIXCertPathChecker无法以指定的顺序检查证书; 如果forward标志为false,则不应该抛出,因为必须支持反向检查
      • isForwardCheckingSupported

        public abstract boolean isForwardCheckingSupported​()
        指示是否支持转发检查。 正向检查指的能力PKIXCertPathChecker时证书被呈现给执行其检查check方法在向前方向(从靶到最信任的CA)。
        Specified by:
        isForwardCheckingSupported在接口 CertPathChecker
        结果
        true如果支持前向检查,否则为 false
      • getSupportedExtensions

        public abstract Set<String> getSupportedExtensions​()
        返回PKIXCertPathChecker支持(即识别,能够处理)的X.509证书扩展的不可变Set ,如果不支持扩展名,则null

        集合的每个元素是表示支持的X.509扩展的对象标识符(OID)的String OID由一组以句点分隔的非负整数表示。

        一个PKIXCertPathChecker可能能够处理的所有X.509证书扩展应该包含在该集合中。

        结果
        一个不可变 Set X.509扩展的OID(在 String此支持的格式) PKIXCertPathChecker ,或 null ,如果没有附加信息被支撑
      • check

        public abstract void check​(Certificate cert,
                                   Collection<String> unresolvedCritExts)
                            throws CertPathValidatorException
        使用其内部状态对指定证书执行检查,并从指定的OID字符串集合中删除其处理的任何关键扩展,这些扩展代表未解决的关键扩展。 证书按照init方法规定的顺序init
        参数
        cert - 要检查的 Certificate
        unresolvedCritExts - 一个 Collection的OID字符串,表示当前的一组未解决的关键扩展
        异常
        CertPathValidatorException - 如果指定的证书没有通过支票
      • check

        public void check​(Certificate cert)
                   throws CertPathValidatorException
        使用其内部状态对指定的证书执行检查。 证书按照init方法规定的顺序init

        此实现调用check(cert, java.util.Collections.<String>emptySet())

        Specified by:
        check在接口 CertPathChecker
        参数
        cert - 要检查的 Certificate
        异常
        CertPathValidatorException - 如果指定的证书没有通过支票
      • clone

        public Object clone​()
        返回此对象的克隆。 调用Object.clone()方法。 维护状态的所有子类必须支持并覆盖此方法。
        重写:
        cloneObject
        结果
        这个 PKIXCertPathChecker的副本
        另请参见:
        Cloneable