モジュール java.base
パッケージ java.security.cert

クラスX509CRL

  • すべての実装されたインタフェース:
    X509Extension

    public abstract class X509CRL
    extends CRL
    implements X509Extension

    X.509証明書の取消しリスト(CRL)の抽象クラスです。 CRLは、タイムスタンプの付いたリストで、取り消された証明書を示しています。 これは証明書発行局(CA)によって署名され、共用リポジトリで自由に利用できます。

    取り消された各証明書は、CRLでは証明書のシリアル番号によって識別されます。 証明書使用システムが証明書を使用するとき(リモート・ユーザーのデジタル署名の検証のためなど)、システムは証明書の署名と有効期間を確認するだけでなく、新しいCRLを取得し、証明書のシリアル番号がそのCRLにないことも確認します。 「新しい」の意味はローカル・ポリシーによって異なりますが、通常はもっとも新しく発行されたCRLを意味します。 CAは新しいCRLを定期的に(毎時、毎日、毎週など)発行します。 取消しがあるたびにエントリがCRLに追加され、証明書の有効期限が切れるとエントリが削除されます。

    X.509 v2 CRL形式は、ASN.1で次のように記述されます。

     CertificateList  ::=  SEQUENCE  {
         tbsCertList          TBSCertList,
         signatureAlgorithm   AlgorithmIdentifier,
         signature            BIT STRING  }
     

    詳細は、RFC 5280「Internet X.509 Public Key Infrastructure Certificate and CRL Profile」を参照してください。

    tbsCertListのASN.1定義は次のとおりです。

     TBSCertList  ::=  SEQUENCE  {
         version                 Version OPTIONAL,
                                 -- if present, must be v2
         signature               AlgorithmIdentifier,
         issuer                  Name,
         thisUpdate              ChoiceOfTime,
         nextUpdate              ChoiceOfTime OPTIONAL,
         revokedCertificates     SEQUENCE OF SEQUENCE  {
             userCertificate         CertificateSerialNumber,
             revocationDate          ChoiceOfTime,
             crlEntryExtensions      Extensions OPTIONAL
                                     -- if present, must be v2
             }  OPTIONAL,
         crlExtensions           [0]  EXPLICIT Extensions OPTIONAL
                                      -- if present, must be v2
         }
     

    CRLのインスタンスは、証明書ファクトリを使って生成されます。 次の例はX.509 CRLのインスタンスを生成する方法を示しています。

    
     try (InputStream inStream = new FileInputStream("fileName-of-crl")) {
         CertificateFactory cf = CertificateFactory.getInstance("X.509");
         X509CRL crl = (X509CRL)cf.generateCRL(inStream);
     }
     

    導入されたバージョン:
    1.2
    関連項目:
    CRL, CertificateFactory, X509Extension
    • コンストラクタの詳細

      • X509CRL

        protected X509CRL()
        X.509 CRLのコンストラクタです。
    • メソッドの詳細

      • equals

        public boolean equals​(Object other)
        指定されたオブジェクトとこのCRLが等しいかどうかを判定します。 otherオブジェクトがinstanceof X509CRLの場合、符号化された形式が取得され、このCRLの符号化された形式と比較されます。
        オーバーライド:
        equals、クラスObject
        パラメータ:
        other - このCRLと等しいかどうかが判定されるオブジェクト。
        戻り値:
        2つのCRLの符号化された形式が一致した場合はtrue、そうでない場合はfalse
        関連項目:
        Object.hashCode()HashMap
      • getEncoded

        public abstract byte[] getEncoded()
                                   throws CRLException
        このCRLのASN.1 DERで符号化された形式を返します。
        戻り値:
        この証明書の符号化された形式
        例外:
        CRLException - 符号化エラーが発生した場合
      • verify

        public void verify​(PublicKey key,
                           Provider sigProvider)
                    throws CRLException,
                           NoSuchAlgorithmException,
                           InvalidKeyException,
                           SignatureException
        指定された公開キーに対応する非公開キーを使って、このCRLが署名されたことを検証します。 このメソッドは、指定されたプロバイダによって提供された署名検証エンジンを使用します。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。 このメソッドは、Java Platform Standard Editionのバージョン1.8で追加されました。 既存のサービス・プロバイダとの下位互換性を維持するため、このメソッドはabstractではなく、デフォルトの実装を提供します。
        パラメータ:
        key - 検証の実行に使うPublicKey。
        sigProvider - 署名プロバイダ。
        例外:
        NoSuchAlgorithmException - サポートされていない署名アルゴリズムの場合。
        InvalidKeyException - 無効なキーの場合
        SignatureException - 署名エラーの場合。
        CRLException - 符号化エラーの場合
        導入されたバージョン:
        1.8
      • getVersion

        public abstract int getVersion()
        CRLからversion (バージョン番号)値を取得します。 ASN.1定義は次のとおりです。
         version    Version OPTIONAL,
                     -- if present, must be v2
        
         Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
                     -- v3 does not apply to CRLs but appears for consistency
                     -- with definition of Version for certs
         
        戻り値:
        バージョン番号(1または2)
      • getIssuerDN

        public abstract Principal getIssuerDN()
        非推奨getIssuerX500Principal()で置き換えられました。 このメソッドは、issuerを実装固有のPrincipalオブジェクトとして返します。移植性のあるコードがこのようなオブジェクトに依存すべきではありません。

        CRLからissuer (発行者識別名)値を取得します。 発行者名は、CRLの署名と発行を行ったエンティティを識別します。

        発行者名フィールドには、X.500識別名(DN)が格納されます。 ASN.1定義は次のとおりです。

         issuer    Name
        
         Name ::= CHOICE { RDNSequence }
         RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
         RelativeDistinguishedName ::=
             SET OF AttributeValueAssertion
        
         AttributeValueAssertion ::= SEQUENCE {
                                       AttributeType,
                                       AttributeValue }
         AttributeType ::= OBJECT IDENTIFIER
         AttributeValue ::= ANY
         
        Nameには、国名などの属性とそれに対応する、USなどの値からなる階層的な名前を記述します。 AttributeValueコンポーネントの型は、AttributeTypeによって決まります。一般的には、directoryStringです。 directoryStringは、通常PrintableStringTeletexStringUniversalStringのいずれかです。

        戻り値:
        名前が発行者識別名であるPrincipal
      • getIssuerX500Principal

        public X500Principal getIssuerX500Principal()
        CRLから発行者(発行者識別名)の値をX500Principalとして返します。

        サブクラスでこのメソッドをオーバーライドすることをお薦めします。

        戻り値:
        発行者識別名を表すX500Principal
        導入されたバージョン:
        1.4
      • getThisUpdate

        public abstract Date getThisUpdate()
        CRLからthisUpdateの日付を取得します。 ASN.1定義は次のとおりです。
         thisUpdate   ChoiceOfTime
         ChoiceOfTime ::= CHOICE {
             utcTime        UTCTime,
             generalTime    GeneralizedTime }
         
        戻り値:
        CRLからのthisUpdateの日付
      • getNextUpdate

        public abstract Date getNextUpdate()
        CRLからnextUpdateの日付を取得します。
        戻り値:
        CRLからのnextUpdateの日付。日付がない場合はnull
      • getRevokedCertificate

        public abstract X509CRLEntry getRevokedCertificate​(BigInteger serialNumber)
        指定された証明書のserialNumberを持つCRLエントリを取得します(ある場合)。
        パラメータ:
        serialNumber - CRLエントリを検索する証明書のシリアル番号
        戻り値:
        指定されたシリアル番号を持つエントリ。このCRLにそのエントリがない場合はnull
        関連項目:
        X509CRLEntry
      • getRevokedCertificate

        public X509CRLEntry getRevokedCertificate​(X509Certificate certificate)
        指定された証明書に対するCRLエントリを取得します(存在する場合)。

        このメソッドを使用すると、間接CRL (CRL発行者以外の発行者によって発行されたエントリを含むCRL)内のCRLエントリを検索できます。 デフォルト実装は、CRL発行者によって発行された証明書エントリのみを返します。 間接CRLのサポートが必要なサブクラスは、このメソッドをオーバーライドする必要があります。

        パラメータ:
        certificate - CRLエントリの検索対象となる証明書
        戻り値:
        指定された証明書に対するエントリ。そのようなエントリがこのCRL内に存在しない場合はnull
        例外:
        NullPointerException - 証明書がnullの場合
        導入されたバージョン:
        1.5
      • getRevokedCertificates

        public abstract Set<? extends X509CRLEntry> getRevokedCertificates()
        すべてのエントリを取得します。 X509CRLEntryオブジェクトのSetが返されます。
        戻り値:
        すべてのエントリ。エントリがない場合はnull
        関連項目:
        X509CRLEntry
      • getTBSCertList

        public abstract byte[] getTBSCertList()
                                       throws CRLException
        DERで符号化されたCRL情報tbsCertListをこのCRLから取得します。 この情報は署名を個別に検証するために使用されます。
        戻り値:
        DERで符号化されたCRL情報
        例外:
        CRLException - 符号化エラーが発生した場合
      • getSignature

        public abstract byte[] getSignature()
        signature値(生のシグネチャ・ビット)を取得します。 ASN.1定義は次のとおりです。
         signature     BIT STRING
         
        戻り値:
        シグネチャ。
      • getSigAlgName

        public abstract String getSigAlgName()
        署名アルゴリズム名を取得します。 たとえば、文字列「SHA256withRSA」などです。 ASN.1定義は次のとおりです。
         signatureAlgorithm   AlgorithmIdentifier
        
         AlgorithmIdentifier  ::=  SEQUENCE  {
             algorithm               OBJECT IDENTIFIER,
             parameters              ANY DEFINED BY algorithm OPTIONAL  }
                                     -- contains a value of the type
                                     -- registered for use with the
                                     -- algorithm object identifier value
         

        アルゴリズム名はalgorithm OID文字列から判定されます。

        戻り値:
        署名アルゴリズム名
      • getSigAlgParams

        public abstract byte[] getSigAlgParams()
        このCRLの署名アルゴリズムから、DERで符号化された署名アルゴリズム・パラメータを取得します。 ほとんどの場合、署名アルゴリズム・パラメータはnullで、通常は公開キーとともに提供されます。 個々のパラメータ値へのアクセスが必要な場合は、AlgorithmParametersを使用し、getSigAlgNameによって返される名前を使ってインスタンスを生成します。

        該当するASN.1定義については、getSigAlgNameを参照してください。

        戻り値:
        DERで符号化された署名アルゴリズム・パラメータ。パラメータが存在しない場合はnull