public class X509CRLSelector extends Object implements CRLSelector
CRLSelector
,其选择X509CRLs
匹配所有指定标准。
当从CertStore
中选择CRL以检查特定证书的撤销状态时,此类特别有用。
首次构建时, X509CRLSelector
没有启用条件,并且get
方法中的每一个返回默认值( null
)。 因此, match
方法将返回true
任何X509CRL
。 通常,启用了几个条件(例如通过调用setIssuers
或setDateAndTime
),然后将X509CRLSelector
传递给CertStore.getCRLs
或一些类似的方法。
请参考RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile为下面提到的X.509 CRL领域和扩展的定义。
并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
CRLSelector
, X509CRL
Constructor and Description |
---|
X509CRLSelector()
创建一个
X509CRLSelector 。
|
Modifier and Type | Method and Description |
---|---|
void |
addIssuer(X500Principal issuer)
向issuerNames条件添加一个名称。
|
void |
addIssuerName(byte[] name)
向issuerNames条件添加一个名称。
|
void |
addIssuerName(String name)
诋毁 ,使用
addIssuer(X500Principal)或
addIssuerName(byte[])代替。
|
Object |
clone()
返回此对象的副本。
|
X509Certificate |
getCertificateChecking()
返回正在检查的证书。
|
Date |
getDateAndTime()
返回dateAndTime条件。
|
Collection<Object> |
getIssuerNames()
返回issuerNames条件的副本。
|
Collection<X500Principal> |
getIssuers()
返回issuerNames条件。
|
BigInteger |
getMaxCRL()
返回maxCRLNumber标准。
|
BigInteger |
getMinCRL()
返回minCRLNumber标准。
|
boolean |
match(CRL crl)
决定是否选择
CRL 。
|
void |
setCertificateChecking(X509Certificate cert)
设置正在检查的证书。
|
void |
setDateAndTime(Date dateAndTime)
设置dateAndTime标准。
|
void |
setIssuerNames(Collection<?> names)
注意:使用
setIssuers(Collection)或使用此方法时,仅指定可分辨名称的字节数组形式。
|
void |
setIssuers(Collection<X500Principal> issuers)
设置issuerNames条件。
|
void |
setMaxCRLNumber(BigInteger maxCRL)
设置maxCRLNumber标准。
|
void |
setMinCRLNumber(BigInteger minCRL)
设置minCRLNumber标准。
|
String |
toString()
返回X509CRLSelector的可
X509CRLSelector 。
|
public void setIssuers(Collection<X500Principal> issuers)
X509CRL
必须在指定的专有名称中的至少一个相匹配。
如果null
,任何发行人的可分辨名称都可以。
该方法允许调用者使用单个方法调用指定X509CRLs
可能包含的完整的发行者名称X509CRLs
。 指定的值替换issuerNames条件的上一个值。
names
参数(如果不是null
)是Collection
的X500Principal
s。
需要注意的是names
参数可以包含重复的专有名称,但他们可以从被删除Collection
通过返回的名字getIssuers
方法。
请注意,在Collection上执行Collection
以防止后续修改。
issuers
- 一个
Collection
的X500Principals(或
null
)
getIssuers()
public void setIssuerNames(Collection<?> names) throws IOException
addIssuerName(String)
以获取更多信息。
设置issuerNames条件。 在发行人分辨名称X509CRL
必须在指定的专有名称中的至少一个相匹配。 如果null
,任何发行人的可分辨名称都可以。
该方法允许调用者使用单个方法调用指定X509CRLs
可能包含的完整的发行者名称X509CRLs
。 指定的值替换issuerNames条件的上一个值。
names
参数(如果不是null
)是一个Collection
的名称。 每个名称是一个String
或一个表示可分辨名称的字节数组(分别为RFC 2253或ASN.1 DER编码形式)。 如果提供null
作为此参数的值,则不执行issuerNames检查。
需要注意的是names
参数可以包含重复的专有名称,但他们可以从被删除Collection
通过返回的名字getIssuerNames
方法。
如果一个名称被指定为一个字节数组,它应包含一个DER编码的唯一名称,如X.501所定义。 该结构的ASN.1符号如下。
Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET SIZE (1 .. MAX) OF AttributeTypeAndValue AttributeTypeAndValue ::= SEQUENCE { type AttributeType, value AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY DEFINED BY AttributeType .... DirectoryString ::= CHOICE { teletexString TeletexString (SIZE (1..MAX)), printableString PrintableString (SIZE (1..MAX)), universalString UniversalString (SIZE (1..MAX)), utf8String UTF8String (SIZE (1.. MAX)), bmpString BMPString (SIZE (1..MAX)) }
需要注意的是深拷贝上进行Collection
,以防止后续修改。
names
- a
Collection
的名称(或
null
)
IOException
- 如果发生解析错误
getIssuerNames()
public void addIssuer(X500Principal issuer)
X509CRL
必须在指定的专有名称中的至少一个相匹配。
此方法允许调用者向X509CRLs
可能包含的发行者名称集合添加一个名称。 指定的名称将添加到issuerNames条件的任何先前值。 如果指定的名称是重复的,则可能会被忽略。
issuer
- 发行人为X500Principal
public void addIssuerName(String name) throws IOException
向issuerNames条件添加一个名称。 在发行人分辨名称X509CRL
必须在指定的专有名称中的至少一个相匹配。
该方法允许调用者向X509CRLs
可能包含的发行者名称集合添加一个名称。 指定的名称将添加到issuerNames条件的任何先前值。 如果指定的名称是重复的,则可能会被忽略。
name
- RFC 2253表格中的名称
IOException
- 如果发生解析错误
public void addIssuerName(byte[] name) throws IOException
X509CRL
必须在指定的专有名称中的至少一个相匹配。
此方法允许调用者向X509CRLs
可能包含的发行者名称集合添加一个名称。 指定的名称将添加到issuerNames条件的任何先前值。 如果指定的名称是重复的,则可能会被忽略。 如果一个名称被指定为一个字节数组,它应包含一个DER编码的唯一名称,如X.501所定义。 该结构的ASN.1符号如下。
该名称作为字节数组提供。 该字节数组应包含单个DER编码的可分辨名称,如X.501中所定义。 该结构的ASN.1符号出现在setIssuerNames(Collection names)
的文档中 。
请注意,此处提供的字节数组被克隆以防止后续修改。
name
- 包含ASN.1 DER编码形式的名称的字节数组
IOException
- 如果发生解析错误
public void setMinCRLNumber(BigInteger minCRL)
X509CRL
必须具有值大于或等于指定值的CRL号码扩展名。
如果null
,则不会进行minCRLNumber检查。
minCRL
- 接受的最低CRL号码(或
null
)
public void setMaxCRLNumber(BigInteger maxCRL)
X509CRL
必须具有值小于或等于指定值的CRL号码扩展名。
如果null
,则不会执行maxCRLNumber检查。
maxCRL
- 接受的最大CRL号码(或
null
)
public void setDateAndTime(Date dateAndTime)
X509CRL
的值,并且早于nextUpdate组件的值。
如果X509CRL
不包含nextUpdate组件,则不匹配。
如果null
,没有dateAndTime检查将完成。
请注意, Date
提供的Date
被克隆以防止后续修改。
dateAndTime
- 与
Date
(或
null
)
getDateAndTime()
public void setCertificateChecking(X509Certificate cert)
CertStore
查找与检查指定证书的撤销相关的CRL。
如果null
null,则不提供这样的可选信息。
cert
- 被检查的
X509Certificate
(或
null
)
getCertificateChecking()
public Collection<X500Principal> getIssuers()
X509CRL
必须在指定的专有名称中的至少一个相匹配。
如果返回的值为null
,任何发行人的可分辨名称都可以。
如果返回的值不是null
,那么它是Collection
的一个不可Collection
的X500Principal
。
Collection
的名称(或
null
)
setIssuers(java.util.Collection<javax.security.auth.x500.X500Principal>)
public Collection<Object> getIssuerNames()
X509CRL
必须在指定的专有名称中的至少一个相匹配。
如果返回的值为null
,则任何发行人的可分辨名称都可以。
如果返回的值不是null
,那么它是一个Collection
的名称。 每个名称是一个String
或一个表示可分辨名称的字节数组(分别为RFC 2253或ASN.1 DER编码形式)。 请注意,返回的Collection
可能包含重复的名称。
如果一个名称被指定为一个字节数组,它应包含一个DER编码的唯一名称,如X.501所定义。 此结构的ASN.1表示文档中给出了setIssuerNames(Collection names)
。
需要注意的是深拷贝上进行Collection
,以防止后续修改。
Collection
的名字(或
null
)
setIssuerNames(java.util.Collection<?>)
public BigInteger getMinCRL()
X509CRL
必须具有值大于或等于指定值的CRL号码扩展名。
如果null
,则不会进行minCRLNumber检查。
null
)
public BigInteger getMaxCRL()
X509CRL
必须具有值小于或等于指定值的CRL号码扩展名。
如果null
,则不会执行maxCRLNumber检查。
null
)
public Date getDateAndTime()
X509CRL
的值,并且早于nextUpdate组件的值。
如果X509CRL
不包含nextUpdate组件,则不匹配。
如果null
,没有dateAndTime检查将完成。
请注意,返回的Date
被克隆以防止后续修改。
Date
来对抗(或
null
)
setDateAndTime(java.util.Date)
public X509Certificate getCertificateChecking()
CertStore
查找与检查指定证书的撤销相关的CRL。
如果返回值为null
,则不提供此类可选信息。
null
)
setCertificateChecking(java.security.cert.X509Certificate)
public String toString()
X509CRLSelector
。
public boolean match(CRL crl)
CRL
。
match
在界面
CRLSelector
crl
- 要检查的
CRL
true
如果
CRL
应该被选择,
false
false