模块  java.base
软件包  java.security.cert

Class X509CRLSelector

  • 实现的所有接口
    CloneableCRLSelector

    public class X509CRLSelectorextends Objectimplements CRLSelector
    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可能包含的完整发行者名称集。 指定的值将替换issuerNames标准的先前值。

        names参数(如果不是null )是Collection ,共X500Principal s。

        需要注意的是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 ,则它是CollectionX500Principal的无法修改。

        结果
        不可修改的 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
        重写:
        toString在课程 Object
        结果
        一个 String描述的内容 X509CRLSelector
      • match

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