java.lang.Object java.security.cert.PKIXParameters
public class PKIXParameters
用作 PKIX CertPathValidator
算法的输入的参数。
PKIX CertPathValidator
使用这些参数、根据 PKIX 证书路径验证算法来验证 CertPath
。
要实例化 PKIXParameters
对象,应用程序必须指定一个或多个由 PKIX 证书路径验证算法所定义的最受信任的 CA。可以使用两个构造方法中的一个来指定最受信任的 CA。应用程序可以调用 PKIXParameters(Set)
来指定一个 TrustAnchor
对象 Set
,其中每个对象都标识一个最受信任的 CA。另外,应用程序也可调用 PKIXParameters(KeyStore)
来指定一个 KeyStore
实例,其中包含多个受信任的证书项,每个项都认为是一个最受信任的 CA。
一旦创建了 PKIXParameters
对象,就可以指定其他参数(例如通过调用 setInitialPolicies
或 setDate
),然后沿着要被 CertPathValidator.validate
所验证的 CertPath
传递 PKIXParameters
。
所有未设置(或被设置为 null
)的参数将被设置为该参数的默认值。date
参数的默认值是 null
,指示验证该路径时的当前时间。其余参数的默认值是约束最少的。
并发访问
除非另行指定,否则此类中所定义的方法不是线程安全的。需要并发访问单个对象的多个线程应该在它们之间实现同步并提供所需的锁定。对于每个线程都操作一个不同对象的多个线程而言,无需实现同步。
CertPathValidator
构造方法摘要 | |
---|---|
PKIXParameters(KeyStore keystore) 创建一个 PKIXParameters 实例,它根据指定 KeyStore 中所包含的受信证书项生成最受信任的 CA 集。 |
|
PKIXParameters(Set<TrustAnchor> trustAnchors) 创建具有指定最受信任 CA Set 的 PKIXParameters 的实例。 |
方法摘要 | |
---|---|
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 |
构造方法详细信息 |
---|
public PKIXParameters(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
Set
的
PKIXParameters
的实例。该 set 中的每个元素都是一个
TrustAnchor
。
注意,要复制该 Set
以防对其进行后续修改。
trustAnchors
-
TrustAnchor
的
Set
InvalidAlgorithmParameterException
- 如果指定的
Set
为空
(trustAnchors.isEmpty() == true)
NullPointerException
- 如果指定的
Set
为
null
ClassCastException
- 如果该
Set
中任一元素不是
java.security.cert.TrustAnchor
类型的
public PKIXParameters(KeyStore keystore) throws KeyStoreException, InvalidAlgorithmParameterException
PKIXParameters
实例,它根据指定
KeyStore
中所包含的受信证书项生成最受信任的 CA 集。只考虑那些包含受信
X509Certificates
的 keystore 项;忽略所有其他证书类型。
keystore
- 一个
KeyStore
,将根据它来生成最受信任的 CA 集
KeyStoreException
- 如果尚未初始化 keystore
InvalidAlgorithmParameterException
- 如果 keystore 不包含一个受信证书项
NullPointerException
- 如果 keystore 为
null
方法详细信息 |
---|
public Set<TrustAnchor> getTrustAnchors()
Set
。
TrustAnchor
Set
(从不为
null
)
setTrustAnchors(java.util.Set
)
public void setTrustAnchors(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
Set
。
注意,要复制该 Set
以防对其进行后续修改。
trustAnchors
-
TrustAnchor
的
Set
InvalidAlgorithmParameterException
- 如果指定的
Set
为空
(trustAnchors.isEmpty() == true)
NullPointerException
- 如果指定的
Set
为
null
ClassCastException
- 如果该 Set 中的任一元素不是
java.security.cert.TrustAnchor
类型的
getTrustAnchors()
public Set<String> getInitialPolicies()
Set
,指示出于证书路径处理的目的,所有这些策略都可被证书用户接受。默认返回值是一个空
Set
,它可以解释为任意策略均是可接受的。
String
的形式)的不可变
Set
,或者是空
Set
(暗示所有策略均是可接受的)。从不返回
null
。
setInitialPolicies(java.util.Set
)
public void setInitialPolicies(Set<String> initialPolicies)
Set
,指示出于证书路径处理的目的,所有这些策略都可被证书用户接受。默认情况下,任意策略(也就是所有策略)都是可接受的,所以想要任意策略都为可接受的用户不必调用此方法,或者可以用空的
Set
(或者
null
)调用此方法。
注意,要复制该 Set
以防对其进行后续修改。
initialPolicies
- 初始策略 OID(以
String
格式)的
Set
(或者为
null
)
ClassCastException
- 如果该 set 中的任一元素不是
String
类型的
getInitialPolicies()
public void setCertStores(List<CertStore> stores)
CertStore
列表。可以为
null
,在这种情况下将不使用
CertStore
。列表中前面出现的
CertStore
可能优先于后面出现的 CertStore 使用。
注意,要复制该 List
以防对其进行后续修改。
stores
-
CertStore
的
List
(或者为
null
)
ClassCastException
- 如果该 list 中的任一元素不是
java.security.cert.CertStore
类型的
getCertStores()
public void addCertStore(CertStore store)
CertStore
添加到查找证书和 CRL 所使用的
CertStore
列表末尾。
store
- 要添加的
CertStore
。如果为
null
,则忽略该 CertStore(不添加到列表中)。
public List<CertStore> getCertStores()
CertStore
List
。
CertStore
List
(可能为空,但从不为
null
)
setCertStores(java.util.List
)
public void setRevocationEnabled(boolean val)
创建 PKIXParameters
对象时,此标志被设置为 true。此设置反映了检查撤消最常见的策略,因为每个服务提供者必须支持撤消检查是遵守 PKIX 的。当复杂的应用程序没有实际使用 PKIX 服务提供者的默认撤消检查机制时,或者使用一个替代的撤消检查机制来替换(仍通过调用 addCertPathChecker
或 setCertPathCheckers
方法)时,应该将此标志设置为 false。
val
- RevocationEnabled 标志的新值
public boolean isRevocationEnabled()
setRevocationEnabled
方法。
public void setExplicitPolicyRequired(boolean val)
val
- 如果需要显式策略,则为
true
;否则为
false
public boolean isExplicitPolicyRequired()
true
;否则返回
false
public void setPolicyMappingInhibited(boolean val)
val
- 如果禁止策略映射,则为
true
;否则为
false
public boolean isPolicyMappingInhibited()
public void setAnyPolicyInhibited(boolean val)
isAnyPolicyInhibited()
返回
false
)。
val
- 如果要禁止任何策略 OID,则为
true
;否则为
false
public boolean isAnyPolicyInhibited()
true
;否则返回
false
public void setPolicyQualifiersRejected(boolean qualifiersRejected)
创建 PKIXParameters
对象后,此标志设置为 true。此设置反映了处理策略限定符最常见(也是最简单的)的策略。希望使用更复杂策略的应用程序必须将此标志设置为 false。
注意,PKIX 证书路径验证算法规定,对标记为关键的证书策略扩展中的策略限定符必须加以处理和验证。否则必须放弃该证书路径。如果 policyQualifiersRejected 标志设置为 false,那么为了遵守 PKIX ,由应用程序以此方式来验证所有的策略限定符。
qualifiersRejected
- PolicyQualifiersRejected 标志的新值
getPolicyQualifiersRejected()
,
PolicyQualifierInfo
public boolean getPolicyQualifiersRejected()
创建 PKIXParameters
对象后,此标志设置为 true。此设置反映了处理策略限定符最常见(也是最简单的)的策略。希望使用更复杂策略的应用程序必须将此标志设置为 false。
setPolicyQualifiersRejected(boolean)
public Date getDate()
null
,则使用当前时间。
注意,要复制返回的 Date
以防对其进行后续修改。
Date
,如果未设置,则返回
null
setDate(java.util.Date)
public void setDate(Date date)
null
,则使用当前时间。
注意,要复制此处提供的 Date
以防对其进行后续修改。
date
-
Date
,如果使用当前时间,则为
null
getDate()
public void setCertPathCheckers(List<PKIXCertPathChecker> checkers)
List
。如果指定的
List
包含不是
PKIXCertPathChecker
的对象,则忽略它。
每个指定的 PKIXCertPathChecker
都对证书进行额外的检查。通常,这些检查是对证书中所包含的私有扩展进行处理和验证。应该使用执行该检查所需的所有初始化参数对每个 PKIXCertPathChecker
进行实例化。
此方法允许复杂的应用程序扩展 PKIX CertPathValidator
或 CertPathBuilder
。依次由 PKIX CertPathValidator
或 CertPathBuilder
为每个要处理或验证的证书调用每个指定的 PKIXCertPathChecker
。
不管是否设置了这些额外的 PKIXCertPathChecker
,PKIX CertPathValidator
或 CertPathBuilder
都必须对每个证书执行所有所需的 PKIX 检查。此规则的一个例外是,RevocationEnabled 标志设置为 false 的情况(请参见 setRevocationEnabled
方法)。
注意,将复制此处提供的 List
,并且复制该 List 中的所有 PKIXCertPathChecker
以防对其进行后续修改。
checkers
-
PKIXCertPathChecker
的
List
。可以为
null
,在这种情况下将不使用其他的检查器。
ClassCastException
- 如果该 List 中的任一元素不是
java.security.cert.PKIXCertPathChecker
类型的
getCertPathCheckers()
public List<PKIXCertPathChecker> getCertPathCheckers()
List
。返回的
List
是不可变的,并且复制该
List
中的所有
PKIXCertPathChecker
以防对其进行后续修改。
PKIXCertPathChecker
List
(可能为空,但从不为
null
)
setCertPathCheckers(java.util.List
)
public void addCertPathChecker(PKIXCertPathChecker checker)
PKIXCertPathChecker
。有关详细信息,请参见
setCertPathCheckers
方法。
注意,要复制该 PKIXCertPathChecker
以防对其进行后续修改。
checker
- 要添加到检查列表中的
PKIXCertPathChecker
。如果为
null
,则忽略该检查器(不添加到列表中)。
public String getSigProvider()
null
。
null
)
setSigProvider(java.lang.String)
public void setSigProvider(String sigProvider)
Signature
对象时将首选该指定的提供者。如果为
null
或未设置,则将使用所找到的、支持该算法的第一个提供者。
sigProvider
- 签名提供者的名称(或者为
null
)
getSigProvider()
public CertSelector getTargetCertConstraints()
CertSelector
实例的形式返回这些限制。如果为
null
,则未定义限制。
注意,要复制返回的 CertSelector
以防对其进行后续修改。
CertSelector
(或者返回
null
)
setTargetCertConstraints(java.security.cert.CertSelector)
public void setTargetCertConstraints(CertSelector selector)
CertSelector
实例的形式指定这些限制。如果为
null
,则未定义限制。
注意,要复制所指定的 CertSelector
以防对其进行后续修改。
selector
- 指定目标证书限制的
CertSelector
(或者为
null
)
getTargetCertConstraints()
public Object clone()
PKIXParameters
对象进行复制。对副本的更改不会影响原件,反之亦然。
CertPathParameters
中的
clone
Object
中的
clone
PKIXParameters
对象的副本
Cloneable
public String toString()