模块 java.base

类 X509CRLSelector

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

public class X509CRLSelector extends Object implements CRLSelector
选择匹配所有指定条件的 X509CRLsCRLSelector。当从 CertStore 选择 CRL 以检查特定证书的吊销状态时,此类特别有用。

首次构造时,X509CRLSelector 没有启用任何条件,并且每个 get 方法都返回一个默认值 (null)。因此,match 方法将为任何 X509CRL 返回 true。通常,会启用多个条件(例如,通过调用 setIssuers setDateAndTime ),然后将 X509CRLSelector 传递给 CertStore.getCRLs 或某种类似方法。

请参阅 RFC 5280:Internet X.509 公钥基础结构证书和 CRL 配置文件 以了解下文提到的 X.509 CRL 字段和扩展的定义。

并发访问

除非另有说明,否则此类中定义的方法不是线程安全的。需要同时访问单个对象的多个线程应该在它们之间同步并提供必要的锁定。每个操作单独对象的多个线程不需要同步。

自从:
1.4
参见:
  • 构造方法详细信息

    • X509CRLSelector

      public X509CRLSelector()
      创建一个 X509CRLSelector 。最初,没有设置任何条件,因此任何 X509CRL 都将匹配。
  • 方法详情

    • setIssuers

      public void setIssuers(Collection <X500Principal > issuers)
      设置 issuerNames 标准。 X509CRL 中的颁发者专有名称必须至少与指定的专有名称之一相匹配。如果是 null ,任何发行者专有名称都可以。

      此方法允许调用者通过单个方法调用指定 X509CRLs 可能包含的完整发行者名称集。指定的值替换了 issuerNames 标准的先前值。

      names 参数(如果不是 null )是 X500PrincipalCollection

      请注意,names 参数可以包含重复的可分辨名称,但它们可能会从 getIssuers 方法返回的名称的 Collection 中删除。

      请注意,在 Collection 上执行了复制以防止后续修改。

      参数:
      issuers - X500Principals 的 Collection(或 null
      自从:
      1.5
      参见:
    • setIssuerNames

      public void setIssuerNames(Collection <?> names) throws IOException
      Note: 使用 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 - 如果发生解析错误
      参见:
    • addIssuer

      public void addIssuer(X500Principal  issuer)
      将名称添加到 issuerNames 条件。 X509CRL 中的颁发者专有名称必须至少与指定的专有名称之一相匹配。

      此方法允许调用者将名称添加到 X509CRLs 可能包含的发行者名称集中。指定的名称将添加到 issuerNames 标准的任何先前值。如果指定的名称重复,则可能会被忽略。

      参数:
      issuer - 作为 X500Principal 的发行人
      自从:
      1.5
    • addIssuerName

      @Deprecated (since ="16") 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 已被克隆以防止后续修改。

      参数:
      dateAndTime - 要匹配的 Date(或 null
      参见:
    • setCertificateChecking

      public void setCertificateChecking(X509Certificate  cert)
      设置正在检查的证书。这不是标准。相反,它是可选信息,可帮助CertStore 查找在检查指定证书的吊销时相关的 CRL。如果指定null,则不提供此类可选信息。
      参数:
      cert - 正在检查的 X509Certificate(或 null
      参见:
    • getIssuers

      public Collection <X500Principal > getIssuers()
      返回 issuerNames 标准。 X509CRL 中的颁发者专有名称必须至少与指定的专有名称之一相匹配。如果返回的值为 null ,则任何发行者专有名称都可以。

      如果返回的值不是 null ,则它是 X500Principal 的不可修改的 Collection

      返回:
      不可修改的 Collection 名称(或 null
      自从:
      1.5
      参见:
    • 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
      参见:
    • 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
      参见:
    • getCertificateChecking

      public X509Certificate  getCertificateChecking()
      返回正在检查的证书。这不是标准。相反,它是可选信息,可帮助CertStore 查找在检查指定证书的吊销时相关的 CRL。如果返回的值为 null ,则不提供此类可选信息。
      返回:
      正在检查的证书(或 null
      参见:
    • toString

      public String  toString()
      返回 X509CRLSelector 的可打印表示。
      重写:
      toString 在类 Object
      返回:
      String 描述了 X509CRLSelector 的内容。
    • match

      public boolean match(CRL  crl)
      决定是否应选择 CRL
      指定者:
      match 在接口 CRLSelector
      参数:
      crl - 要检查的 CRL
      返回:
      true 如果应选择 CRLfalse 否则
    • clone

      public Object  clone()
      返回此对象的副本。
      指定者:
      clone 在接口 CRLSelector
      重写:
      clone 在类 Object
      返回:
      副本
      参见: