クラスX509CRL

java.lang.Object
java.security.cert.CRL
java.security.cert.X509CRL
すべての実装されたインタフェース:
X509Extension, DEREncodablePREVIEW

public abstract非シール・クラスX509CRL CRLX509ExtensionDEREncodablePREVIEWを実装します。

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
外部仕様
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    X.509 CRLのコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    equals(Object other)
    指定されたオブジェクトとこのCRLが等しいかどうかを判定します。
    abstract byte[]
    このCRLのASN.1 DERで符号化された形式を返します。
    abstract Principal
    非推奨。
    代わりにgetIssuerX500Principal()を使用してください。
    CRLから発行者(発行者識別名)の値をX500Principalとして返します。
    abstract Date
    CRLからnextUpdateの日付を取得します。
    abstract X509CRLEntry
    指定された証明書のserialNumberを持つCRLエントリを取得します(ある場合)。
    指定された証明書に対するCRLエントリを取得します(存在する場合)。
    abstract Set<? extends X509CRLEntry>
    すべてのエントリを取得します。
    abstract String
    署名アルゴリズム名を取得します。
    abstract String
    CRLから署名アルゴリズムのOID文字列を取得します。
    abstract byte[]
    このCRLの署名アルゴリズムから、DERで符号化された署名アルゴリズム・パラメータを取得します。
    abstract byte[]
    signature値(生のシグネチャ・ビット)を取得します。
    abstract byte[]
    DERで符号化されたCRL情報tbsCertListをこのCRLから取得します。
    abstract Date
    CRLからthisUpdateの日付を取得します。
    abstract int
    CRLからversion (バージョン番号)値を取得します。
    int
    符号化された形式からこのCRLのハッシュ・コード値を返します。
    abstract void
    指定された公開キーに対応する非公開キーを使って、このCRLが署名されたことを検証します。
    abstract void
    verify(PublicKey key, String sigProvider)
    指定された公開キーに対応する非公開キーを使って、このCRLが署名されたことを検証します。
    void
    verify(PublicKey key, Provider sigProvider)
    指定された公開キーに対応する非公開キーを使って、このCRLが署名されたことを検証します。

    クラス CRLで宣言されたメソッド

    getType, isRevoked, toString
    修飾子と型
    メソッド
    説明
    final String
    このCRL型を返します。
    abstract boolean
    指定された証明書がこのCRLにあるかどうかを判定します。
    abstract String
    このCRLの文字列表現を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースで宣言されたメソッド X509Extension

    getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
    修飾子と型
    メソッド
    説明
    このインタフェースを実装するオブジェクトによって管理されている証明書またはCRLで、CRITICALとしてマーキングされている拡張のOID文字列のSetを取得します。
    byte[]
    渡されたoid Stringで識別される拡張値(extnValue)の、DERで符号化されたOCTET文字列を取得します。
    このインタフェースを実装するオブジェクトによって管理されている証明書またはCRLで、NON-CRITICALとしてマーキングされている拡張機能のOID文字列のSetを取得します。
    boolean
    サポートされていないクリティカルな拡張機能があるかをチェックします。
  • コンストラクタの詳細

    • 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
      関連項目:
    • hashCode

      public int hashCode()
      符号化された形式からこのCRLのハッシュ・コード値を返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      エンコードされた形式からのこのCRLのハッシュ・コード値
      関連項目:
    • getEncoded

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

      指定された公開キーに対応する非公開キーを使って、このCRLが署名されたことを検証します。
      パラメータ:
      key - 検証の実行に使うPublicKey。
      スロー:
      NoSuchAlgorithmException - サポートされていない署名アルゴリズムの場合。
      InvalidKeyException - 無効なキーの場合
      NoSuchProviderException - デフォルトのプロバイダがない場合。
      SignatureException - 署名エラーの場合。
      CRLException - 符号化エラーの場合
    • verify

      指定された公開キーに対応する非公開キーを使って、このCRLが署名されたことを検証します。 このメソッドは、指定されたプロバイダによって提供された署名検証エンジンを使用します。
      パラメータ:
      key - 検証の実行に使うPublicKey。
      sigProvider - 署名プロバイダの名前。
      スロー:
      NoSuchAlgorithmException - サポートされていない署名アルゴリズムの場合。
      InvalidKeyException - 無効なキーの場合
      NoSuchProviderException - 無効なプロバイダの場合。
      SignatureException - 署名エラーの場合。
      CRLException - 符号化エラーの場合
    • verify

      指定された公開キーに対応する非公開キーを使って、この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

      @Deprecated(since="16") public abstract Principal getIssuerDN()
      非推奨。
      代わりにgetIssuerX500Principal()を使用してください。 このメソッドは、移植可能なコードに依存しない実装固有のPrincipalオブジェクトとしてissuerを返します。
      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
      関連項目:
    • 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
      関連項目:
    • 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文字列から判定されます。

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

      public abstract String getSigAlgOID()
      CRLから署名アルゴリズムのOID文字列を取得します。 OIDはピリオドで区切られた負にならない整数のセットで表されます。 たとえば、文字列「1.2.840.10040.4.3」では、RFC 3279「Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and CRL Profile」で定義されている、DSA署名アルゴリズムを持つSHA-1が識別されます。

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

      戻り値:
      署名アルゴリズムのOID文字列。
      外部仕様
    • getSigAlgParams

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

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

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