- 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 方法 描述 voidaddCertPathChecker(PKIXCertPathChecker checker)在认证路径检查列表中添加一个PKIXCertPathChecker。voidaddCertStore(CertStore store)在查找证书和CRL中使用的CertStore列表末尾添加一个CertStore。Objectclone()复制这个PKIXParameters对象。List<PKIXCertPathChecker>getCertPathCheckers()返回认证路径检查器的List。List<CertStore>getCertStores()返回用于查找证书和CRL的不可变List的CertStore。DategetDate()返回确定认证路径有效性的时间。Set<String>getInitialPolicies()返回一个不可变的初始策略标识符(OID字符串)的Set,表明这些策略中的任何一个对证书用户来说都是可接受的,用于认证路径处理。booleangetPolicyQualifiersRejected()获取PolicyQualifiersRejected标志。StringgetSigProvider()返回签名提供者的名称,如果未设置,则返回null。CertSelectorgetTargetCertConstraints()返回目标证书所需的约束。Set<TrustAnchor>getTrustAnchors()返回一个不可变的Set最受信任的CA。booleanisAnyPolicyInhibited()检查是否应将任何策略OID包含在证书中进行处理。booleanisExplicitPolicyRequired()检查是否需要明确的策略。booleanisPolicyMappingInhibited()检查策略映射是否被禁止。booleanisRevocationEnabled()检查RevocationEnabled标志。voidsetAnyPolicyInhibited(boolean val)设置状态以确定是否应将任何策略OID包含在证书中进行处理。voidsetCertPathCheckers(List<PKIXCertPathChecker> checkers)设置一个额外的认证路径检查器List。voidsetCertStores(List<CertStore> stores)设置用于查找证书和CRL的CertStore的列表。voidsetDate(Date date)设置认证路径的有效性应该被确定的时间。voidsetExplicitPolicyRequired(boolean val)设置ExplicitPolicyRequired标志。voidsetInitialPolicies(Set<String> initialPolicies)设置初始策略标识符(OID字符串)的Set,指示证书用户为了认证路径处理的目的而可以接受这些策略中的任何一个。voidsetPolicyMappingInhibited(boolean val)设置PolicyMappingInhibited标志。voidsetPolicyQualifiersRejected(boolean qualifiersRejected)设置PolicyQualifiersRejected标志。voidsetRevocationEnabled(boolean val)设置RevocationEnabled标志。voidsetSigProvider(String sigProvider)设置签名提供者的名称。voidsetTargetCertConstraints(CertSelector selector)设置目标证书所需的约束。voidsetTrustAnchors(Set<TrustAnchor> trustAnchors)设置Set最受信任的CA。StringtoString()返回描述参数的格式化字符串。
-
-
-
构造方法详细信息
-
PKIXParameters
public PKIXParameters(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
- 参数
-
trustAnchors- aSetofTrustAnchors - 异常
-
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的TrustAnchors(从不null) - 另请参见:
-
setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>)
-
setTrustAnchors
public void setTrustAnchors(Set<TrustAnchor> trustAnchors) throws InvalidAlgorithmParameterException
设置Set最受信任的CA。请注意,
Set被复制以防止后续修改。- 参数
-
trustAnchors- aSetofTrustAnchors - 异常
-
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- aListofCertStores(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的CertStores(可能是空的,但从不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- aListofPKIXCertPathCheckers。 可能是null,在这种情况下不会使用额外的检查。 - 异常
-
ClassCastException- 如果列表中的任何元素不是类型java.security.cert.PKIXCertPathChecker - 另请参见:
-
getCertPathCheckers()
-
getCertPathCheckers
public List<PKIXCertPathChecker> getCertPathCheckers()
返回认证路径检查程序的List。 返回List是不可改变的,而且每个PKIXCertPathChecker在List被克隆,以防止后续修改。- 结果
-
一个不可变的
List的PKIXCertPathCheckers(可能是空的,但不是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
-
-