java.lang.Object java.security.cert.X509CRLSelector
public class X509CRLSelector
选择与所有指定标准相匹配的 X509CRL
的 CRLSelector
。从 CertStore
中选择 CRL 以检查特定证书的撤消状态时,此类特别有用。
最初构造 X509CRLSelector
时,它没有启用任何标准,并且每个 get
方法都返回一个默认值 (null
)。因此,对于任意 X509CRL
而言,match
方法将返回 true
。通常,启用多种标准(例如通过调用 setIssuers
或 setDateAndTime
),然后将 X509CRLSelector
传递到 CertStore.getCRLs
或某个类似方法。
有关 X.509 CRL 各字段和下面所述各扩展的定义,请参阅 RFC 2459。
并发访问
除非另行指定,否则此类中所定义的方法不是线程安全的。需要并发访问单个对象的多个线程应该在它们之间实现同步并提供所需的锁定。对于每个线程都操作一个不同对象的多个线程而言,无需实现同步。
CRLSelector
,
X509CRL
构造方法摘要 | |
---|---|
X509CRLSelector() 创建一个 X509CRLSelector 。 |
方法摘要 | |
---|---|
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) 方法,或者使用此方法时仅指定 byte 数组形式的标识名。 |
void |
setIssuers(Collection<X500Principal> issuers) 设置 issuerNames 标准。 |
void |
setMaxCRLNumber(BigInteger maxCRL) 设置 maxCRLNumber 标准。 |
void |
setMinCRLNumber(BigInteger minCRL) 设置 minCRLNumber 标准。 |
String |
toString() 返回该 X509CRLSelector 的可打印表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public X509CRLSelector()
X509CRLSelector
。最初未设置任何标准,所以任何
X509CRL
都匹配。
方法详细信息 |
---|
public void setIssuers(Collection<X500Principal> issuers)
X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。如果指定的标识名为
null
,则将匹配任意发布方标识名。
此方法允许调用方(使用单个方法调用)指定 X509CRL
可能包含的全部发布方名称集。指定的值会替换 issuerNames 标准以前的值。
names
参数(如果不为 null
)是一个 X500Principal
的 Collection
。
注意,names
参数可以包含重复的标识名,但是可能从 getIssuers
方法返回的名称 Collection
中将其移除。
注意,要对该 Collection
执行复制以防后续修改。
issuers
- X500Principals 的
Collection
(或者为
null
)
getIssuers()
public void setIssuerNames(Collection<?> names) throws IOException
addIssuerName(String)
。
设置 issuerNames 标准。X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。如果指定的标识名为 null
,则将匹配任意发布方标识名。
此方法允许调用方(使用单个方法调用)指定 X509CRL
可能包含的全部发布方名称集。指定的值会替换 issuerNames 标准以前的值。
names
参数(如果不为 null
)是一个名称的 Collection
。每个名称都是一个 String
或 byte 数组(分别为 RFC 2253 或 ASN.1 DER 编码形式),表示一个标识名。如果为此参数提供 null
值,则不执行 issuerNames 检查。
注意,names
参数可以包含重复的标识名,但是可能从 getIssuerNames
方法返回的名称 Collection
中将其移除。
如果以 byte 数组的形式指定名称,那么它应该包含单个 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
- 一个名称
Collection
(或者为
null
)
IOException
- 如果发生解析错误
getIssuerNames()
public void addIssuer(X500Principal issuer)
X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。
此方法允许调用方向 X509CRL
可能包含的发布方名称集中添加一个名称。将指定的名称添加到 issuerNames 标准的以前值中。如果指定的名称是重复的,则忽略它。
issuer
- X500Principal 形式的发布方
public void addIssuerName(String name) throws IOException
向 issuerNames 标准中添加名称。X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。
此方法允许调用方向 X509CRL
可能包含的发布方名称集中添加一个名称。将指定的名称添加到 issuerNames 标准的以前值中。如果指定的名称是重复的,则忽略它。
name
- RFC 2253 形式的名称
IOException
- 如果发生解析错误
public void addIssuerName(byte[] name) throws IOException
X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。
此方法允许调用方向 X509CRL
可能包含的发布方名称集中添加一个名称。将指定的名称添加到 issuerNames 标准的以前值中。如果指定的名称是重复的,则忽略它。如果以 byte 数组的形式指定名称,那么它应该包含单个 DER 编码形式的标识名,正如 X.501 中定义的一样。此结构的 ASN.1 表示如下:
以 byte 数组的形式提供该名称。此 byte 数组应该包含单个 DER 编码形式的标识名,正如 X.501 中定义的一样。setIssuerNames(Collection names)
的文档中提供了此结构的 ASN.1 表示。
注意,要复制此处提供的 byte 数组以防后续修改。
name
- 包含 ASN.1 DER 编码形式名称的 byte 数组
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
的 thisUpdate 组件的日期,且早于 nextUpdate 组件的值日期。如果
X509CRL
不包含 nextUpdate 组件,则没有匹配。如果其值为
null
,则不执行 dateAndTime 检查。
注意,要复制此处提供的 Date
以防后续修改。
dateAndTime
- 要进行匹配的
Date
(或者为
null
)
getDateAndTime()
public void setCertificateChecking(X509Certificate cert)
CertStore
找到相关的 CRL。如果指定为
null
,则不提供此种可选的信息。
cert
- 要检查的
X509Certificate
(或者为
null
)
getCertificateChecking()
public Collection<X500Principal> getIssuers()
X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。如果返回值为
null
,则任意发布方标识名都匹配。
如果返回值不为 null
,则是一个 X500Principal
的不可修改的 Collection
。
Collection
(或者为
null
)
setIssuers(java.util.Collection
)
public Collection<Object> getIssuerNames()
X509CRL
中的发布方标识名必须至少与某个指定的标识名相匹配。如果返回值为
null
,则任意发布方标识名都匹配。
如果返回值不为 null
,则是一个名称 Collection
。每个名称都是一个 String
或 byte 数组(分别为 RFC 2253 或 ASN.1 DER 编码形式),表示一个标识名。注意,返回的 Collection
可能包含重复的名称。
如果以 byte 数组的形式指定名称,那么它应该包含单个 DER 编码形式的标识名,正如 X.501 中定义的一样。setIssuerNames(Collection names)
的文档中给出了此结构的 ASN.1 表示。
注意,要对该 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
的 thisUpdate 组件的日期,且早于 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()
public boolean match(CRL crl)
CRL
。
CRLSelector
中的
match
crl
- 要检查的
CRL
CRL
,则返回
true
;否则返回
false
public Object clone()
CRLSelector
中的
clone
Object
中的
clone
Cloneable