JavaTM Platform
Standard Ed. 6

java.security.cert
类 X509CRLSelector

java.lang.Object
  继承者 java.security.cert.X509CRLSelector
所有已实现的接口:
Cloneable, CRLSelector

public class X509CRLSelector
extends Object
implements CRLSelector

选择与所有指定标准相匹配的 X509CRLCRLSelector。从 CertStore 中选择 CRL 以检查特定证书的撤消状态时,此类特别有用。

最初构造 X509CRLSelector 时,它没有启用任何标准,并且每个 get 方法都返回一个默认值 (null)。因此,对于任意 X509CRL 而言,match 方法将返回 true。通常,启用多种标准(例如通过调用 setIssuerssetDateAndTime),然后将 X509CRLSelector 传递到 CertStore.getCRLs 或某个类似方法。

有关 X.509 CRL 各字段和下面所述各扩展的定义,请参阅 RFC 2459。

并发访问

除非另行指定,否则此类中所定义的方法不是线程安全的。需要并发访问单个对象的多个线程应该在它们之间实现同步并提供所需的锁定。对于每个线程都操作一个不同对象的多个线程而言,无需实现同步。

从以下版本开始:
1.4
另请参见:
CRLSelector, X509CRL

构造方法摘要
X509CRLSelector()
          创建一个 X509CRLSelector
 
方法摘要
 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) 方法,或者使用此方法时仅指定 byte 数组形式的标识名。
 void setIssuers(Collection<X500Principal> issuers)
          设置 issuerNames 标准。
 void setMaxCRLNumber(BigInteger maxCRL)
          设置 maxCRLNumber 标准。
 void setMinCRLNumber(BigInteger minCRL)
          设置 minCRLNumber 标准。
 String toString()
          返回该 X509CRLSelector 的可打印表示形式。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

X509CRLSelector

public X509CRLSelector()
创建一个 X509CRLSelector。最初未设置任何标准,所以任何 X509CRL 都匹配。

方法详细信息

setIssuers

public void setIssuers(Collection<X500Principal> issuers)
设置 issuerNames 标准。X509CRL 中的发布方标识名必须至少与某个指定的标识名相匹配。如果指定的标识名为 null,则将匹配任意发布方标识名。

此方法允许调用方(使用单个方法调用)指定 X509CRL 可能包含的全部发布方名称集。指定的值会替换 issuerNames 标准以前的值。

names 参数(如果不为 null)是一个 X500PrincipalCollection

注意,names 参数可以包含重复的标识名,但是可能从 getIssuers 方法返回的名称 Collection 中将其移除。

注意,要对该 Collection 执行复制以防后续修改。

参数:
issuers - X500Principals 的 Collection(或者为 null
从以下版本开始:
1.5
另请参见:
getIssuers()

setIssuerNames

public void setIssuerNames(Collection<?> names)
                    throws IOException
注意:请使用 setIssuers(Collection) 方法,或者使用此方法时仅指定 byte 数组形式的标识名。有关更多信息,请参阅 addIssuerName(String)

设置 issuerNames 标准。X509CRL 中的发布方标识名必须至少与某个指定的标识名相匹配。如果指定的标识名为 null,则将匹配任意发布方标识名。

此方法允许调用方(使用单个方法调用)指定 X509CRL 可能包含的全部发布方名称集。指定的值会替换 issuerNames 标准以前的值。

names 参数(如果不为 null)是一个名称的 Collection。每个名称都是一个 String 或 byte 数组(分别为 RFC 2253 或 ASN.1 DER 编码形式),表示一个标识名。如果为此参数提供 null 值,则不执行 issuerNames 检查。

注意,names 参数可以包含重复的标识名,但是可能从 getIssuerNames 方法返回的名称 Collection 中将其移除。

如果以 byte 数组的形式指定名称,那么它应该包含单个 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 中的发布方标识名必须至少与某个指定的标识名相匹配。

此方法允许调用方向 X509CRL 可能包含的发布方名称集中添加一个名称。将指定的名称添加到 issuerNames 标准的以前值中。如果指定的名称是重复的,则忽略它。

参数:
issuer - X500Principal 形式的发布方
从以下版本开始:
1.5

addIssuerName

public void addIssuerName(String name)
                   throws IOException
已过时,使用 addIssuer(X500Principal)addIssuerName(byte[]) 替代。由于某些 RFC 2253 String 形式的标识名中会丢失编码信息,所以当此方法与某些 CRL 不匹配时不应该依赖它。

向 issuerNames 标准中添加名称。X509CRL 中的发布方标识名必须至少与某个指定的标识名相匹配。

此方法允许调用方向 X509CRL 可能包含的发布方名称集中添加一个名称。将指定的名称添加到 issuerNames 标准的以前值中。如果指定的名称是重复的,则忽略它。

参数:
name - RFC 2253 形式的名称
抛出:
IOException - 如果发生解析错误

addIssuerName

public void addIssuerName(byte[] name)
                   throws IOException
向 issuerNames 标准中添加名称。X509CRL 中的发布方标识名必须至少与某个指定的标识名相匹配。

此方法允许调用方向 X509CRL 可能包含的发布方名称集中添加一个名称。将指定的名称添加到 issuerNames 标准的以前值中。如果指定的名称是重复的,则忽略它。如果以 byte 数组的形式指定名称,那么它应该包含单个 DER 编码形式的标识名,正如 X.501 中定义的一样。此结构的 ASN.1 表示如下:

以 byte 数组的形式提供该名称。此 byte 数组应该包含单个 DER 编码形式的标识名,正如 X.501 中定义的一样。setIssuerNames(Collection names) 的文档中提供了此结构的 ASN.1 表示。

注意,要复制此处提供的 byte 数组以防后续修改。

参数:
name - 包含 ASN.1 DER 编码形式名称的 byte 数组
抛出:
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 以防后续修改。

参数:
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,则是一个 X500Principal 的不可修改的 Collection

返回:
一个不可修改的名称 Collection(或者为 null
从以下版本开始:
1.5
另请参见:
setIssuers(java.util.Collection)

getIssuerNames

public Collection<Object> getIssuerNames()
返回该 issuerNames 标准的一个副本。X509CRL 中的发布方标识名必须至少与某个指定的标识名相匹配。如果返回值为 null,则任意发布方标识名都匹配。

如果返回值不为 null,则是一个名称 Collection。每个名称都是一个 String 或 byte 数组(分别为 RFC 2253 或 ASN.1 DER 编码形式),表示一个标识名。注意,返回的 Collection 可能包含重复的名称。

如果以 byte 数组的形式指定名称,那么它应该包含单个 DER 编码形式的标识名,正如 X.501 中定义的一样。setIssuerNames(Collection names) 的文档中给出了此结构的 ASN.1 表示。

注意,要对该 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 的可打印表示形式。

覆盖:
Object 中的 toString
返回:
描述该 X509CRLSelector 内容的 String

match

public boolean match(CRL crl)
决定是否应该选择某个 CRL

指定者:
接口 CRLSelector 中的 match
参数:
crl - 要检查的 CRL
返回:
如果应该选择该 CRL,则返回 true;否则返回 false

clone

public Object clone()
返回此对象的副本。

指定者:
接口 CRLSelector 中的 clone
覆盖:
Object 中的 clone
返回:
副本
另请参见:
Cloneable

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策