- java.lang.Object
-
- java.security.cert.X509CRLSelector
-
- All Implemented Interfaces:
-
Cloneable
,CRLSelector
public class X509CRLSelector extends Object implements CRLSelector
ACRLSelector
选择符合所有指定条件的X509CRLs
。 当从CertStore
选择CRL以检查特定证书的撤销状态时,CertStore
特别有用。首次构建时,
X509CRLSelector
没有启用条件,并且每个get
方法都返回默认值(null
)。 因此,match
方法将返回true
任何X509CRL
。 通常,启用了几个条件(例如通过调用setIssuers
或setDateAndTime
),然后将X509CRLSelector
传递给CertStore.getCRLs
或一些类似的方法。有关下列X.509 CRL字段和扩展名的定义,请参阅RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile 。
并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
- 从以下版本开始:
- 1.4
- 另请参见:
-
CRLSelector
,X509CRL
-
-
构造方法摘要
构造方法 Constructor 描述 X509CRLSelector()
创建一个X509CRLSelector
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)或仅在使用此方法时指定专有名称的字节数组形式。void
setIssuers(Collection<X500Principal> issuers)
设置issuerNames条件。void
setMaxCRLNumber(BigInteger maxCRL)
设置maxCRLNumber标准。void
setMinCRLNumber(BigInteger minCRL)
设置minCRLNumber标准。String
toString()
返回X509CRLSelector
的可打印表示。
-
-
-
方法详细信息
-
setIssuers
public void setIssuers(Collection<X500Principal> issuers)
设置issuerNames条件。X509CRL
的发行人识别名称必须至少与一个指定的可分辨名称相匹配。 如果是null
,任何发行人的辨别名都可以。该方法允许调用者使用单个方法调用来指定
X509CRLs
可能包含的完整的发行者名称X509CRLs
。 指定的值替换issuerNames条件的上一个值。names
参数(如果不是null
)是Collection
的X500Principal
。需要注意的是
names
参数可以包含重复的专有名称,但他们可以从被删除Collection
由返回的名字getIssuers
方法。请注意,在
Collection
上执行副本以防止后续修改。- 参数
-
issuers
- 一个Collection
(或null
) - 从以下版本开始:
- 1.5
- 另请参见:
-
getIssuers()
-
setIssuerNames
public void setIssuerNames(Collection<?> names) throws IOException
注意:使用setIssuers(Collection)或使用此方法时,仅指定可分辨名称的字节数组形式。 有关详细信息,请参阅addIssuerName(String)
。设置issuerNames条件。
X509CRL
的颁发者可分辨名称必须至少与一个指定的可分辨名称相匹配。 如果是null
,任何发行人的名字都可以。该方法允许调用者使用单个方法调用来指定
X509CRLs
可能包含的完整的发行者名称X509CRLs
。 指定的值替换issuerNames条件的上一个值。names
参数(如果不是null
)是一个Collection
的名字。 每个名称是一个String
或一个表示可分辨名称的字节数组(分别为RFC 2253或ASN.1 DER编码形式)。 如果提供null
作为此参数的值,则不执行issuerNames检查。需要注意的是
names
参数可以包含重复的专有名称,但他们可以从被删除Collection
由返回的名字getIssuerNames
方法。如果一个名称被指定为一个字节数组,它应包含一个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()
-
addIssuer
public void addIssuer(X500Principal issuer)
向issuerNames条件添加一个名称。X509CRL
的发行人识别名称必须至少与一个指定的可分辨名称相匹配。此方法允许调用者向
X509CRLs
可能包含的发行者名称集添加名称。 指定的名称将添加到issuerNames条件的任何先前值。 如果指定的名称是重复的,则可能会被忽略。- 参数
-
issuer
- 发行人为issuer
- 从以下版本开始:
- 1.5
-
addIssuerName
public void addIssuerName(String name) throws IOException
诋毁 ,使用addIssuer(X500Principal)或者addIssuerName(byte[])代替。 不应该依赖此方法,因为由于某些专有名称的RFC 2253字符串形式的编码信息丢失,因此可能无法匹配某些CRL。向issuerNames条件添加一个名称。
X509CRL
的发行人识别名必须与至少一个指定的可分辨名称相匹配。此方法允许调用者向
X509CRLs
可能包含的发行者名称集合添加一个名称。 指定的名称将添加到issuerNames条件的任何先前值。 如果指定的名称是重复的,则可能会被忽略。- 参数
-
name
- RFC 2253形式的名称 - 异常
-
IOException
- 如果发生解析错误
-
addIssuerName
public void addIssuerName(byte[] name) throws IOException
向issuerNames条件添加一个名称。X509CRL
的发行人可分辨名称必须至少与一个指定的可分辨名称相匹配。此方法允许调用者向
X509CRLs
可能包含的发行者名称集合添加名称。 指定的名称将添加到issuerNames条件的任何先前值。 如果指定的名称是重复的,则可能会被忽略。 如果一个名称被指定为一个字节数组,它应包含一个DER编码的唯一名称,如X.501所定义。 该结构的ASN.1符号如下。该名称作为字节数组提供。 该字节数组应包含单个DER编码的可分辨名称,如X.501中所定义。 此结构的ASN.1符号显示在
setIssuerNames(Collection names)
的文档中。请注意,此处提供的字节数组被克隆以防止后续修改。
- 参数
-
name
- 包含ASN.1 DER编码形式的名称的字节数组 - 异常
-
IOException
- 如果发生解析错误
-
setMinCRLNumber
public void setMinCRLNumber(BigInteger minCRL)
设置minCRLNumber标准。X509CRL
必须具有值大于或等于指定值的CRL号码扩展名。 如果是null
,则不进行minCRLNumber检查。- 参数
-
minCRL
- 接受的最低CRL号码(或null
)
-
setMaxCRLNumber
public void setMaxCRLNumber(BigInteger maxCRL)
设置maxCRLNumber标准。X509CRL
必须具有值小于或等于指定值的CRL号码扩展名。 如果是null
,则不会进行maxCRLNumber检查。- 参数
-
maxCRL
- 接受的最大CRL号码(或null
)
-
setDateAndTime
public void setDateAndTime(Date dateAndTime)
设置dateAndTime标准。 指定的日期必须等于或晚于X509CRL
的thisUpdate组件的值,并且早于nextUpdate组件的值。 如果X509CRL
不包含nextUpdate组件,则不匹配。 如果是null
,则不会对dateAndTime进行检查。请注意,
Date
提供的Date
被克隆以防止后续修改。- 参数
-
dateAndTime
- 匹配的Date
(或null
) - 另请参见:
-
getDateAndTime()
-
setCertificateChecking
public void setCertificateChecking(X509Certificate cert)
设置正在检查的证书。 这不是一个标准。 相反,它是可选的信息,可以帮助CertStore
查找与检查指定证书的撤销相关的CRL。 如果指定了null
,则不提供此类可选信息。- 参数
-
cert
- 正在检查的X509Certificate
(或null
) - 另请参见:
-
getCertificateChecking()
-
getIssuers
public Collection<X500Principal> getIssuers()
返回issuerNames条件。X509CRL
的发行人识别名必须至少与一个指定的可分辨名称相匹配。 如果返回的值为null
,则任何发行人的可分辨名称都可以。如果返回的值不是
null
,则是Collection
的不可修改的X500Principal
。- 结果
-
一个不可修改的
Collection
的名称(或null
) - 从以下版本开始:
- 1.5
- 另请参见:
-
setIssuers(java.util.Collection<javax.security.auth.x500.X500Principal>)
-
getIssuerNames
public Collection<Object> getIssuerNames()
返回issuerNames条件的副本。X509CRL
的发行人可分辨名称必须至少与一个指定的可分辨名称相匹配。 如果返回的值为null
,则任何发行人的可分辨名称都可以。如果返回的值不是
null
,那么它的名字是Collection
。 每个名称都是String
或表示可分辨名称的字节数组(分别为RFC 2253或ASN.1 DER编码形式)。 请注意,返回的Collection
可能包含重复的名称。如果一个名称被指定为一个字节数组,它应包含一个DER编码的唯一名称,如X.501所定义。 该结构的ASN.1符号在
setIssuerNames(Collection names)
的文档中给出 。请注意,对
Collection
执行深层复制以防止后续修改。- 结果
-
一个
Collection
的名字(或null
) - 另请参见:
-
setIssuerNames(java.util.Collection<?>)
-
getMinCRL
public BigInteger getMinCRL()
返回minCRLNumber标准。X509CRL
必须具有值大于或等于指定值的CRL号码扩展名。 如果是null
,则不会进行minCRLNumber检查。- 结果
-
接受的最小CRL号码(或
null
)
-
getMaxCRL
public BigInteger getMaxCRL()
返回maxCRLNumber标准。X509CRL
必须具有值小于或等于指定值的CRL号码扩展名。 如果是null
,则不会进行maxCRLNumber检查。- 结果
-
接受的最大CRL号码(或
null
)
-
getDateAndTime
public Date getDateAndTime()
返回dateAndTime条件。 指定的日期必须等于或晚于X509CRL
的thisUpdate组件的值,并且早于nextUpdate组件的值。 如果X509CRL
不包含nextUpdate组件,则不匹配。 如果是null
,则不会对dateAndTime进行检查。请注意,返回的
Date
被克隆以防止后续修改。- 结果
-
Date
匹配(或null
) - 另请参见:
-
setDateAndTime(java.util.Date)
-
getCertificateChecking
public X509Certificate getCertificateChecking()
返回正在检查的证书。 这不是一个标准。 相反,它是可选的信息,可以帮助CertStore
查找与检查指定证书的撤销相关的CRL。 如果返回的值为null
,则不提供此类可选信息。- 结果
-
正在检查的证书(或
null
) - 另请参见:
-
setCertificateChecking(java.security.cert.X509Certificate)
-
toString
public String toString()
返回X509CRLSelector
的可打印表示。
-
match
public boolean match(CRL crl)
决定是否选择CRL
。- Specified by:
-
match
在接口CRLSelector
- 参数
-
crl
- 要检查的CRL
- 结果
-
true
如果CRL
应选择,false
否则
-
-