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 }
詳細は、RFC 3280「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 = null;
try {
inStream = new FileInputStream("fileName-of-crl");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL crl = (X509CRL)cf.generateCRL(inStream);
} finally {
if (inStream != null) {
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 が署名されたことを検証します。
|
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
public boolean equals(Object other)
other
オブジェクトが instanceof
X509CRL
の場合、符号化された形式が取得され、この CRL の符号化された形式と比較されます。equals
、クラス: Object
other
- この CRL と等しいかどうかが判定されるオブジェクト。Object.hashCode()
, HashMap
public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public abstract byte[] getEncoded() throws CRLException
CRLException
- 符号化エラーが発生した場合public abstract void verify(PublicKey key) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- 検証の実行に使う PublicKeyNoSuchAlgorithmException
- サポートされていない署名アルゴリズムの場合InvalidKeyException
- 無効な鍵の場合NoSuchProviderException
- デフォルトのプロバイダがない場合SignatureException
- 署名エラーの場合CRLException
- 符号化エラーの場合public abstract void verify(PublicKey key, String sigProvider) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException
key
- 検証の実行に使う PublicKeysigProvider
- 署名プロバイダの名前NoSuchAlgorithmException
- サポートされていない署名アルゴリズムの場合InvalidKeyException
- 無効な鍵の場合NoSuchProviderException
- 無効なプロバイダの場合SignatureException
- 署名エラーの場合CRLException
- 符号化エラーの場合public abstract int getVersion()
version
(バージョン番号) 値を取得します。ASN.1 定義は次のとおりです。
version Version OPTIONAL, -- if present, must be v2Version ::= INTEGER { v1(0), v2(1), v3(2) } -- v3 does not apply to CRLs but appears for consistency -- with definition of Version for certs
public abstract Principal getIssuerDN()
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
は、通常 PrintableString
、TeletexString
、UniversalString
のいずれかです。public X500Principal getIssuerX500Principal()
X500Principal
として返します。
サブクラスでこのメソッドをオーバーライドすることをお勧めします。
X500Principal
public abstract Date getThisUpdate()
thisUpdate
の日付を取得します。ASN.1 定義は次のとおりです。
thisUpdate ChoiceOfTime ChoiceOfTime ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
thisUpdate
の日付public abstract Date getNextUpdate()
nextUpdate
の日付を取得します。nextUpdate
の日付。日付がない場合は nullpublic abstract X509CRLEntry getRevokedCertificate(BigInteger serialNumber)
serialNumber
- CRL エントリを検索する証明書のシリアル番号X509CRLEntry
public X509CRLEntry getRevokedCertificate(X509Certificate certificate)
このメソッドを使用すると、間接 CRL (CRL 発行者以外の発行者によって発行されたエントリを含む CRL) 内の CRL エントリを検索できます。デフォルト実装は、CRL 発行者によって発行された証明書エントリのみを返します。間接 CRL のサポートが必要なサブクラスは、このメソッドをオーバーライドする必要があります。
certificate
- CRL エントリの検索対象となる証明書NullPointerException
- 証明書が null の場合public abstract Set<? extends X509CRLEntry> getRevokedCertificates()
X509CRLEntry
public abstract byte[] getTBSCertList() throws CRLException
tbsCertList
をこの CRL から取得します。この情報は署名を個別に検証するために使用されます。CRLException
- 符号化エラーが発生した場合public abstract byte[] getSignature()
signature
値 (生のシグニチャービット) を取得します。ASN.1 定義は次のとおりです。
signature BIT STRING
public abstract String getSigAlgName()
signatureAlgorithm AlgorithmIdentifierAlgorithmIdentifier ::= 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 文字列から判定されます。
public abstract String getSigAlgOID()
該当する ASN.1 定義については、getSigAlgName
を参照してください。
public abstract byte[] getSigAlgParams()
AlgorithmParameters
を使用し、getSigAlgName
によって返される名前を使ってインスタンスを生成します。
該当する ASN.1 定義については、getSigAlgName
を参照してください。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.