- 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。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 voidaddIssuer(X500Principal issuer)为issuerNames标准添加名称。voidaddIssuerName(byte[] name)为issuerNames标准添加名称。voidaddIssuerName(String name)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)代替或仅在使用此方法时指定专有名称的字节数组形式。voidsetIssuers(Collection<X500Principal> issuers)设置issuerNames标准。voidsetMaxCRLNumber(BigInteger maxCRL)设置maxCRLNumber标准。voidsetMinCRLNumber(BigInteger minCRL)设置minCRLNumber标准。StringtoString()返回X509CRLSelector的可打印表示X509CRLSelector。
-
-
-
方法详细信息
-
setIssuers
public void setIssuers(Collection<X500Principal> issuers)
设置issuerNames标准。X509CRL的颁发者专有名称必须至少与指定的专有名称相匹配。 如果是null,任何发行人的专有名称都可以。此方法允许调用者使用单个方法调用指定
X509CRLs可能包含的完整发行者名称集。 指定的值将替换issuerNames标准的先前值。names参数(如果不是null)是Collection,共X500Principals。需要注意的是
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否则
-
-