java.security.cert

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

public class PKIXParameters
     
extends Object
implements CertPathParameters

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

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

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

一旦创建了 PKIXParameters 对象,就可以指定其他参数(例如通过调用 setInitialPoliciessetDate),然后沿着要被 CertPathValidator.validate 所验证的 CertPath 传递 PKIXParameters

所有未设置(或被设置为 null)的参数将被设置为该参数的默认值。date 参数的默认值是 null,指示验证该路径时的当前时间。其余参数的默认值是约束最少的。

并发访问

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

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

构造方法摘要
PKIXParameters(KeyStore keystore)
          创建一个 PKIXParameters 实例,它根据指定 KeyStore 中所包含的受信证书项生成最受信任的 CA 集。
PKIXParameters(Set<TrustAnchor> trustAnchors)
          创建具有指定最受信任 CA SetPKIXParameters 的实例。
 
方法摘要
 void addCertPathChecker(PKIXCertPathChecker checker)
          向证书路径检查器列表中添加一个 PKIXCertPathChecker
 void addCertStore(CertStore store)
          将 CertStore 添加到查找证书和 CRL 所使用的 CertStore 列表末尾。
 Object clone()
          对此 PKIXParameters 对象进行复制。
 List<PKIXCertPathChecker> getCertPathCheckers()
          返回证书路径检查器的 List
 List<CertStore> getCertStores()
          返回用于查找证书和 CRL 的不可变 CertStore List
 Date getDate()
          返回应该确定证书路径有效性的时间。
 Set<String> getInitialPolicies()
          返回初始策略标识符(OID 字符串)的不可变 Set,指示出于证书路径处理的目的,所有这些策略都可被证书用户接受。
 boolean getPolicyQualifiersRejected()
          获取 PolicyQualifiersRejected 标志。
 String getSigProvider()
          返回签名提供者的名称,如果未设置,则返回 null
 CertSelector getTargetCertConstraints()
          返回目标证书所需的限制。
 Set<TrustAnchor> getTrustAnchors()
          返回不可变的、最受信任的 CA Set
 boolean isAnyPolicyInhibited()
          检查当证书中包括了任何策略 OID 时是否应该处理它。
 boolean isExplicitPolicyRequired()
          检查是否需要显式策略。
 boolean isPolicyMappingInhibited()
          检查是否禁止策略映射。
 boolean isRevocationEnabled()
          检查 RevocationEnabled 标志。
 void setAnyPolicyInhibited(boolean val)
          设置状态,以确定当证书中包括了策略 OID 时是否应该处理它。
 void setCertPathCheckers(List<PKIXCertPathChecker> checkers)
          设置其他证书路径检查器的 List
 void setCertStores(List<CertStore> stores)
          设置在查找证书和 CRL 时所使用的 CertStore 列表。
 void setDate(Date date)
          设置应该确定证书路径有效性的时间。
 void setExplicitPolicyRequired(boolean val)
          设置 ExplicitPolicyRequired 标志。
 void setInitialPolicies(Set<String> initialPolicies)
          设置初始策略标识符(OID 字符串)的 Set,指示出于证书路径处理的目的,所有这些策略都可被证书用户接受。
 void setPolicyMappingInhibited(boolean val)
          设置 PolicyMappingInhibited 标志。
 void setPolicyQualifiersRejected(boolean qualifiersRejected)
          设置 PolicyQualifiersRejected 标志。
 void setRevocationEnabled(boolean val)
          设置 RevocationEnabled 标志。
 void setSigProvider(String sigProvider)
          设置签名提供者的名称。
 void setTargetCertConstraints(CertSelector selector)
          设置目标证书所需的限制。
 void setTrustAnchors(Set<TrustAnchor> trustAnchors)
          设置最受信任的 CA Set
 String toString()
          返回描述该参数的格式化字符串。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

PKIXParameters

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

注意,要复制该 Set 以防对其进行后续修改。

参数:
trustAnchors - TrustAnchorSet
抛出:
InvalidAlgorithmParameterException - 如果指定的 Set 为空 (trustAnchors.isEmpty() == true)
NullPointerException - 如果指定的 Setnull
ClassCastException - 如果该 Set 中任一元素不是 java.security.cert.TrustAnchor 类型的

PKIXParameters

public PKIXParameters(KeyStore keystore)
               throws KeyStoreException,
                      InvalidAlgorithmParameterException
创建一个 PKIXParameters 实例,它根据指定 KeyStore 中所包含的受信证书项生成最受信任的 CA 集。只考虑那些包含受信 X509Certificates 的 keystore 项;忽略所有其他证书类型。

参数:
keystore - 一个 KeyStore,将根据它来生成最受信任的 CA 集
抛出:
KeyStoreException - 如果尚未初始化 keystore
InvalidAlgorithmParameterException - 如果 keystore 不包含一个受信证书项
NullPointerException - 如果 keystore 为 null
方法详细信息

getTrustAnchors

public Set<TrustAnchor> getTrustAnchors()
返回不可变的、最受信任的 CA Set

返回:
不可变的 TrustAnchor Set(从不为 null
另请参见:
setTrustAnchors(java.util.Set )

setTrustAnchors

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

注意,要复制该 Set 以防对其进行后续修改。

参数:
trustAnchors - TrustAnchorSet
抛出:
InvalidAlgorithmParameterException - 如果指定的 Set 为空 (trustAnchors.isEmpty() == true)
NullPointerException - 如果指定的 Setnull
ClassCastException - 如果该 Set 中的任一元素不是 java.security.cert.TrustAnchor 类型的
另请参见:
getTrustAnchors()

getInitialPolicies

public Set<String> getInitialPolicies()
返回初始策略标识符(OID 字符串)的不可变 Set,指示出于证书路径处理的目的,所有这些策略都可被证书用户接受。默认返回值是一个空 Set,它可以解释为任意策略均是可接受的。

返回:
初始策略 OID(以 String 的形式)的不可变 Set,或者是空 Set(暗示所有策略均是可接受的)。从不返回 null
另请参见:
setInitialPolicies(java.util.Set )

setInitialPolicies

public void setInitialPolicies(Set<String> initialPolicies)
设置初始策略标识符(OID 字符串)的 Set,指示出于证书路径处理的目的,所有这些策略都可被证书用户接受。默认情况下,任意策略(也就是所有策略)都是可接受的,所以想要任意策略都为可接受的用户不必调用此方法,或者可以用空的 Set(或者 null)调用此方法。

注意,要复制该 Set 以防对其进行后续修改。

参数:
initialPolicies - 初始策略 OID(以 String 格式)的 Set(或者为 null
抛出:
ClassCastException - 如果该 set 中的任一元素不是 String 类型的
另请参见:
getInitialPolicies()

setCertStores

public void setCertStores(List<CertStore> stores)
设置在查找证书和 CRL 时所使用的 CertStore 列表。可以为 null,在这种情况下将不使用 CertStore。列表中前面出现的 CertStore 可能优先于后面出现的 CertStore 使用。

注意,要复制该 List 以防对其进行后续修改。

参数:
stores - CertStoreList(或者为 null
抛出:
ClassCastException - 如果该 list 中的任一元素不是 java.security.cert.CertStore 类型的
另请参见:
getCertStores()

addCertStore

public void addCertStore(CertStore store)
CertStore 添加到查找证书和 CRL 所使用的 CertStore 列表末尾。

参数:
store - 要添加的 CertStore。如果为 null,则忽略该 CertStore(不添加到列表中)。

getCertStores

public List<CertStore> getCertStores()
返回用于查找证书和 CRL 的不可变 CertStore List

返回:
一个不可变的 CertStore List(可能为空,但从不为 null
另请参见:
setCertStores(java.util.List )

setRevocationEnabled

public void setRevocationEnabled(boolean val)
设置 RevocationEnabled 标志。如果此标志为 true,则使用底层 PKIX 服务提供者的默认撤消检查机制。如果此标志为 false,则禁用(不使用)默认撤消检查机制。

创建 PKIXParameters 对象时,此标志被设置为 true。此设置反映了检查撤消最常见的策略,因为每个服务提供者必须支持撤消检查是遵守 PKIX 的。当复杂的应用程序没有实际使用 PKIX 服务提供者的默认撤消检查机制时,或者使用一个替代的撤消检查机制来替换(仍通过调用 addCertPathCheckersetCertPathCheckers 方法)时,应该将此标志设置为 false。

参数:
val - RevocationEnabled 标志的新值

isRevocationEnabled

public boolean isRevocationEnabled()
检查 RevocationEnabled 标志。如果此标志为 true,则将使用底层 PKIX 服务提供者的默认撤消检查机制。如果此标志为 false,则禁用(不使用)默认撤消检查机制。有关设置此标志值的更多细节,请参见 setRevocationEnabled 方法。

返回:
RevocationEnabled 标志的当前值

setExplicitPolicyRequired

public void setExplicitPolicyRequired(boolean val)
设置 ExplicitPolicyRequired 标志。如果此标志为 true,则需要在每个证书中显式地标识一个可接受的策略。默认情况下,ExplicitPolicyRequired 标志为 false。

参数:
val - 如果需要显式策略,则为 true;否则为 false

isExplicitPolicyRequired

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

返回:
如果需要显式策略,则返回 true;否则返回 false

setPolicyMappingInhibited

public void setPolicyMappingInhibited(boolean val)
设置 PolicyMappingInhibited 标志。如果此标志为 true,则禁止策略映射。默认情况下,不禁止策略映射(其标志为 false)。

参数:
val - 如果禁止策略映射,则为 true;否则为 false

isPolicyMappingInhibited

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

返回:
如果禁止策略映射,则返回 true;否则返回 false

setAnyPolicyInhibited

public void setAnyPolicyInhibited(boolean val)
设置状态,以确定当证书中包括了策略 OID 时是否应该处理它。默认情况下,不禁止任何策略 OID( isAnyPolicyInhibited() 返回 false)。

参数:
val - 如果要禁止任何策略 OID,则为 true;否则为 false

isAnyPolicyInhibited

public boolean isAnyPolicyInhibited()
检查当证书中包括了任何策略 OID 时是否应该处理它。

返回:
如果禁止任何策略 OID,则返回 true;否则返回 false

setPolicyQualifiersRejected

public void setPolicyQualifiersRejected(boolean qualifiersRejected)
设置 PolicyQualifiersRejected 标志。如果此标志为 true,则在其被标记为关键的证书策略扩展中包括策略限定符的证书被拒绝。如果该标志为 false,则不拒绝此种证书。

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

注意,PKIX 证书路径验证算法规定,对标记为关键的证书策略扩展中的策略限定符必须加以处理和验证。否则必须放弃该证书路径。如果 policyQualifiersRejected 标志设置为 false,那么为了遵守 PKIX ,由应用程序以此方式来验证所有的策略限定符。

参数:
qualifiersRejected - PolicyQualifiersRejected 标志的新值
另请参见:
getPolicyQualifiersRejected(), PolicyQualifierInfo

getPolicyQualifiersRejected

public boolean getPolicyQualifiersRejected()
获取 PolicyQualifiersRejected 标志。如果此标志为 true,则在其被标记为关键的证书策略扩展中包括策略限定符的证书被拒绝。如果该标志为 false,则不拒绝此种证书。

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

返回:
PolicyQualifiersRejected 标志的当前值
另请参见:
setPolicyQualifiersRejected(boolean)

getDate

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

注意,要复制返回的 Date 以防对其进行后续修改。

返回:
Date,如果未设置,则返回 null
另请参见:
setDate(java.util.Date)

setDate

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

注意,要复制此处提供的 Date 以防对其进行后续修改。

参数:
date - Date,如果使用当前时间,则为 null
另请参见:
getDate()

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,并且复制该 List 中的所有 PKIXCertPathChecker 以防对其进行后续修改。

参数:
checkers - PKIXCertPathCheckerList。可以为 null,在这种情况下将不使用其他的检查器。
抛出:
ClassCastException - 如果该 List 中的任一元素不是 java.security.cert.PKIXCertPathChecker 类型的
另请参见:
getCertPathCheckers()

getCertPathCheckers

public List<PKIXCertPathChecker> getCertPathCheckers()
返回证书路径检查器的 List。返回的 List 是不可变的,并且复制该 List 中的所有 PKIXCertPathChecker 以防对其进行后续修改。

返回:
一个不可变的 PKIXCertPathChecker List(可能为空,但从不为 null
另请参见:
setCertPathCheckers(java.util.List )

addCertPathChecker

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

注意,要复制该 PKIXCertPathChecker 以防对其进行后续修改。

参数:
checker - 要添加到检查列表中的 PKIXCertPathChecker。如果为 null,则忽略该检查器(不添加到列表中)。

getSigProvider

public String getSigProvider()
返回签名提供者的名称,如果未设置,则返回 null

返回:
签名提供者的名称(或者返回 null
另请参见:
setSigProvider(java.lang.String)

setSigProvider

public void setSigProvider(String sigProvider)
设置签名提供者的名称。创建 Signature 对象时将首选该指定的提供者。如果为 null 或未设置,则将使用所找到的、支持该算法的第一个提供者。

参数:
sigProvider - 签名提供者的名称(或者为 null
另请参见:
getSigProvider()

getTargetCertConstraints

public CertSelector getTargetCertConstraints()
返回目标证书所需的限制。以 CertSelector 实例的形式返回这些限制。如果为 null,则未定义限制。

注意,要复制返回的 CertSelector 以防对其进行后续修改。

返回:
指定目标证书限制的 CertSelector(或者返回 null
另请参见:
setTargetCertConstraints(java.security.cert.CertSelector)

setTargetCertConstraints

public void setTargetCertConstraints(CertSelector selector)
设置目标证书所需的限制。以 CertSelector 实例的形式指定这些限制。如果为 null,则未定义限制。

注意,要复制所指定的 CertSelector 以防对其进行后续修改。

参数:
selector - 指定目标证书限制的 CertSelector(或者为 null
另请参见:
getTargetCertConstraints()

clone

public Object clone()
对此 PKIXParameters 对象进行复制。对副本的更改不会影响原件,反之亦然。

指定者:
接口 CertPathParameters 中的 clone
覆盖:
Object 中的 clone
返回:
PKIXParameters 对象的副本
另请参见:
Cloneable

toString

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

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