- java.lang.Object
-
- java.security.cert.X509CRLSelector
-
- 实现的所有接口
-
Cloneable
,CRLSelector
public class X509CRLSelector extends Object implements CRLSelector
CRLSelector
,选择符合所有指定条件的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
-
-
构造方法摘要
构造方法 构造器 描述 X509CRLSelector()
创建一个X509CRLSelector
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addIssuer(X500Principal issuer)
为issuerNames标准添加名称。void
addIssuerName(byte[] name)
为issuerNames标准添加名称。void
addIssuerName(String name)
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
的可打印表示X509CRLSelector
。
-
-
-
方法详细信息
-
setIssuers
public void setIssuers(Collection<X500Principal> issuers)
设置issuerNames标准。X509CRL
的颁发者专有名称必须至少与指定的专有名称相匹配。 如果是null
,任何发行人的专有名称都可以。此方法允许调用者使用单个方法调用指定
X509CRLs
可能包含的完整发行者名称集。 指定的值将替换issuerNames标准的先前值。names
参数(如果不是null
)是Collection
,共X500Principal
s。需要注意的是
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
可能包含的完整发行者名称集。 指定的值将替换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
上执行深层复制以防止后续修改。- 参数
-
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[]) 。 不应该依赖此方法,因为它可能无法匹配某些CRL,因为某些可分辨名称的RFC 2253字符串形式中的编码信息丢失。为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
上执行深层复制以防止后续修改。- 结果
-
a
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
的可打印表示X509CRLSelector
。
-
match
public boolean match(CRL crl)
决定是否应选择CRL
。- Specified by:
-
match
在界面CRLSelector
- 参数
-
crl
- 要检查的CRL
- 结果
-
true
如果CRL
应选择,false
否则
-
-