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 |
|
---|---|
From class java.lang.Object
|
|
From interface 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 . |