所有类


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
 
方法摘要
 voidaddIssuer(X500Principal issuer)
          向 issuerNames 标准中添加名称。
 voidaddIssuerName(byte[] name)
          向 issuerNames 标准中添加名称。
 voidaddIssuerName(String name)
          已过时,使用 addIssuer(X500Principal)addIssuerName(byte[]) 替代。
 Objectclone()
          返回此对象的副本。
 X509CertificategetCertificateChecking()
          返回要检查的证书。
 DategetDateAndTime()
          返回 dateAndTime 标准。
 Collection<Object>getIssuerNames()
          返回该 issuerNames 标准的一个副本。
 Collection<X500Principal>getIssuers()
          返回 issuerNames 标准。
 BigIntegergetMaxCRL()
          返回 maxCRLNumber 标准。
 BigIntegergetMinCRL()
          返回 minCRLNumber 标准。
 booleanmatch(CRL crl)
          决定是否应该选择某个 CRL
 voidsetCertificateChecking(X509Certificate cert)
          设置要检查的证书。
 voidsetDateAndTime(Date dateAndTime)
          设置 dateAndTime 标准。
 voidsetIssuerNames(Collection<?> names)
          注意:请使用 setIssuers(Collection) 方法,或者使用此方法时仅指定 byte 数组形式的标识名。
 voidsetIssuers(Collection<X500Principal> issuers)
          设置 issuerNames 标准。
 voidsetMaxCRLNumber(BigInteger maxCRL)
          设置 maxCRLNumber 标准。
 voidsetMinCRLNumber(BigInteger minCRL)
          设置 minCRLNumber 标准。
 StringtoString()
          返回该 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