Module  java.base
软件包  java.security.cert

Class X509CRLSelector

  • All Implemented Interfaces:
    CloneableCRLSelector


    public class X509CRLSelector
    extends Object
    implements CRLSelector
    A CRLSelector选择符合所有指定条件的X509CRLs 当从CertStore选择CRL以检查特定证书的撤销状态时, CertStore特别有用。

    首次构建时, X509CRLSelector没有启用条件,并且每个get方法都返回默认值( null )。 因此, match方法将返回true任何X509CRL 通常,启用了几个条件(例如通过调用setIssuerssetDateAndTime ),然后将X509CRLSelector传递给CertStore.getCRLs或一些类似的方法。

    有关下列X.509 CRL字段和扩展名的定义,请参阅RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile

    并发访问

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

    从以下版本开始:
    1.4
    另请参见:
    CRLSelectorX509CRL
    • 构造方法详细信息

      • X509CRLSelector

        public X509CRLSelector​()
        创建一个X509CRLSelector 最初没有设置任何条件,所以X509CRL将匹配。
    • 方法详细信息

      • setIssuers

        public void setIssuers​(Collection<X500Principal> issuers)
        设置issuerNames条件。 X509CRL的发行人识别名称必须至少与一个指定的可分辨名称相匹配。 如果是null ,任何发行人的辨别名都可以。

        该方法允许调用者使用单个方法调用来指定X509CRLs可能包含的完整的发行者名称X509CRLs 指定的值替换issuerNames条件的上一个值。

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

        需要注意的是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可能包含的完整的发行者名称X509CRLs 指定的值替换issuerNames条件的上一个值。

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

        需要注意的是names参数可以包含重复的专有名称,但他们可以从被删除Collection由返回的名字getIssuerNames方法。

        如果一个名称被指定为一个字节数组,它应包含一个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[])代替。 不应该依赖此方法,因为由于某些专有名称的RFC 2253字符串形式的编码信息丢失,因此可能无法匹配某些CRL。

        向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执行深层复制以防止后续修改。

        结果
        一个 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的可打印表示。
        重写:
        toStringObject
        结果
        一个描述 String的内容的 X509CRLSelector
      • match

        public boolean match​(CRL crl)
        决定是否选择 CRL
        Specified by:
        match在接口 CRLSelector
        参数
        crl - 要检查的 CRL
        结果
        true如果 CRL应选择, false否则