- java.lang.Object
-
- java.security.cert.CRL
-
- 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 5280Internet 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
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 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が署名されたことを検証します。void
verify(PublicKey key, Provider sigProvider)
指定された公開鍵に対応する非公開鍵を使って、このCRLが署名されたことを検証します。-
インタフェース java.security.cert.X509Extensionで宣言されたメソッド
getCriticalExtensionOIDs, getExtensionValue, getNonCriticalExtensionOIDs, hasUnsupportedCriticalExtension
-
-
-
-
メソッドの詳細
-
equals
public boolean equals(Object other)
指定されたオブジェクトとこのCRLが等しいかどうかを判定します。other
オブジェクトがinstanceof
X509CRL
の場合、符号化された形式が取得され、このCRLの符号化された形式と比較されます。- オーバーライド:
equals
、クラス:Object
- パラメータ:
other
- このCRLと等しいかどうかが判定されるオブジェクト。- 戻り値:
- 2つのCRLの符号化された形式が一致した場合はtrue、そうでない場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()
符号化された形式からこのCRLのハッシュ・コード値を返します。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- ハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
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
- 符号化エラーの場合
-
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
は、通常PrintableString
、TeletexString
、UniversalString
のいずれかです。- 戻り値:
- 名前が発行者識別名である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文字列から判定されます。- 戻り値:
- 署名アルゴリズム名
-
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
-
-