模块 java.base

类 PKIXBuilderParameters

java.lang.Object
java.security.cert.PKIXParameters
java.security.cert.PKIXBuilderParameters
所有已实现的接口:
Cloneable , CertPathParameters

public class PKIXBuilderParameters extends PKIXParameters
用作 PKIX CertPathBuilder 算法输入的参数。

PKIX CertPathBuilder 使用这些参数来 build a CertPath 已根据 PKIX 认证路径验证算法进行验证。

要实例化 PKIXBuilderParameters 对象,应用程序必须指定一个或多个最受信任的 CA由 PKIX 认证路径验证算法定义。可以使用两个构造函数之一指定最受信任的 CA。应用程序可以调用 PKIXBuilderParameters(Set, CertSelector) ,指定 SetTrustAnchor 对象,每个对象都标识一个最受信任的 CA。或者,应用程序可以调用 PKIXBuilderParameters(KeyStore, CertSelector) ,指定包含受信任证书条目的 KeyStore 实例,每个条目都将被视为最受信任的 CA。

此外,应用程序必须指定对CertPathBuilder 将尝试构建路径的目标证书的约束。约束被指定为 CertSelector 对象。这些约束应该为 CertPathBuilder 提供足够的搜索条件来找到目标证书。 X509Certificate 的最低标准通常包括主题名称和/或一个或多个主题替代名称。如果没有指定足够的标准,CertPathBuilder 可能会抛出一个 CertPathBuilderException

并发访问

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

自从:
1.4
参见:
  • 构造方法详细信息

    • PKIXBuilderParameters

      public PKIXBuilderParameters(Set <TrustAnchor > trustAnchors, CertSelector  targetConstraints) throws InvalidAlgorithmParameterException
      使用最受信任的 CA 的指定 Set 创建 PKIXBuilderParameters 的实例。该集合的每个元素都是一个 TrustAnchor

      请注意,复制 Set 以防止后续修改。

      参数:
      trustAnchors - Set of TrustAnchor s
      targetConstraints - 一个 CertSelector 指定对目标证书的约束
      抛出:
      InvalidAlgorithmParameterException - 如果 trustAnchors 为空 (trustAnchors.isEmpty() == true)
      NullPointerException - 如果 trustAnchorsnull
      ClassCastException - 如果 trustAnchors 的任何元素不是 java.security.cert.TrustAnchor 类型
    • PKIXBuilderParameters

      public PKIXBuilderParameters(KeyStore  keystore, CertSelector  targetConstraints) throws KeyStoreException , InvalidAlgorithmParameterException
      创建 PKIXBuilderParameters 的实例,该实例从指定的 KeyStore 中包含的受信任证书条目填充最受信任的 CA 集。仅考虑包含受信任的 X509Certificate 的密钥库条目;所有其他证书类型都将被忽略。
      参数:
      keystore - 一个 KeyStore,将从中填充最受信任的 CA 集
      targetConstraints - 一个 CertSelector 指定对目标证书的约束
      抛出:
      KeyStoreException - 如果 keystore 尚未初始化
      InvalidAlgorithmParameterException - 如果 keystore 不包含至少一个受信任的证书条目
      NullPointerException - 如果 keystorenull
  • 方法详情

    • setMaxPathLength

      public void setMaxPathLength(int maxPathLength)
      设置证书路径中可能存在的非自发中间证书的最大数量值。如果出现在主题和颁发者字段中的 DN 相同且不为空,则证书是自行颁发的。请注意,证书路径中的最后一个证书不是中间证书,因此不包含在此限制中。通常最后一个证书是终端实体证书,但也可以是 CA 证书。 PKIX CertPathBuilder 实例不得构建比指定长度更长的路径。

      值 0 表示该路径只能包含一个证书。值-1 表示路径长度不受约束(即没有最大值)。如果未指定,默认最大路径长度为 5。设置小于 -1 的值将导致抛出异常。

      如果任何 CA 证书包含 BasicConstraintsExtension ,则扩展的 pathLenConstraint 字段的值将覆盖最大路径长度参数,只要结果是更短长度的证书路径。

      参数:
      maxPathLength - 证书路径中可能存在的非自行颁发的中间证书的最大数量
      抛出:
      InvalidParameterException - 如果 maxPathLength 设置为小于 -1 的值
      参见:
    • getMaxPathLength

      public int getMaxPathLength()
      返回证书路径中可能存在的中间非自发证书的最大数量值。有关详细信息,请参阅 setMaxPathLength(int) 方法。
      返回:
      证书路径中可能存在的非自行颁发的中间证书的最大数量,如果没有限制,则为 -1
      参见:
    • toString

      public String  toString()
      返回描述参数的格式化字符串。
      重写:
      toString 在类 PKIXParameters
      返回:
      描述参数的格式化字符串