模块 java.base

类 PKIXParameters

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

public class PKIXParameters extends Object implements CertPathParameters
用作 PKIX CertPathValidator 算法输入的参数。

PKIX CertPathValidator 根据 PKIX 认证路径验证算法使用这些参数来验证 CertPath

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

一旦创建了 PKIXParameters 对象,就可以指定其他参数(例如,通过调用 setInitialPolicies setDate ),然后将 PKIXParameters 与要验证的 CertPath 一起传递给 CertPathValidator.validate

任何未设置(或设置为 null )的参数都将设置为该参数的默认值。 date 参数的默认值为 null ,表示验证路径的当前时间。其余参数的默认值是最少受限的。

并发访问

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

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

  • 方法详情

    • getTrustAnchors

      public Set <TrustAnchor > getTrustAnchors()
      返回最受信任的 CA 的不可变 Set
      返回:
      TrustAnchor s 的不可变 Set (从不 null
      参见:
    • setTrustAnchors

      public void setTrustAnchors(Set <TrustAnchor > trustAnchors) throws InvalidAlgorithmParameterException
      设置最受信任的 CA 的 Set

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

      参数:
      trustAnchors - Set of TrustAnchor s
      抛出:
      InvalidAlgorithmParameterException - 如果指定的 Set 为空 (trustAnchors.isEmpty() == true)
      NullPointerException - 如果指定的 Setnull
      ClassCastException - 如果集合中的任何元素不是 java.security.cert.TrustAnchor 类型
      参见:
    • getInitialPolicies

      public Set <String > getInitialPolicies()
      返回初始策略标识符(OID 字符串)的不可变 Set,表示出于证书路径处理的目的,证书用户可以接受这些策略中的任何一个。默认返回值是一个空的 Set ,这被解释为任何策略都是可以接受的。
      返回:
      String 格式的初始策略 OID 的不可变 Set,或空的 Set(暗示任何策略都是可接受的)。从不返回 null
      参见:
    • setInitialPolicies

      public void setInitialPolicies(Set <String > initialPolicies)
      设置初始策略标识符(OID 字符串)的 Set,表示为了证书路径处理的目的,证书用户可以接受这些策略中的任何一个。默认情况下,任何策略都是可接受的(即所有策略),因此想要允许任何策略为可接受的用户不需要调用此方法,或者可以使用空的 Set (或 null )调用它。

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

      参数:
      initialPolicies - String 格式(或 null )的初始策略 OID 的 Set
      抛出:
      ClassCastException - 如果集合中的任何元素不是 String 类型
      参见:
    • setCertStores

      public void setCertStores(List <CertStore > stores)
      设置用于查找证书和 CRL 的 CertStore 列表。可能是 null ,在这种情况下将不使用 CertStore 。列表中的第一个 CertStore s 可能比后面出现的那些更受欢迎。

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

      参数:
      stores - CertStoreList(或 null
      抛出:
      ClassCastException - 如果列表中的任何元素不是 java.security.cert.CertStore 类型
      参见:
    • addCertStore

      public void addCertStore(CertStore  store)
      CertStore 添加到用于查找证书和 CRL 的 CertStore 列表的末尾。
      参数:
      store - 要添加的 CertStore。如果是 null ,商店将被忽略(不添加到列表中)。
    • getCertStores

      public List <CertStore > getCertStores()
      返回用于查找证书和 CRL 的不可变 List of CertStore s。
      返回:
      CertStore 的不可变 List (可能为空,但绝不为 null
      参见:
    • setRevocationEnabled

      public void setRevocationEnabled(boolean val)
      设置 RevocationEnabled 标志。如果此标志为真,则将使用底层 PKIX 服务提供者的默认吊销检查机制,除非将 PKIXRevocationChecker 作为 CertPathChecker 传入(请参阅下面的进一步解释)。如果此标志为 false,默认的撤销检查机制将被禁用(不使用)。

      创建 PKIXParameters 对象时,此标志设置为 true。此设置反映了检查撤销的最常见策略,因为每个服务提供商都必须支持撤销检查才能符合 PKIX。当使用 PKIX 服务提供者的默认撤销检查机制不切实际或要替换替代撤销检查机制(也通过调用 addCertPathChecker setCertPathCheckers 方法)时,复杂的应用程序应将此标志设置为 false。

      请注意,当 PKIXRevocationChecker 作为参数通过 addCertPathCheckersetCertPathCheckers 方法传入时,它将用于检查吊销,而不管 RevocationEnabled 标志的设置如何。

      参数:
      val - RevocationEnabled 标志的新值
    • isRevocationEnabled

      public boolean isRevocationEnabled()
      检查 RevocationEnabled 标志。如果此标志为真,则将使用底层 PKIX 服务提供商的默认吊销检查机制,除非将 PKIXRevocationChecker 作为 CertPathChecker 传入。如果此标志为 false,默认的撤销检查机制将被禁用(不使用)。有关设置此标志值的更多详细信息,请参阅 setRevocationEnabled 方法。
      返回:
      RevocationEnabled 标志的当前值
    • setExplicitPolicyRequired

      public void setExplicitPolicyRequired(boolean val)
      设置 ExplicitPolicyRequired 标志。如果此标志为真,则需要在每个证书中明确标识可接受的策略。默认情况下,ExplicitPolicyRequired 标志为 false。
      参数:
      val - true 如果需要明确的策略,false 否则
    • isExplicitPolicyRequired

      public boolean isExplicitPolicyRequired()
      检查是否需要显式策略。如果此标志为真,则需要在每个证书中明确标识可接受的策略。默认情况下,ExplicitPolicyRequired 标志为 false。
      返回:
      true如果需要明确的策略,false否则
    • setPolicyMappingInhibited

      public void setPolicyMappingInhibited(boolean val)
      设置 PolicyMappingInhibited 标志。如果此标志为真,则禁止策略映射。默认情况下,不禁止策略映射(标志为 false)。
      参数:
      val - true 如果要禁止策略映射,false 否则
    • isPolicyMappingInhibited

      public boolean isPolicyMappingInhibited()
      检查策略映射是否被禁止。如果此标志为真,则禁止策略映射。默认情况下,不禁止策略映射(标志为 false)。
      返回:
      如果禁止策略映射,则为 true,否则为 false
    • setAnyPolicyInhibited

      public void setAnyPolicyInhibited(boolean val)
      设置状态以确定是否应处理任何策略 OID(如果它包含在证书中)。默认情况下,不禁止任何策略 OID(isAnyPolicyInhibited() 返回 false)。
      参数:
      val - true 如果要禁止任何策略 OID,false 否则
    • isAnyPolicyInhibited

      public boolean isAnyPolicyInhibited()
      检查是否应处理任何策略 OID(如果它包含在证书中)。
      返回:
      true 如果任何策略 OID 被禁止,false 否则
    • setPolicyQualifiersRejected

      public void setPolicyQualifiersRejected(boolean qualifiersRejected)
      设置 PolicyQualifiersRejected 标志。如果此标志为真,则拒绝在标记为关键的证书策略扩展中包含策略限定符的证书。如果标志为 false,则不会在此基础上拒绝证书。

      创建 PKIXParameters 对象时,此标志设置为 true。此设置反映了处理策略限定符的最常见(也是最简单)的策略。想要使用更复杂策略的应用程序必须将此标志设置为 false。

      请注意,PKIX 证书路径验证算法指定必须处理和验证标记为关键的证书策略扩展中的任何策略限定符。否则必须拒绝认证路径。如果 policyQualifiersRejected 标志设置为 false,则由应用程序以这种方式验证所有策略限定符以符合 PKIX。

      参数:
      qualifiersRejected - PolicyQualifiersRejected 标志的新值
      参见:
    • getPolicyQualifiersRejected

      public boolean getPolicyQualifiersRejected()
      获取 PolicyQualifiersRejected 标志。如果此标志为真,则拒绝在标记为关键的证书策略扩展中包含策略限定符的证书。如果标志为 false,则不会在此基础上拒绝证书。

      创建 PKIXParameters 对象时,此标志设置为 true。此设置反映了处理策略限定符的最常见(也是最简单)的策略。想要使用更复杂策略的应用程序必须将此标志设置为 false。

      返回:
      PolicyQualifiersRejected 标志的当前值
      参见:
    • getDate

      public Date  getDate()
      返回应确定证书路径有效性的时间。如果 null ,则使用当前时间。

      请注意,复制返回的 Date 以防止后续修改。

      返回:
      Datenull 如果未设置
      参见:
    • setDate

      public void setDate(Date  date)
      设置应确定证书路径有效性的时间。如果 null ,则使用当前时间。

      请注意,复制此处提供的 Date 以防止后续修改。

      参数:
      date - 当前时间的 Datenull
      参见:
    • setCertPathCheckers

      public void setCertPathCheckers(List <PKIXCertPathChecker > checkers)
      设置 List 额外的认证路径检查器。如果指定的 List 包含一个不是 PKIXCertPathChecker 的对象,它将被忽略。

      每个 PKIXCertPathChecker 指定都对证书实施额外检查。通常,这些是处理和验证证书中包含的私有扩展的检查。每个 PKIXCertPathChecker 都应使用执行检查所需的任何初始化参数进行实例化。

      此方法允许复杂的应用程序扩展 PKIX CertPathValidatorCertPathBuilder。 PKIX CertPathValidatorCertPathBuilder 将依次调用每个指定的 PKIXCertPathChecker 以处理或验证每个证书。

      无论是否设置了这些额外的 PKIXCertPathChecker,PKIX CertPathValidatorCertPathBuilder 都必须对每个证书执行所有必需的 PKIX 检查。此规则的一个例外是 RevocationEnabled 标志设置为 false(请参阅 setRevocationEnabled 方法)。

      请注意,此处提供的 List 已被复制,并且列表中的每个 PKIXCertPathChecker 都已被克隆以防止后续修改。

      参数:
      checkers - List of PKIXCertPathChecker s。可能是 null ,在这种情况下不会使用额外的检查器。
      抛出:
      ClassCastException - 如果列表中的任何元素不是 java.security.cert.PKIXCertPathChecker 类型
      参见:
    • getCertPathCheckers

      public List <PKIXCertPathChecker > getCertPathCheckers()
      返回证书路径检查器的List。返回的 List 是不可变的,List 中的每个 PKIXCertPathChecker 都被克隆以防止后续修改。
      返回:
      PKIXCertPathChecker 的不可变 List (可能为空,但不是 null
      参见:
    • addCertPathChecker

      public void addCertPathChecker(PKIXCertPathChecker  checker)
      PKIXCertPathChecker 添加到证书路径检查器列表中。有关详细信息,请参阅 setCertPathCheckers 方法。

      请注意,PKIXCertPathChecker 已被克隆以防止后续修改。

      参数:
      checker - 一个 PKIXCertPathChecker 添加到检查列表中。如果是 null ,检查器将被忽略(不添加到列表中)。
    • getSigProvider

      public String  getSigProvider()
      返回签名提供者的名称,如果未设置则返回 null
      返回:
      签名提供者的名字(或 null
      参见:
    • setSigProvider

      public void setSigProvider(String  sigProvider)
      设置签名提供者的名称。创建 Signature 对象时,将首选指定的提供程序。如果 null 或未设置,将使用找到的第一个支持该算法的提供程序。
      参数:
      sigProvider - 签名提供者的名称(或 null
      参见:
    • getTargetCertConstraints

      public CertSelector  getTargetCertConstraints()
      返回目标证书所需的约束。约束作为 CertSelector 的实例返回。如果是 null ,则没有定义任何约束。

      请注意,返回的 CertSelector 被克隆以防止后续修改。

      返回:
      一个 CertSelector 指定对目标证书的约束(或 null
      参见:
    • setTargetCertConstraints

      public void setTargetCertConstraints(CertSelector  selector)
      对目标证书设置所需的约束。约束被指定为 CertSelector 的一个实例。如果是 null ,则没有定义任何约束。

      请注意,克隆指定的 CertSelector 以防止后续修改。

      参数:
      selector - 一个 CertSelector 指定对目标证书的约束(或 null
      参见:
    • clone

      public Object  clone()
      制作此 PKIXParameters 对象的副本。对副本的更改不会影响原始文件,反之亦然。
      指定者:
      clone 在接口 CertPathParameters
      重写:
      clone 在类 Object
      返回:
      这个 PKIXParameters 对象的副本
      参见:
    • toString

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