- 所有已实现的接口:
-
Cloneable
,CRLSelector
X509CRLs
的CRLSelector
。当从CertStore
中选择CRL以检查特定证书的吊销状态时,此类特别有用。
首次构造时,X509CRLSelector
没有启用任何条件,每个get
方法都返回默认值(null
)。因此,match
方法将对任何X509CRL
返回true
。通常,启用多个条件(例如通过调用setIssuers
或setDateAndTime
),然后将X509CRLSelector
传递给CertStore.getCRLs
或类似方法。
请参考RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile以获取下面提到的X.509 CRL字段和扩展的定义。
并发访问
除非另有说明,此类中定义的方法不是线程安全的。需要同时访问单个对象的多个线程应该在它们之间同步并提供必要的锁定。每个操作不同对象的多个线程不需要同步。
- 自:
- 1.4
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addIssuer
(X500Principal issuer) 向issuerNames条件添加一个名称。void
addIssuerName
(byte[] name) 向issuerNames条件添加一个名称。void
addIssuerName
(String name) 已弃用。clone()
返回此对象的副本。返回正在检查的证书。返回dateAndTime条件。返回issuerNames条件的副本。返回issuerNames条件。返回maxCRLNumber条件。返回minCRLNumber条件。boolean
决定是否选择CRL
。void
设置正在检查的证书。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条件。toString()
返回X509CRLSelector
的可打印表示。
-
Constructor Details
-
X509CRLSelector
public X509CRLSelector()创建一个X509CRLSelector
。最初,没有设置任何条件,因此任何X509CRL
都将匹配。
-
-
Method Details
-
setIssuers
设置issuerNames条件。在X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。如果为null
,则任何发行者可分辨名称都可以。此方法允许调用者通过单个方法调用指定
X509CRLs
可能包含的完整发行者名称集。指定的值替换issuerNames条件的先前值。names参数(如果不为
null
)是一个Collection
,其中包含X500Principal
。请注意,names参数可以包含重复的可分辨名称,但它们可能会从
getIssuers
方法返回的名称集合中删除。请注意,对
Collection
执行复制以防止后续修改。- 参数:
-
issuers
- 一个X500Principals的Collection
(或null
) - 自:
- 1.5
- 参见:
-
setIssuerNames
注意: 使用setIssuers(Collection)或仅在使用此方法时指定专有名称的字节数组形式。有关更多信息,请参见addIssuerName(String)
。设置issuerNames条件。在
X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。如果为null
,则任何发行者可分辨名称都可以。此方法允许调用者通过单个方法调用指定
X509CRLs
可能包含的完整发行者名称集。指定的值替换issuerNames条件的先前值。names参数(如果不为
null
)是一个包含名称的Collection
。每个名称是一个String
或表示专有名称的字节数组(RFC 2253或ASN.1 DER编码形式)。如果为此参数的值提供null
,则不会执行issuerNames检查。请注意,names参数可以包含重复的可分辨名称,但它们可能会从
getIssuerNames
方法返回的名称集合中删除。如果将名称指定为字节数组,则应包含单个X.501中定义的DER编码可分辨名称。此结构的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
- 如果发生解析错误 - 参见:
-
addIssuer
向issuerNames条件添加一个名称。在X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。此方法允许调用者向
X509CRLs
可能包含的发行者名称集中添加一个名称。指定的名称将添加到issuerNames条件的任何先前值中。如果指定的名称是重复的,则可能会被忽略。- 参数:
-
issuer
- 作为X500Principal的发行者 - 自:
- 1.5
-
addIssuerName
Deprecated.UseaddIssuer(X500Principal)
oraddIssuerName(byte[])
instead. This method should not be relied on as it can fail to match some CRLs because of a loss of encoding information in the RFC 2253 String form of some distinguished names.向issuerNames条件添加一个名称。在X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。此方法允许调用者向
X509CRLs
可能包含的发行者名称集中添加一个名称。指定的名称将添加到issuerNames条件的任何先前值中。如果指定的名称是重复的,则可能会被忽略。- 参数:
-
name
- 以RFC 2253形式的名称 - 抛出:
-
IOException
- 如果发生解析错误
-
addIssuerName
向issuerNames条件添加一个名称。在X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。此方法允许调用者向
X509CRLs
可能包含的发行者名称集中添加一个名称。指定的名称将添加到issuerNames条件的任何先前值中。如果指定的名称是重复的,则可能会被忽略。如果将名称指定为字节数组,则应包含单个X.501中定义的DER编码可分辨名称。此结构的ASN.1表示如下。名称以字节数组形式提供。此字节数组应包含单个X.501中定义的DER编码可分辨名称。此结构的ASN.1表示在
setIssuerNames(Collection names)
的文档中出现。请注意,此处提供的字节数组将进行克隆以防止后续修改。
- 参数:
-
name
- 包含ASN.1 DER编码形式名称的字节数组 - 抛出:
-
IOException
- 如果发生解析错误
-
setMinCRLNumber
设置minCRLNumber条件。必须具有CRL号扩展其值大于或等于指定值的X509CRL
。如果为null
,则不会执行minCRLNumber检查。- 参数:
-
minCRL
- 接受的最小CRL号(或null
)
-
setMaxCRLNumber
设置maxCRLNumber条件。必须具有CRL号扩展其值小于或等于指定值的X509CRL
。如果为null
,则不会执行maxCRLNumber检查。- 参数:
-
maxCRL
- 接受的最大CRL号(或null
)
-
setDateAndTime
设置日期和时间标准。指定的日期必须等于或晚于X509CRL
的thisUpdate组件的值,早于nextUpdate组件的值。如果X509CRL
不包含nextUpdate组件,则没有匹配项。如果为null
,则不会进行日期和时间检查。请注意,此处提供的
Date
是克隆的,以防止后续修改。- 参数:
-
dateAndTime
- 要匹配的Date
(或null
) - 参见:
-
setCertificateChecking
设置正在检查的证书。这不是一个标准,而是可选信息,可能有助于CertStore
在检查指定证书的吊销时找到相关的CRL。如果指定为null
,则不提供此类可选信息。- 参数:
-
cert
- 正在检查的X509Certificate
(或null
) - 参见:
-
getIssuers
返回发行者名称标准。在X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。如果返回的值为null
,则任何发行者可分辨名称都可以。如果返回的值不是
null
,则是一个不可修改的Collection
,其中包含X500Principal
。- 返回:
-
一个不可修改的名称
Collection
(或null
) - 自:
- 1.5
- 参见:
-
getIssuerNames
返回发行者名称标准的副本。在X509CRL
中的发行者可分辨名称必须与指定的至少一个可分辨名称匹配。如果返回的值为null
,则任何发行者可分辨名称都可以。如果返回的值不是
null
,则是一个包含名称的Collection
。每个名称都是一个表示可分辨名称的String
或字节数组(分别为RFC 2253或ASN.1 DER编码形式)。请注意,返回的Collection
可能包含重复的名称。如果将名称指定为字节数组,则应包含单个DER编码的可分辨名称,如X.501中定义。此结构的ASN.1表示在
setIssuerNames(Collection names)
的文档中给出。请注意,对
Collection
执行深度复制以防止后续修改。- 返回:
-
名称的
Collection
(或null
) - 参见:
-
getMinCRL
返回minCRLNumber标准。X509CRL
必须具有CRL号扩展,其值大于或等于指定值。如果为null
,则不会进行minCRLNumber检查。- 返回:
-
接受的最小CRL号(或
null
)
-
getMaxCRL
返回maxCRLNumber标准。X509CRL
必须具有CRL号扩展,其值小于或等于指定值。如果为null
,则不会进行maxCRLNumber检查。- 返回:
-
接受的最大CRL号(或
null
)
-
getDateAndTime
返回日期和时间标准。指定的日期必须等于或晚于X509CRL
的thisUpdate组件的值,早于nextUpdate组件的值。如果X509CRL
不包含nextUpdate组件,则没有匹配项。如果为null
,则不会进行日期和时间检查。请注意,返回的
Date
是克隆的,以防止后续修改。- 返回:
-
要匹配的
Date
(或null
) - 参见:
-
getCertificateChecking
返回正在检查的证书。这不是一个标准,而是可选信息,可能有助于CertStore
在检查指定证书的吊销时找到相关的CRL。如果返回的值为null
,则不提供此类可选信息。- 返回:
-
正在检查的证书(或
null
) - 参见:
-
toString
返回X509CRLSelector
的可打印表示。 -
match
决定是否应选择CRL
。- 指定者:
-
match
在接口CRLSelector
- 参数:
-
crl
- 要检查的CRL
- 返回:
-
如果应选择
CRL
,则为true
,否则为false
-
clone
返回此对象的副本。- 指定者:
-
clone
在接口CRLSelector
- 覆盖:
-
clone
在类Object
- 返回:
- 该副本
- 参见:
-
addIssuer(X500Principal)
或addIssuerName(byte[])
代替。