public class X509CRLSelector
extends Object implements CRLSelector
| java.lang.Object | |
| java.security.cert.X509CRLSelector | |
甲CRLSelector ,其选择X509CRLs匹配所有指定标准。 从CertStore选择CRL来检查特定证书的撤销状态时, CertStore特别有用。
第一次构建时, 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字段和扩展的定义。
并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应该自己同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
也可以看看:
Public constructors |
|
|---|---|
X509CRLSelector() 创建一个 |
|
公共方法(Public methods) |
|
|---|---|
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) 决定是否应该选择 |
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() 返回 |
继承方法(Inherited methods) |
|
|---|---|
java.lang.Object
|
|
java.security.cert.CRLSelector
|
|
X509CRLSelector ()
创建一个X509CRLSelector 。 最初,没有设置标准,因此任何X509CRL都将匹配。
void addIssuer (X500Principal issuer)
为issuerNames标准添加一个名称。 X509CRL的发行者专有名称必须至少与指定的专有名称中的一个匹配。
这种方法允许调用者向X509CRLs可能包含的一组发行者名称添加名称。 指定的名称将添加到issuerNames标准的任何以前的值中。 如果指定的名称是重复的,则可能会被忽略。
| 参数(Parameters) | |
|---|---|
issuer |
X500Principal: the issuer as X500Principal |
void addIssuerName (byte[] name)
为issuerNames标准添加一个名称。 X509CRL的发行者专有名称必须至少与指定的专有名称中的一个匹配。
此方法允许调用X509CRLs可能包含X509CRLs的一组发行人名称添加名称。 指定的名称将添加到issuerNames标准的任何以前的值中。 如果指定的名称是重复的,则可能会被忽略。 如果一个名称被指定为一个字节数组,它应该包含一个单独的DER编码的可分辨名称,如X.501中所定义。 该结构的ASN.1表示法如下。
该名称是以字节数组的形式提供的。 该字节数组应该包含一个单独的DER编码的可分辨名称,如X.501中所定义。 此结构的ASN.1表示法出现在setIssuerNames(Collection names)的文档中。
请注意,这里提供的字节数组被克隆,以防止后续修改。
| 参数(Parameters) | |
|---|---|
name |
byte: a byte array containing the name in ASN.1 DER encoded form |
| 抛出异常(Throws) | |
|---|---|
IOException |
if a parsing error occurs |
void addIssuerName (String name)
诋毁 ,使用addIssuer(X500Principal)或者addIssuerName(byte[])代替。 不应该依赖此方法,因为它可能无法匹配某些CRL,因为某些专有名称的RFC 2253字符串形式中的编码信息丢失。
为issuerNames标准添加一个名称。 X509CRL的发行者专有名称必须至少与指定的专有名称中的一个匹配。
此方法允许调用X509CRLs可能包含的发行人名称集添加名称。 指定的名称将添加到issuerNames标准的任何以前的值中。 如果指定的名称是重复的,则可能会被忽略。
| 参数(Parameters) | |
|---|---|
name |
String: the name in RFC 2253 form |
| 抛出异常(Throws) | |
|---|---|
IOException |
if a parsing error occurs |
X509Certificate getCertificateChecking ()
返回正在检查的证书。 这不是一个标准。 相反,它是可选信息,可以帮助CertStore查找在检查指定证书的撤销时相关的CRL。 如果返回的值是null ,则不提供此类可选信息。
| 返回(Returns) | |
|---|---|
X509Certificate |
the certificate being checked (or null) |
Date getDateAndTime ()
返回dateAndTime条件。 指定的日期必须等于或晚于X509CRL的thisUpdate组件的值,并且早于nextUpdate组件的值。 如果X509CRL不包含nextUpdate组件,则不匹配。 如果null ,则不会进行日期和时间检查。
请注意,返回的 Date已克隆,以防止后续修改。
| 返回(Returns) | |
|---|---|
Date |
the Date to match against (or null) |
也可以看看:
Collection<Object> getIssuerNames ()
返回issuerNames标准的副本。 X509CRL的发行者专有名称必须至少与指定的专有名称之一匹配。 如果返回的值是null ,则任何发行者专有名称都会执行。
如果返回的值不是null ,则它是名称的Collection 。 每个名称都是String或表示可分辨名称的字节数组(分别采用RFC 2253或ASN.1 DER编码形式)。 请注意,返回的Collection可能包含重复的名称。
如果一个名称被指定为一个字节数组,它应该包含一个单独的DER编码的可分辨名称,如X.501中所定义。 该结构的ASN.1标记在setIssuerNames(Collection names)的文档中setIssuerNames(Collection names) 。
请注意,在 Collection上执行深层复制以防止后续修改。
| 返回(Returns) | |
|---|---|
Collection<Object> |
a Collection of names (or null) |
也可以看看:
Collection<X500Principal> getIssuers ()
返回issuerNames标准。 X509CRL的发行者专有名称必须至少匹配指定的专有名称之一。 如果返回的值是null ,则任何发行者专有名称都会执行。
如果返回的值不是 null ,则它是 Collection的不可修改的 X500Principal 。
| 返回(Returns) | |
|---|---|
Collection<X500Principal> |
an unmodifiable Collection of names (or null) |
也可以看看:
BigInteger getMaxCRL ()
返回maxCRLNumber标准。 X509CRL必须具有小于或等于指定值的CRL号码扩展。 如果null ,则不会执行maxCRLNumber检查。
| 返回(Returns) | |
|---|---|
BigInteger |
the maximum CRL number accepted (or null) |
BigInteger getMinCRL ()
返回minCRLNumber标准。 X509CRL必须具有大于或等于指定值的CRL号码扩展。 如果null ,则不会执行minCRLNumber检查。
| 返回(Returns) | |
|---|---|
BigInteger |
the minimum CRL number accepted (or null) |
boolean match (CRL crl)
决定是否应该选择 CRL 。
| 参数(Parameters) | |
|---|---|
crl |
CRL: the CRL to be checked |
| 返回(Returns) | |
|---|---|
boolean |
true if the CRL should be selected, false otherwise |
void setCertificateChecking (X509Certificate cert)
设置正在检查的证书。 这不是一个标准。 相反,它是可选信息,可以帮助CertStore查找指定证书的撤销时与CRL相关的CRL。 如果指定了null ,则不提供此类可选信息。
| 参数(Parameters) | |
|---|---|
cert |
X509Certificate: the X509Certificate being checked (or null) |
也可以看看:
void setDateAndTime (Date dateAndTime)
设置dateAndTime条件。 指定的日期必须等于或晚于X509CRL的thisUpdate组件的值,并且早于nextUpdate组件的值。 如果X509CRL不包含nextUpdate组件,则不匹配。 如果null ,则不会执行dateAndTime检查。
请注意,这里提供的 Date已被克隆,以防止后续修改。
| 参数(Parameters) | |
|---|---|
dateAndTime |
Date: the Date to match against (or null) |
也可以看看:
void setIssuerNames (Collection<?> names)
注意:改为使用setIssuers(Collection),或者在使用此方法时仅指定可分辨名称的字节数组形式。 有关更多信息,请参阅addIssuerName(String) 。
设置issuerNames标准。 X509CRL的发行者专有名称必须至少与指定的专有名称中的一个匹配。 如果null ,任何发行人专有名称都可以。
该方法允许调用者使用单个方法调用来指定X509CRLs可能包含的完整的发行者名称X509CRLs 。 指定的值替换issuerNames标准的先前值。
names参数(如果不是null )是名称的Collection 。 每个名称是String或表示可分辨名称的字节数组(分别为RFC 2253或ASN.1 DER编码形式)。 如果提供null作为此参数的值,则不会执行issuerNames检查。
请注意, names参数可以包含重复的可分辨名称,但它们可能会从 getIssuerNames方法返回的名称的 Collection中删除。
如果一个名称被指定为一个字节数组,它应该包含一个单独的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上执行深层复制以防止后续修改。
| 参数(Parameters) | |
|---|---|
names |
Collection: a Collection of names (or null) |
| 抛出异常(Throws) | |
|---|---|
IOException |
if a parsing error occurs |
也可以看看:
void setIssuers (Collection<X500Principal> issuers)
设置issuerNames标准。 X509CRL的发行者专有名称必须至少匹配指定的专有名称之一。 如果是null ,则任何发行者专有名称都会执行。
该方法允许调用者使用单个方法调用指定X509CRLs可能包含的完整的发行者名称X509CRLs 。 指定的值替换issuerNames标准的先前值。
names参数(如果不是 null )是 Collection的 X500Principal 。
请注意, names参数可以包含重复的可分辨名称,但可能会从 getIssuers方法返回的名称的 Collection中删除它们。
请注意,在 Collection上执行复制以防止后续修改。
| 参数(Parameters) | |
|---|---|
issuers |
Collection: a Collection of X500Principals (or null) |
也可以看看:
void setMaxCRLNumber (BigInteger maxCRL)
设置maxCRLNumber标准。 X509CRL必须具有小于或等于指定值的CRL号码扩展。 如果null ,则不会执行maxCRLNumber检查。
| 参数(Parameters) | |
|---|---|
maxCRL |
BigInteger: the maximum CRL number accepted (or null) |
void setMinCRLNumber (BigInteger minCRL)
设置minCRLNumber标准。 X509CRL必须具有CRL号码扩展,其值大于或等于指定值。 如果null ,则不会执行minCRLNumber检查。
| 参数(Parameters) | |
|---|---|
minCRL |
BigInteger: the minimum CRL number accepted (or null) |
String toString ()
返回 X509CRLSelector的可打印表示。
| 返回(Returns) | |
|---|---|
String |
a String describing the contents of the X509CRLSelector. |