- 所有已实现的接口:
-
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddIssuer(X500Principal issuer) 向issuerNames条件添加一个名称。voidaddIssuerName(byte[] name) 向issuerNames条件添加一个名称。voidaddIssuerName(String name) 已弃用。clone()返回此对象的副本。返回正在检查的证书。返回dateAndTime条件。返回issuerNames条件的副本。返回issuerNames条件。返回maxCRLNumber条件。返回minCRLNumber条件。boolean决定是否选择CRL。void设置正在检查的证书。voidsetDateAndTime(Date dateAndTime) 设置dateAndTime条件。voidsetIssuerNames(Collection<?> names) 注意: 使用setIssuers(Collection)或仅在使用此方法时指定专有名称的字节数组形式。voidsetIssuers(Collection<X500Principal> issuers) 设置issuerNames条件。voidsetMaxCRLNumber(BigInteger maxCRL) 设置maxCRLNumber条件。voidsetMinCRLNumber(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[])代替。