|
Foundation 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.security.KeyStore
public class KeyStore
このクラスは、メモリー内部での鍵と証明書のコレクションを表します。次の 2 つの型のエントリを管理します。
この型のキーストアエントリには、非常に機密性の高い暗号化鍵の情報を保存できます。この情報は、不正なアクセスを防ぐために保護された形式で格納されます。
一般に、この型のエントリで格納された鍵は秘密鍵、すなわち、対応する公開鍵の証明書チェーンを伴う非公開鍵です。
非公開鍵と証明書チェーンは、指定されたエンティティーによって自身の認証のために使用されます。この認証が利用されるのは、ソフトウェア配布組織がソフトウェアのリリースやライセンス供与の一貫として JAR ファイルに署名する場合などです。
この型のエントリには、別の組織に属する単一の公開鍵証明書が格納されます。これが「信頼できる証明書」と呼ばれるのは、証明書に含まれる公開鍵が、証明書の「被認証者」(所有者) によって識別されたアイデンティティーに属していることをキーストアの所有者が確信しているからです。
この種類のエントリは、ほかの組織の認証に使うことができます。
キーストア内の各エントリは、「別名」文字列によって識別されます。非公開鍵とそれに関連付けられた証明書チェーンの場合は、これらの文字列によってエンティティーが自身を認証する際に使用するさまざまな方法が区別されます。たとえば、エンティティーは自身を認証する際に、異なる証明書発行局を使ったり、異なる公開鍵アルゴリズムを使ったりできます。
キーストアが持続性があるかどうか、および持続性がある場合に使われる機構は、ここでは指定されません。これにより、重要な (秘密または非公開) 鍵を保護するためのさまざまな技術を使うことができます。スマートカードまたはその他の統合暗号化エンジン (SafeKeyper) を使うことも 1 つの方法です。また、ファイルなどのより単純な機構をさまざまな形式で使うこともできます。
KeyStore オブジェクトを要求するには、2 つの方法があります。1 つはキーストア型のみを指定する方法で、もう 1 つはキーストア型とパッケージプロバイダの両方を指定する方法です。
KeyStore ks = KeyStore.getInstance("JKS");
システムは、要求されたキーストア型の実装がその環境で提供されているかどうか、また複数の実装がある場合は、優先順位の高い実装があるかどうかを調べます。
KeyStore ks = KeyStore.getInstance("JKS", "SUN");
システムは、要求されたパッケージ内にキーストア型の実装があるかどうかを調べ、ない場合には例外をスローします。
特定のキーストアにアクセスできるようにするには、そのキーストアをロードする必要があります。空のキーストアを作成するには、load メソッドの InputStream 引数として null を渡します。
PrivateKey,
Certificate| コンストラクタの概要 | |
|---|---|
protected |
KeyStore(KeyStoreSpi keyStoreSpi,
Provider provider,
String type)
指定された型の KeyStore オブジェクトを作成し、そのオブジェクトで、指定されたプロバイダの実装である SPI オブジェクトをカプセル化します。 |
| メソッドの概要 | |
|---|---|
Enumeration |
aliases()
このキーストアのすべての別名を一覧表示します。 |
boolean |
containsAlias(String alias)
このキーストアに、指定された別名が存在するかどうかを判定します。 |
void |
deleteEntry(String alias)
このキーストアから、指定された別名によって識別されるエントリを削除します。 |
Certificate |
getCertificate(String alias)
指定された別名に関連付けられた証明書を返します。 |
String |
getCertificateAlias(Certificate cert)
指定された証明書と一致する証明書がある最初のキーストアエントリの別名を返します。 |
Certificate[] |
getCertificateChain(String alias)
指定された別名に関連付けられた証明書チェーンを返します。 |
Date |
getCreationDate(String alias)
指定された別名によって識別されるエントリの作成日を返します。 |
static String |
getDefaultType()
Java セキュリティープロパティーファイルに指定されているデフォルトのキーストア型を返します。 |
static KeyStore |
getInstance(String type)
指定された型のキーストアオブジェクトを生成します。 |
static KeyStore |
getInstance(String type,
Provider provider)
指定されたプロバイダから、指定されたキーストア型のキーストアオブジェクトを生成します。 |
static KeyStore |
getInstance(String type,
String provider)
指定されたプロバイダから、指定されたキーストア型のキーストアオブジェクトを生成します。 |
Key |
getKey(String alias,
char[] password)
指定されたパスワードを使って、指定された別名に関連した鍵を復元し、その鍵を返します。 |
Provider |
getProvider()
このキーストアのプロバイダを返します。 |
String |
getType()
このキーストアの型を返します。 |
boolean |
isCertificateEntry(String alias)
指定された別名で識別されるエントリが「信頼できる証明書エントリ」である場合は true、そうでない場合は false を返します。 |
boolean |
isKeyEntry(String alias)
指定された別名で識別されるエントリが「鍵エントリ」である場合は true、そうでない場合は false を返します。 |
void |
load(InputStream stream,
char[] password)
指定された入力ストリームからこのキーストアをロードします。 |
void |
setCertificateEntry(String alias,
Certificate cert)
指定された別名に、指定された証明書を割り当てます。 |
void |
setKeyEntry(String alias,
byte[] key,
Certificate[] chain)
指定された別名に、すでに保護されている指定の鍵を割り当てます。 |
void |
setKeyEntry(String alias,
Key key,
char[] password,
Certificate[] chain)
指定された別名に指定された鍵を割り当て、指定されたパスワードでその鍵を保護します。 |
int |
size()
このキーストアのエントリ数を取得します。 |
void |
store(OutputStream stream,
char[] password)
指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
protected KeyStore(KeyStoreSpi keyStoreSpi,
Provider provider,
String type)
keyStoreSpi - プロバイダの実装provider - プロバイダtype - キーストア型| メソッドの詳細 |
|---|
public static KeyStore getInstance(String type)
throws KeyStoreException
指定された型のキーストアの実装をデフォルトのプロバイダパッケージが提供する場合は、その実装を含む KeyStore のインスタンスが返されます。要求されたキーストア型がデフォルトのパッケージで使用できない場合は、ほかのパッケージが検索されます。
type - キーストア型。
標準のキーストア型については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
KeyStoreException - 要求されたキーストア型がデフォルトのプロバイダパッケージでも、検索したほかのプロバイダパッケージでも使用できない場合
public static KeyStore getInstance(String type,
String provider)
throws KeyStoreException,
NoSuchProviderException
type - キーストア型。
標準のキーストア型については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ名
KeyStoreException - 要求されたキーストア型をそのプロバイダから取得できない場合
NoSuchProviderException - プロバイダが設定されていない場合
IllegalArgumentException - プロバイダ名が null または空の場合Provider
public static KeyStore getInstance(String type,
Provider provider)
throws KeyStoreException
provider を登録する必要はありません。
type - キーストア型。
標準のキーストア型については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ
KeyStoreException - 要求されたキーストア型をそのプロバイダから取得できない場合
IllegalArgumentException - provider が null の場合Providerpublic final Provider getProvider()
public final String getType()
public final Key getKey(String alias,
char[] password)
throws KeyStoreException,
NoSuchAlgorithmException,
UnrecoverableKeyException
alias - 別名password - 鍵を復元するためのパスワード
KeyStoreException - キーストアが初期化 (ロード) されていない場合
NoSuchAlgorithmException - 鍵を復元するためのアルゴリズムが見つからない場合
UnrecoverableKeyException - 指定されたパスワードが間違っている場合など、鍵を復元できない場合
public final Certificate[] getCertificateChain(String alias)
throws KeyStoreException
alias - 別名
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final Certificate getCertificate(String alias)
throws KeyStoreException
指定された別名によって「信頼できる証明書エントリ」が識別される場合は、そのエントリに関連付けられた証明書が返されます。指定された別名によって「鍵エントリ」が識別される場合は、そのエントリの証明書チェーンの最初の要素が返されます。そのエントリが証明書チェーンを含まない場合は、null が返されます。
alias - 別名
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final Date getCreationDate(String alias)
throws KeyStoreException
alias - 別名
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final void setKeyEntry(String alias,
Key key,
char[] password,
Certificate[] chain)
throws KeyStoreException
指定された鍵が java.security.PrivateKey 型である場合、その鍵には対応する公開鍵を証明する証明書チェーンが含まれていなければなりません。
指定された別名がすでに存在する場合は、それに関連したキーストア情報は、指定された鍵と証明書チェーンによってオーバーライドされます。
alias - 別名key - 別名に関連付ける鍵password - 鍵を保護するためのパスワードchain - 対応する公開鍵の証明書チェーン。指定された鍵が java.security.PrivateKey 型である場合にのみ必要
KeyStoreException - キーストアが初期化 (ロード) されていない場合、指定された鍵を保護できない場合、またはこの処理がなんらかの原因で失敗した場合
public final void setKeyEntry(String alias,
byte[] key,
Certificate[] chain)
throws KeyStoreException
保護された鍵が java.security.PrivateKey 型である場合、その鍵には対応する公開鍵を証明する証明書チェーンが含まれていなければなりません。
指定された別名がすでに存在する場合は、それに関連したキーストア情報は、指定された鍵と証明書チェーンによってオーバーライドされます。
alias - 別名key - 別名に関連付ける保護形式の鍵chain - 対応する公開鍵の証明書チェーン。保護された鍵が java.security.PrivateKey 型である場合にのみ有効
KeyStoreException - キーストアが初期化 (ロード) されていない場合、またはこの処理がなんらかの原因で失敗した場合
public final void setCertificateEntry(String alias,
Certificate cert)
throws KeyStoreException
指定された別名がこのキーストアに存在し、それによって「信頼できる証明書エントリ」が識別される場合は、それに関連付けられた証明書が、指定された証明書でオーバーライドされます。
alias - 別名cert - 証明書
KeyStoreException - キーストアが初期化されていない場合、指定された別名がすでに存在していてもそれによって「信頼できる証明書エントリ」が識別されない場合、またはこの処理がなんらかの原因で失敗した場合
public final void deleteEntry(String alias)
throws KeyStoreException
alias - 別名
KeyStoreException - キーストアが初期化されていない場合、またはエントリを削除できない場合
public final Enumeration aliases()
throws KeyStoreException
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final boolean containsAlias(String alias)
throws KeyStoreException
alias - 別名
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final int size()
throws KeyStoreException
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final boolean isKeyEntry(String alias)
throws KeyStoreException
alias - 判定対象となるキーストアエントリの別名
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final boolean isCertificateEntry(String alias)
throws KeyStoreException
alias - 判定対象となるキーストアエントリの別名
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final String getCertificateAlias(Certificate cert)
throws KeyStoreException
このメソッドは、指定された証明書を各キーストアエントリと照合します。処理対象のエントリが「信頼できる証明書エントリ」である場合は、指定された証明書がそのエントリの証明書と比較されます。処理対象のエントリが「鍵エントリ」である場合は、指定された証明書がそのエントリの証明書チェーン (存在する場合) の最初の要素と比較されます。
cert - 照合する証明書
KeyStoreException - キーストアが初期化 (ロード) されていない場合
public final void store(OutputStream stream,
char[] password)
throws KeyStoreException,
IOException,
NoSuchAlgorithmException,
CertificateException
stream - このキーストアを書き込む出力ストリームpassword - キーストアの整合性を検査するためのパスワード
KeyStoreException - キーストアが初期化 (ロード) されていない場合
IOException - データに入出力の問題があった場合
NoSuchAlgorithmException - 適切なデータ整合性アルゴリズムが見つからなかった場合
CertificateException - キーストアデータに含まれるどの証明書も格納できなかった場合
public final void load(InputStream stream,
char[] password)
throws IOException,
NoSuchAlgorithmException,
CertificateException
パスワードを指定すると、それを使ってキーストアデータの整合性が検査されます。パスワードを指定しないと、キーストアの整合性検査は行われません。
空のキーストアを作成する場合、あるいはキーストアがハードウェアトークンデバイス上に格納されているなどの理由でキーストアをストリームから初期化できない場合は、stream 引数として null を渡します。
このキーストアがすでにロードされている場合、このキーストアはふたたび初期化され、指定されたストリームからロードし直されます。
stream - キーストアのロード元の入力ストリーム。空のキーストアを作成する場合は nullpassword - キーストアの整合性検査用のパスワード (省略可能)
IOException - キーストアデータに入出力または形式の問題があった場合
NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
CertificateException - キーストアのどの証明書もロードできなかった場合public static final String getDefaultType()
デフォルトのキーストア型を使用するのは、アプリケーションで getInstance メソッドを呼び出すときに、ハードコードされたキーストア型を使用しない場合、およびユーザーが独自のキーストア型を指定しないときに、デフォルトのキーストア型を提供する場合です。
デフォルトのキーストア型を変更するには、Java セキュリティープロパティーファイルの keystore.type セキュリティープロパティーの値を目的のキーストア型に設定します。
|
Foundation 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。