- java.lang.Object
-
- java.security.cert.PKIXParameters
-
- 实现的所有接口
-
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
-
-
构造方法摘要
构造方法 构造器 描述 PKIXParameters(KeyStore keystore)
创建PKIXParameters
的实例,该实例从指定的KeyStore
包含的受信任证书条目填充最受信任的CAKeyStore
。PKIXParameters(Set<TrustAnchor> trustAnchors)
创建的实例PKIXParameters
具有指定Set
最受信任的CA的。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addCertPathChecker(PKIXCertPathChecker checker)
将PKIXCertPathChecker
添加到认证路径检查器列表中。void
addCertStore(CertStore store)
将CertStore
添加到用于查找证书和CRL的CertStore
列表的CertStore
。Object
clone()
制作此PKIXParameters
对象的副本。List<PKIXCertPathChecker>
getCertPathCheckers()
返回认证路径检查器的List
。List<CertStore>
getCertStores()
返回一个不可变List
的CertStore
被用于查找证书和CRL秒。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()
返回描述参数的格式化字符串。
-
-
-
构造方法详细信息
-
PKIXParameters
public PKIXParameters(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
- 参数
-
trustAnchors
-Set
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()
返回最受信任的CA的不可变Set
。- 结果
-
一个不可变的
Set
ofTrustAnchor
s(从不null
) - 另请参见:
-
setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>)
-
setTrustAnchors
public void setTrustAnchors(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
设置最受信任的CA的Set
。请注意,复制
Set
是为了防止后续修改。- 参数
-
trustAnchors
-Set
ofTrustAnchor
s - 异常
-
InvalidAlgorithmParameterException
- 如果指定的Set
为空(trustAnchors.isEmpty() == true)
-
NullPointerException
- 如果指定的Set
是null
-
ClassCastException
- 如果集合中的任何元素不是java.security.cert.TrustAnchor
类型 - 另请参见:
-
getTrustAnchors()
-
getInitialPolicies
public Set<String> getInitialPolicies()
返回初始策略标识符(OID字符串)的不可变Set
,指示证书用户可以接受这些策略中的任何一个以进行证书路径处理。 默认返回值为空Set
,这被解释为意味着任何策略都是可接受的。- 结果
-
不可变的
Set
初始策略OID,格式为String
,或者为空Set
(暗示任何策略均可接受)。 永不退货null
。 - 另请参见:
-
setInitialPolicies(java.util.Set<java.lang.String>)
-
setInitialPolicies
public void setInitialPolicies(Set<String> initialPolicies)
设置初始策略标识符(OID字符串)的Set
,指示证书用户可以接受这些策略中的任何一个以进行证书路径处理。 默认情况下,任何策略都是可接受的(即所有策略),因此想要允许任何策略为可接受的用户不需要调用此方法,或者可以使用空Set
(或null
)调用它。请注意,将复制
Set
以防止后续修改。- 参数
-
initialPolicies
-一个Set
初始策略OID在String
格式(或null
) - 异常
-
ClassCastException
- 如果集合中的任何元素不是String
类型 - 另请参见:
-
getInitialPolicies()
-
setCertStores
public void setCertStores(List<CertStore> stores)
设置用于查找证书和CRL的CertStore
的列表。 可能是null
,在这种情况下,将不使用CertStore
。 列表中的第一个CertStore
可能优于稍后出现的那些。请注意,复制
List
是为了防止后续修改。- 参数
-
stores
-List
的CertStore
s(或null
) - 异常
-
ClassCastException
- 如果列表中的任何元素不是java.security.cert.CertStore
类型 - 另请参见:
-
getCertStores()
-
addCertStore
public void addCertStore(CertStore store)
将CertStore
添加到用于查找证书和CRL的CertStore
列表的CertStore
。- 参数
-
store
- 要添加的CertStore
。 如果是null
,则忽略商店(不添加到列表中)。
-
getCertStores
public List<CertStore> getCertStores()
返回用于查找证书和CRL的CertStore
的不可变List
。- 结果
-
一个不可变的
List
ofCertStore
s(可能是空的,但从不null
) - 另请参见:
-
setCertStores(java.util.List<java.security.cert.CertStore>)
-
setRevocationEnabled
public void setRevocationEnabled(boolean val)
设置RevocationEnabled标志。 如果此标志为true,则将使用基础PKIX服务提供程序的默认吊销检查机制。 如果此标志为false,则将禁用(未使用)默认吊销检查机制。创建
PKIXParameters
对象时,此标志设置为true。 此设置反映了检查吊销的最常见策略,因为每个服务提供商必须支持吊销检查以符合PKIX。 当使用PKIX服务提供程序的默认撤销检查机制或替换其他撤销检查机制(通过调用addCertPathChecker
或setCertPathCheckers
方法)时,复杂的应用程序应将此标志设置为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
-true
如果要禁止任何策略OID,否则为false
-
isAnyPolicyInhibited
public boolean isAnyPolicyInhibited()
检查是否应该处理任何策略OID(如果它包含在证书中)。- 结果
-
true
如果禁止任何策略OID,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
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
-List
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
以防止后续修改。- 结果
-
a
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
对象的副本。 对副本的更改不会影响原件,反之亦然。- Specified by:
-
clone
在界面CertPathParameters
- 重写:
-
clone
在课程Object
- 结果
-
此
PKIXParameters
对象的副本 - 另请参见:
-
Cloneable
-
-