|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.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 セキュリティプロパティファイルに指定されているデフォルトのキーストア型、つまり「jks」(Java keystore の略語) という文字列を返します。 |
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 の場合Provider
public 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
型である場合、その鍵には対応する公開鍵を証明する証明連鎖が含まれていなければなりません。基本となるキーストアの実装の型が jks
の場合、key
は PKCS #8 標準の定義に従って EncryptedPrivateKeyInfo
として符号化されなければなりません。
指定された別名がすでに存在する場合は、それに関連したキーストア情報は、指定された鍵と証明連鎖によってオーバーライドされます。
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
を渡します。
KeyStore がすでにロードされている場合、KeyStore は再び初期化され指定されたストリームからロードし直されます。
stream
- キーストアのロード元の入力ストリーム。空のキーストアを作成する場合は nullpassword
- キーストアの完全性を検査するためのオプションのパスワード
IOException
- キーストアデータに入出力または形式の問題があった場合
NoSuchAlgorithmException
- キーストアの完全性を検査するアルゴリズムが見つからなかった場合
CertificateException
- キーストアのどの証明書もロードできなかった場合public static final String getDefaultType()
デフォルトのキーストア型を使用するのは、アプリケーションで getInstance
メソッドを呼び出すときに、ハードコードされたキーストア型を使用しない場合、およびユーザが独自のキーストア型を指定しないときに、デフォルトのキーストア型を提供する場合です。
デフォルトのキーストア型を変更するには、Java セキュリティプロパティファイルの keystore.type セキュリティプロパティの値を目的のキーストア型に設定します。
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.