Module java.base

Class PKIXCertPathChecker

java.lang.Object
java.security.cert.PKIXCertPathChecker
所有已实现的接口:
Cloneable, CertPathChecker
直接已知的子类:
PKIXRevocationChecker

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

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

PKIXCertPathChecker的实例作为参数传递,使用PKIXParametersPKIXBuilderParameters类的setCertPathCheckers(java.util.List)addCertPathChecker(java.security.cert.PKIXCertPathChecker)方法。每个PKIXCertPathCheckercheck方法将被调用,依次处理PKIX CertPathValidatorCertPathBuilder实现处理的每个证书。

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

证书被呈现给PKIXCertPathChecker的顺序可以是正向方向(从目标到最受信任的CA)或反向方向(从最受信任的CA到目标)。PKIXCertPathChecker实现必须支持反向检查(当以反向方向呈现证书时执行其检查的能力),可以支持正向检查(当以正向方向呈现证书时执行其检查的能力)。isForwardCheckingSupported方法指示是否支持正向检查。

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

并发访问

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

自:
1.4
参见:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    默认构造函数。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    使用其内部状态对指定证书执行检查。
    abstract void
    check(Certificate cert, Collection<String> unresolvedCritExts)
    使用其内部状态对指定证书执行检查,并从表示未解析的关键扩展的OID字符串集合中删除任何处理的关键扩展。
    clone()
    返回此对象的克隆。
    abstract Set<String>
    返回不可变的Set,表示此PKIXCertPathChecker支持的X.509证书扩展(即识别、能够处理的),如果不支持任何扩展,则返回null
    abstract void
    init(boolean forward)
    初始化此PKIXCertPathChecker的内部状态。
    abstract boolean
    指示是否支持正向检查。

    Methods declared in class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PKIXCertPathChecker

      protected PKIXCertPathChecker()
      默认构造函数。
  • Method Details

    • init

      public abstract void init(boolean forward) throws CertPathValidatorException
      初始化此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

      public abstract Set<String> 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

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

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

      指定者:
      check 在接口 CertPathChecker
      参数:
      cert - 要检查的Certificate
      抛出:
      CertPathValidatorException - 如果指定的证书未通过检查
    • clone

      public Object clone()
      返回此对象的克隆。调用Object.clone()方法。所有维护状态的子类必须支持并覆盖此方法,如果有必要的话。
      覆盖:
      clone 在类 Object
      返回:
      PKIXCertPathChecker的副本
      参见: