- java.lang.Object
-
- java.security.cert.PKIXParameters
-
- All Implemented Interfaces:
-
Cloneable
,CertPathParameters
- 已知直接子类:
-
PKIXBuilderParameters
public class PKIXParameters extends Object implements CertPathParameters
参数用作PKIXCertPathValidator
算法的输入。PKIX
CertPathValidator
使用这些参数根据PKIX认证路径验证算法来验证CertPath
。要实例化一个
PKIXParameters
对象,应用程序必须指定由PKIX认证路径验证算法定义的一个或多个最受信任的CA。 最可靠的CA可以使用两个构造函数之一进行指定。 应用程序可以调用PKIXParameters(Set)
,指定Set
的TrustAnchor
对象,每个对象的识别最信任的CA. 或者,应用程序可以调用PKIXParameters(KeyStore)
,指定包含可信证书条目的KeyStore
实例,每个实例将被视为最受信任的CA。一旦创建了一个
PKIXParameters
对象,可以指定其他参数(例如通过调用setInitialPolicies
或setDate
),然后PKIXParameters
与CertPath
一起传递,以验证为CertPathValidator.validate
。任何未设置的参数(或设置为
null
)将被设置为该参数的默认值。date
参数的默认值为null
,表示路径验证当前的时间。 剩余参数的默认值最小限制。并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
- 从以下版本开始:
- 1.4
- 另请参见:
-
CertPathValidator
-
-
构造方法摘要
构造方法 Constructor 描述 PKIXParameters(KeyStore keystore)
创建PKIXParameters
的实例,该实例从指定的KeyStore
包含的受信任的证书条目填充最受信任的CAKeyStore
。PKIXParameters(Set<TrustAnchor> trustAnchors)
使用指定的Set
最受信任的CA创建一个PKIXParameters
的实例。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addCertPathChecker(PKIXCertPathChecker checker)
在认证路径检查列表中添加一个PKIXCertPathChecker
。void
addCertStore(CertStore store)
在查找证书和CRL中使用的CertStore
列表末尾添加一个CertStore
。Object
clone()
复制这个PKIXParameters
对象。List<PKIXCertPathChecker>
getCertPathCheckers()
返回认证路径检查器的List
。List<CertStore>
getCertStores()
返回用于查找证书和CRL的不可变List
的CertStore
。Date
getDate()
返回确定认证路径有效性的时间。Set<String>
getInitialPolicies()
返回一个不可变的初始策略标识符(OID字符串)的Set
,表明这些策略中的任何一个对证书用户来说都是可接受的,用于认证路径处理。boolean
getPolicyQualifiersRejected()
获取PolicyQualifiersRejected标志。String
getSigProvider()
返回签名提供者的名称,如果未设置,则返回null
。CertSelector
getTargetCertConstraints()
返回目标证书所需的约束。Set<TrustAnchor>
getTrustAnchors()
返回一个不可变的Set
最受信任的CA。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)
设置Set
最受信任的CA。String
toString()
返回描述参数的格式化字符串。
-
-
-
构造方法详细信息
-
PKIXParameters
public PKIXParameters(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
- 参数
-
trustAnchors
- aSet
ofTrustAnchor
s - 异常
-
InvalidAlgorithmParameterException
- 如果指定的Set
为空(trustAnchors.isEmpty() == true)
-
NullPointerException
- 如果指定的Set
是null
-
ClassCastException
-如果任何在元素Set
类型不是java.security.cert.TrustAnchor
-
PKIXParameters
public PKIXParameters(KeyStore keystore) throws KeyStoreException, InvalidAlgorithmParameterException
创建一个PKIXParameters
的实例,它从指定的KeyStore
包含的受信任证书条目填充最受信任的CAKeyStore
。 仅考虑包含受信任的X509Certificates
密钥库条目; 所有其他证书类型将被忽略。- 参数
-
keystore
- 一个KeyStore
,从中可以填充最可靠的CA集 - 异常
-
KeyStoreException
- 如果密钥库尚未初始化 -
InvalidAlgorithmParameterException
- 如果密钥库不包含至少一个可信证书条目 -
NullPointerException
- 如果密钥库是null
-
-
方法详细信息
-
getTrustAnchors
public Set<TrustAnchor> getTrustAnchors()
返回一个不可变的Set
最受信任的CA。- 结果
-
一个不变的
Set
的TrustAnchor
s(从不null
) - 另请参见:
-
setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>)
-
setTrustAnchors
public void setTrustAnchors(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
设置Set
最受信任的CA。请注意,
Set
被复制以防止后续修改。- 参数
-
trustAnchors
- aSet
ofTrustAnchor
s - 异常
-
InvalidAlgorithmParameterException
- 如果指定的Set
为空(trustAnchors.isEmpty() == true)
-
NullPointerException
- 如果指定的Set
是null
-
ClassCastException
- 如果集合中的任何元素不是类型java.security.cert.TrustAnchor
- 另请参见:
-
getTrustAnchors()
-
getInitialPolicies
public Set<String> getInitialPolicies()
返回不可变的初始策略标识符(OID字符串)Set
,表明证书用户为了认证路径处理的目的可以接受这些策略中的任何一个。 默认返回值是一个空的Set
,这被解释为任何策略都是可以接受的。- 结果
-
String
格式的初始策略OID不可变的Set
,或空的Set
(意味着任何策略都可以接受)。 永远不会返回null
。 - 另请参见:
-
setInitialPolicies(java.util.Set<java.lang.String>)
-
setInitialPolicies
public void setInitialPolicies(Set<String> initialPolicies)
设置初始策略标识符(OID字符串)的Set
,指示证书用户为了认证路径处理的目的而可以接受这些策略中的任何一个。 默认情况下,任何策略都是可接受的(即所有策略),所以希望允许任何策略可以接受的用户不需要调用此方法,也可以使用空的Set
(或null
)进行调用。请注意,
Set
被复制以防止后续修改。- 参数
-
initialPolicies
-Set
的String
格式的初始策略OID(或null
) - 异常
-
ClassCastException
- 如果集合中的任何元素不是类型String
- 另请参见:
-
getInitialPolicies()
-
setCertStores
public void setCertStores(List<CertStore> stores)
设置用于查找证书和CRL的CertStore
的列表。 可能是null
,在这种情况下不会使用CertStore
。 列表中的第一个CertStore
可能优于稍后出现的那些。请注意,
List
被复制以防止后续修改。- 参数
-
stores
- aList
ofCertStore
s(ornull
) - 异常
-
ClassCastException
- 如果列表中的任何元素不是类型java.security.cert.CertStore
- 另请参见:
-
getCertStores()
-
addCertStore
public void addCertStore(CertStore store)
在查找证书和CRL中使用的CertStore
列表末尾添加一个CertStore
。- 参数
-
store
- 要添加的CertStore
。 如果null
,该商店被忽略(未添加到列表)。
-
getCertStores
public List<CertStore> getCertStores()
返回用于查找证书和CRL的不可变List
(CertStore
。- 结果
-
一个不可变的
List
的CertStore
s(可能是空的,但从不null
) - 另请参见:
-
setCertStores(java.util.List<java.security.cert.CertStore>)
-
setRevocationEnabled
public void setRevocationEnabled(boolean val)
设置RevocationEnabled标志。 如果此标志为真,将使用基础PKIX服务提供程序的默认撤销检查机制。 如果该标志为false,则默认的撤销检查机制将被禁用(未使用)。当创建一个
PKIXParameters
对象时,该标志设置为true。 此设置反映了检查撤销的最常见策略,因为每个服务提供商必须支持撤销检查以符合PKIX。 如果使用PKIX服务提供商的默认撤销检查机制或替代撤销检查机制(也称为addCertPathChecker
或setCertPathCheckers
方法)不实用时,复杂的应用程序应将此标志设置为false。- 参数
-
val
- RevocationEnabled标志的新值
-
isRevocationEnabled
public boolean isRevocationEnabled()
检查RevocationEnabled标志。 如果此标志为真,将使用基础PKIX服务提供程序的默认撤销检查机制。 如果该标志为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标志。 如果此标志为真,那么在证书策略扩展中包含策略限定符的证书将被拒绝。 如果该标志为假,则证书不会在此基础上被拒绝。当创建一个
PKIXParameters
对象时,该标志设置为true。 此设置反映了处理策略限定词的最常用(最简单)策略。 希望使用更复杂的策略的应用程序必须将此标志设置为false。请注意,PKIX认证路径验证算法指定必须处理和验证证书策略扩展中标记为关键的任何策略限定符。 否则认证路径必须被拒绝。 如果policyQualifiersRejected标志设置为false,则应用程序以此方式验证所有策略限定符,以便符合PKIX标准。
- 参数
-
qualifiersRejected
- PolicyQualifiersRejected标志的新值 - 另请参见:
-
getPolicyQualifiersRejected()
,PolicyQualifierInfo
-
getPolicyQualifiersRejected
public boolean getPolicyQualifiersRejected()
获取PolicyQualifiersRejected标志。 如果此标志为真,那么在证书策略扩展中包含策略限定符的证书将被拒绝。 如果该标志为假,则证书不会在此基础上被拒绝。当创建一个
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
-Date
或null
当前时间 - 另请参见:
-
getDate()
-
setCertPathCheckers
public void setCertPathCheckers(List<PKIXCertPathChecker> checkers)
设置一个额外的认证路径检查器List
。 如果指定List
包含一个对象,它是不是一个PKIXCertPathChecker
,它将被忽略。每个
PKIXCertPathChecker
指定的实现对证书的附加检查。 通常,这些是处理和验证证书中包含的私有扩展的检查。 应使用执行检查所需的任何初始化参数来实例化每个PKIXCertPathChecker
。该方法允许复杂的应用程序扩展PKIX
CertPathValidator
或CertPathBuilder
。 每个指定的PKIXCertPathChecker
的每个将被处理或验证的每个证书的PKIXCertPathValidator
或CertPathBuilder
。无论这些额外的
PKIXCertPathChecker
是否设置,PKIXCertPathValidator
或CertPathBuilder
必须对每个证书执行所有必需的PKIX检查。 此规则的一个例外是如果RevocationEnabled标志设置为false(参见setRevocationEnabled
方法)。请注意,
List
提供的List
被复制,并且克隆了列表中的每个PKIXCertPathChecker
以防止后续修改。- 参数
-
checkers
- aList
ofPKIXCertPathChecker
s。 可能是null
,在这种情况下不会使用额外的检查。 - 异常
-
ClassCastException
- 如果列表中的任何元素不是类型java.security.cert.PKIXCertPathChecker
- 另请参见:
-
getCertPathCheckers()
-
getCertPathCheckers
public List<PKIXCertPathChecker> getCertPathCheckers()
返回认证路径检查程序的List
。 返回List
是不可改变的,而且每个PKIXCertPathChecker
在List
被克隆,以防止后续修改。- 结果
-
一个不可变的
List
的PKIXCertPathChecker
s(可能是空的,但不是null
) - 另请参见:
-
setCertPathCheckers(java.util.List<java.security.cert.PKIXCertPathChecker>)
-
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)
- 参数
-
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
这个PKIXParameters
对象。 副本的更改不会影响原始文件,反之亦然。- Specified by:
-
clone
在接口CertPathParameters
- 重写:
-
clone
在Object
- 结果
-
这个
PKIXParameters
对象的副本 - 另请参见:
-
Cloneable
-
-