JavaTM Platform
Standard Ed. 6

java.security.cert
クラス X509CRL

java.lang.Object
  上位を拡張 java.security.cert.CRL
      上位を拡張 java.security.cert.X509CRL
すべての実装されたインタフェース:
X509Extension

public abstract class X509CRL
extends CRL
implements X509Extension

X.509 証明書の取り消しリスト (CRL) の abstract クラスです。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  }
 

詳細は、http://www.ietf.org/rfc/rfc2459.txt にある RFC 2459 の「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 のインスタンスを生成する方法を示しています。  

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

関連項目:
CRL, CertificateFactory, X509Extension

コンストラクタの概要
protected X509CRL()
          X.509 CRL のコンストラクタです。
 
メソッドの概要
 boolean equals(Object other)
          指定されたオブジェクトとこの CRL が等しいかどうかを判定します。
abstract  byte[] getEncoded()
          この CRL の ASN.1 DER で符号化された形式を返します。
abstract  Principal getIssuerDN()
          非推奨 getIssuerX500Principal() で置き換えられました。
 X500Principal getIssuerX500Principal()
          CRL から発行者 (発行者の識別名) の値を X500Principal として返します。
abstract  Date getNextUpdate()
          CRL から nextUpdate の日付を取得します。
abstract  X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
          指定された証明書の serialNumber を持つ CRL エントリを取得します (ある場合)。
 X509CRLEntry getRevokedCertificate(X509Certificate certificate)
          指定された証明書に対する CRL エントリを取得します (存在する場合)。
abstract  Set<? extends X509CRLEntry> getRevokedCertificates()
          すべてのエントリを取得します。
abstract  String getSigAlgName()
          署名アルゴリズム名を取得します。
abstract  String getSigAlgOID()
          CRL から署名アルゴリズムの OID 文字列を取得します。
abstract  byte[] getSigAlgParams()
          この CRL の署名アルゴリズムから、DER で符号化された署名アルゴリズムパラメータを取得します。
abstract  byte[] getSignature()
          signature 値 (生のシグニチャービット) を取得します。
abstract  byte[] getTBSCertList()
          DER で符号化された CRL 情報 tbsCertList を CRL から取得します。
abstract  Date getThisUpdate()
          CRL から thisUpdate の日付を取得します。
abstract  int getVersion()
          CRL から version (バージョン番号) 値を取得します。
 int hashCode()
          符号化された形式からこの CRL のハッシュコード値を返します。
abstract  void verify(PublicKey key)
          指定された公開鍵に対応する非公開鍵を使って、この CRL が署名されたことを検証します。
abstract  void verify(PublicKey key, String sigProvider)
          指定された公開鍵に対応する非公開鍵を使って、この CRL が署名されたことを検証します。
 
クラス java.security.cert.CRL から継承されたメソッド
getType, isRevoked, toString
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
インタフェース java.security.cert.X509Extension から継承されたメソッド
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
 

コンストラクタの詳細

X509CRL

protected X509CRL()
X.509 CRL のコンストラクタです。

メソッドの詳細

equals

public boolean equals(Object other)
指定されたオブジェクトとこの CRL が等しいかどうかを判定します。other オブジェクトが X509CRL のインスタンスの場合は、符号化された形式が取り出され、この CRL の符号化された形式と比較されます。

オーバーライド:
クラス Object 内の equals
パラメータ:
other - この CRL と等しいかどうかが判定されるオブジェクト
戻り値:
2 つの CRL の符号化された形式が一致した場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
符号化された形式からこの CRL のハッシュコード値を返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
ハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

getEncoded

public abstract byte[] getEncoded()
                           throws CRLException
この CRL の ASN.1 DER で符号化された形式を返します。

戻り値:
この証明書の符号化された形式
例外:
CRLException - 符号化エラーが発生した場合

verify

public abstract void verify(PublicKey key)
                     throws CRLException,
                            NoSuchAlgorithmException,
                            InvalidKeyException,
                            NoSuchProviderException,
                            SignatureException
指定された公開鍵に対応する非公開鍵を使って、この CRL が署名されたことを検証します。

パラメータ:
key - 検証に使う PublicKey
例外:
NoSuchAlgorithmException - サポートされていない署名アルゴリズムの場合
InvalidKeyException - 無効な鍵の場合
NoSuchProviderException - デフォルトのプロバイダがない場合
SignatureException - 署名エラーの場合
CRLException - 符号化エラーの場合

verify

public abstract void verify(PublicKey key,
                            String sigProvider)
                     throws CRLException,
                            NoSuchAlgorithmException,
                            InvalidKeyException,
                            NoSuchProviderException,
                            SignatureException
指定された公開鍵に対応する非公開鍵を使って、この CRL が署名されたことを検証します。このメソッドは、指定されたプロバイダによって提供された署名検証エンジンを使用します。

パラメータ:
key - 検証に使う PublicKey
sigProvider - 署名プロバイダの名前
例外:
NoSuchAlgorithmException - サポートされていない署名アルゴリズムの場合
InvalidKeyException - 無効な鍵の場合
NoSuchProviderException - 無効なプロバイダの場合
SignatureException - 署名エラーの場合
CRLException - 符号化エラーの場合

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()
署名アルゴリズム名を取得します。たとえば、文字列「SHA-1/DSA」などです。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」では、DSA 署名アルゴリズムを持つ SHA-1 が識別されます (RFC 2459 を参照)。  

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

戻り値:
署名アルゴリズムの OID 文字列

getSigAlgParams

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

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

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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。