java.security.cert

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

public class PKIXBuilderParameters
     
extends PKIXParameters

用作 PKIX CertPathBuilder 算法的输入的参数。

PKIX CertPathBuilder 使用这些参数构建一个已根据 PKIX 证书路径验证算法验证的 CertPath

要实例化 PKIXBuilderParameters 对象,应用程序必须指定一个或多个由 PKIX 证书路径验证算法所定义的最受信任的 CA。可以使用两个构造方法中的一个来指定最受信任的 CA。应用程序可以调用 PKIXBuilderParameters(Set, CertSelector) 来指定一个 TrustAnchor 对象 Set,其中每个对象都标识一个最受信任的 CA。另外,应用程序也可调用 PKIXBuilderParameters(KeyStore, CertSelector) 来指定一个 KeyStore 实例,其中包含多个受信任的证书项,每个项都认为是一个最受信任的 CA。

另外,应用程序必须指定有关目标证书的限制,CertPathBuilder 将试图为该目标证书构建路径。以 CertSelector 对象的形式指定这些限制。这些限制应该为 CertPathBuilder 提供足够的搜索标准以找到该目标证书。X509Certificate 的最小标准通常包括了主体名称和/或一个或多个主体替换名称。如果未指定足够的标准,则 CertPathBuilder 可能抛出 CertPathBuilderException

并发访问

除非另行指定,否则此类中所定义的方法不是线程安全的。需要并发访问单个对象的多个线程应该在它们之间实现同步并提供所需的锁定。对于每个线程都操作一个不同对象的多个线程而言,无需实现同步。

从以下版本开始:
1.4
另请参见:
CertPathBuilder

构造方法摘要
PKIXBuilderParameters(KeyStore keystore, CertSelector targetConstraints)
          创建一个 PKIXBuilderParameters 实例,它根据指定 KeyStore 中所包含的受信任证书项生成最受信任的 CA 集。
PKIXBuilderParameters(Set<TrustAnchor> trustAnchors, CertSelector targetConstraints)
          创建具有指定最受信任 CA SetPKIXBuilderParameters 的实例。
 
方法摘要
 int getMaxPathLength()
          返回证书路径中可能存在的中间非自发布证书的最大数目值。
 void setMaxPathLength(int maxPathLength)
          设置证书路径中可能存在的非自发中间证书的最大数目值。
 String toString()
          返回描述该参数的格式化字符串。
 
从类 java.security.cert.PKIXParameters 继承的方法
addCertPathChecker, addCertStore, clone, getCertPathCheckers, getCertStores, getDate, getInitialPolicies, getPolicyQualifiersRejected, getSigProvider, getTargetCertConstraints, getTrustAnchors, isAnyPolicyInhibited, isExplicitPolicyRequired, isPolicyMappingInhibited, isRevocationEnabled, setAnyPolicyInhibited, setCertPathCheckers, setCertStores, setDate, setExplicitPolicyRequired, setInitialPolicies, setPolicyMappingInhibited, setPolicyQualifiersRejected, setRevocationEnabled, setSigProvider, setTargetCertConstraints, setTrustAnchors
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

PKIXBuilderParameters

public PKIXBuilderParameters(Set<TrustAnchor> trustAnchors,
                             CertSelector targetConstraints)
                      throws InvalidAlgorithmParameterException
创建具有指定最受信任 CA SetPKIXBuilderParameters 的实例。该 set 中的每个元素都是一个 TrustAnchor

注意,为了保护该 Set 以防后续修改,会复制该 Set。

参数:
trustAnchors - 一个 TrustAnchor Set
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 - 一个 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()

getMaxPathLength

public int getMaxPathLength()
返回证书路径中可能存在的中间非自发布证书的最大数目值。有关详细信息,请参阅 setMaxPathLength(int) 方法。

返回:
证书路径中可能存在的中间非自发布证书的最大数,如果没有限制,则返回 -1
另请参见:
setMaxPathLength(int)

toString

public String toString()
返回描述该参数的格式化字符串。

覆盖:
PKIXParameters 中的 toString
返回:
描述该参数的格式化字符串