KeyStore
は異なるタイプのエントリを管理します。 個々のエントリ・タイプはKeyStore.Entry
インタフェースを実装します。 次の3つの基本KeyStore.Entry
実装が提供されています。
- KeyStore.PrivateKeyEntry
このタイプのエントリには暗号化
PrivateKey
が格納されます。許可されないアクセスを防ぐために保護形式で格納できるようになっています。 また、対応する公開キーの証明書チェーンもいっしょに格納されます。秘密キーおよび証明書チェーンは、自動認証のための指定されたエンティティによって使用されます。 この認証が利用されるのは、ソフトウェア配布組織がソフトウェアのリリースやライセンス供与の一貫としてJARファイルに署名する場合などです。
- KeyStore.SecretKeyEntry
このタイプのエントリには暗号化
SecretKey
が格納されます。許可されないアクセスを防ぐために保護形式で格納できるようになっています。 - KeyStore.TrustedCertificateEntry
このタイプのエントリには別の組織に属する単一の公開キー
Certificate
が格納されます。 これは信頼できる証明書と呼ばれますが、それは、キーストアの所有者が、証明書内の公開キーが実際に証明書のサブジェクト (所有者)によって識別されたアイデンティティに属することを信頼するためです。このタイプのエントリは、他の相手を認証するのに使用できます。
キーストア内の各エントリは、「別名」文字列によって識別されます。 秘密キーとそれに関連付けられた証明書チェーンの場合は、これらの文字列はエンティティ自体が認証するというように、方法別に区別されます。 たとえば、エンティティが異なる証明書発行局を使ったり、異なる公開キー・アルゴリズムを使ったりして、エンティティ自体を認証することも可能です。
別名の大文字と小文字が区別されるかどうかは、実装によって異なります。 問題の発生を防ぐため、KeyStore内では、大文字と小文字の区別が異なるだけの別名を使用しないようにしてください。
キーストアが持続性があるかどうか、および持続性がある場合に使われるメカニズムは、ここでは指定されません。 これにより、重要な(秘密または非公開)キーを保護するためのさまざまな技術を使うことができます。 スマート・カードまたはその他の統合暗号化エンジン(SafeKeyper)を使うことも1つの方法です。また、ファイルなどのより単純なメカニズムを様々な形式で使うこともできます。
KeyStoreオブジェクトをリクエストする典型的な方法は、既存のキーストア・ファイルを指定すること、デフォルトの型に依存すること、および特定のキーストア型を提供することです。
- 既存のキーストア・ファイルを指定するには:
// get keystore password char[] password = getPassword(); // probe the keystore file and load the keystore entries KeyStore ks = KeyStore.getInstance(new File("keyStoreName"), password);
システムは、指定されたファイルを調べてキーストアの型を判断し、すでにロードされているエントリを持つキーストア実装を返します。 この手法を使用する場合、キーストアload
メソッドを呼び出す必要はありません。 - デフォルトのタイプを利用するには:
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
システムは、デフォルト・タイプのキーストア実装を返します。 - 特定のキーストア・タイプを指定するには:
KeyStore ks = KeyStore.getInstance("JKS");
システムは、環境内で利用可能な実装のうち、指定されたキーストア・タイプにもっとも適したものを返します。
キーストアにアクセスするには、事前にloaded
(インスタンシエーション中に既にロードされていない限り)でなければなりません。
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); // get user password and file input stream char[] password = getPassword(); try (FileInputStream fis = new FileInputStream("keyStoreName")) { ks.load(fis, password); }上記の
load
メソッドを使って空のキーストアを作成するには、InputStream
引数としてnull
を渡します。
キーストアのロードが完了すると、既存のエントリをキーストアから読み取ったり、新しいエントリをキーストアに書き込んだりできます。
KeyStore.ProtectionParameter protParam = new KeyStore.PasswordProtection(password); // get my private key KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) ks.getEntry("privateKeyAlias", protParam); PrivateKey myPrivateKey = pkEntry.getPrivateKey(); // save my secret key javax.crypto.SecretKey mySecretKey; KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(mySecretKey); ks.setEntry("secretKeyAlias", skEntry, protParam); // store away the keystore try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) { ks.store(fos, password); }なお、上記サンプル・コードで示したように、キーストアのロード、非公開キーエントリの保護、秘密キーエントリの保護、およびキーストアの格納には同じパスワードを使用できますが、異なるパスワードやその他の保護パラメータも使用できます。
Javaプラットフォームの実装は、すべて次の標準のKeyStore
タイプをサポートする必要があります。
PKCS12
- 導入されたバージョン:
- 1.2
- 関連項目:
-
ネストされたクラスのサマリー
修飾子と型クラス説明static class
インスタンス化すべきKeyStoreオブジェクトを記述したクラスです。static class
CallbackHandlerをカプセル化したProtectionParameterです。static interface
KeyStore
エントリの種類に対するマーカー・インタフェースです。static interface
static class
ProtectionParameter
のパスワードベースの実装です。static final class
特定のPrivateKey
と対応する証明書チェーンが格納されたKeyStore
エントリです。static interface
キーストアの保護パラメータに対するマーカー・インタフェースです。static final class
特定のSecretKey
が格納されたKeyStore
エントリです。static final class
信頼できるCertificate
が格納されたKeyStore
エントリです。 -
コンストラクタのサマリー
修飾子コンストラクタ説明protected
KeyStore
(KeyStoreSpi keyStoreSpi, Provider provider, String type) 指定されたタイプのKeyStoreオブジェクトを作成し、そのオブジェクトで、指定されたプロバイダの実装であるSPIオブジェクトをカプセル化します。 -
メソッドのサマリー
修飾子と型メソッド説明final Enumeration<String>
aliases()
このキーストアのすべての別名を一覧表示します。final boolean
containsAlias
(String alias) このキーストアに、指定された別名が存在するかどうかを判定します。final void
deleteEntry
(String alias) このキーストアから、指定された別名によって識別されるエントリを削除します。final boolean
entryInstanceOf
(String alias, Class<? extends KeyStore.Entry> entryClass) 指定されたalias
のキーストアEntry
が、指定されたentryClass
のインスタンスまたはサブクラスであるかどうかを判定します。final Certificate
getCertificate
(String alias) 指定された別名に関連した証明書を返します。final String
指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。final Certificate[]
getCertificateChain
(String alias) 指定された別名に関連付けられている証明書チェーンを返します。final Date
getCreationDate
(String alias) 指定された別名によって識別されるエントリの作成日を返します。static final String
keystore.type
セキュリティ・プロパティに指定されたデフォルトのキーストア・タイプを返します。該当するプロパティが存在しない場合は、文字列「jks」(「Java keystore」の略語)を返します。final KeyStore.Entry
getEntry
(String alias, KeyStore.ProtectionParameter protParam) 指定された保護パラメータを使用して、指定された別名に対するキーストアEntry
を取得します。static final KeyStore
getInstance
(File file, char[] password) 適切なキーストア型のロードされたキーストア・オブジェクトを返します。static final KeyStore
getInstance
(File file, KeyStore.LoadStoreParameter param) 適切なキーストア型のロードされたキーストア・オブジェクトを返します。static KeyStore
getInstance
(String type) 指定されたタイプのキーストア・オブジェクトを返します。static KeyStore
getInstance
(String type, String provider) 指定されたタイプのキーストア・オブジェクトを返します。static KeyStore
getInstance
(String type, Provider provider) 指定されたタイプのキーストア・オブジェクトを返します。final Key
指定されたパスワードを使って、指定された別名に関連したキーを復元し、そのキーを返します。final Provider
このキーストアのプロバイダを返します。final String
getType()
このキーストア・タイプを返します。final boolean
isCertificateEntry
(String alias) 指定された別名で識別されるエントリが、setCertificateEntry
を呼び出して作成されたエントリ、あるいはTrustedCertificateEntry
を指定してsetEntry
を呼び出して作成されたエントリのいずれかである場合、trueを返します。final boolean
isKeyEntry
(String alias) 指定された別名で識別されるエントリが、setKeyEntry
を呼び出して作成されたエントリ、あるいはPrivateKeyEntry
またはSecretKeyEntry
を指定してsetEntry
を呼び出して作成されたエントリのいずれかである場合、trueを返します。final void
load
(InputStream stream, char[] password) 指定された入力ストリームからこのキーストアをロードします。final void
load
(KeyStore.LoadStoreParameter param) 指定されたLoadStoreParameter
を使用してこのキーストアをロードします。final void
setCertificateEntry
(String alias, Certificate cert) 指定された別名に、指定された信頼できる証明書を割り当てます。final void
setEntry
(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) キーストアEntry
を指定された別名で保存します。final void
setKeyEntry
(String alias, byte[] key, Certificate[] chain) 指定された別名に、すでに保護されている指定のキーを割り当てます。final void
setKeyEntry
(String alias, Key key, char[] password, Certificate[] chain) 指定された別名に指定されたキーを割り当て、指定されたパスワードでそのキーを保護します。final int
size()
このキーストアのエントリ数を取得します。final void
store
(OutputStream stream, char[] password) 指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。final void
store
(KeyStore.LoadStoreParameter param) 指定されたLoadStoreParameter
を使用してこのキーストアを格納します。
-
コンストラクタの詳細
-
KeyStore
protected KeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type) 指定されたタイプのKeyStoreオブジェクトを作成し、そのオブジェクトで、指定されたプロバイダの実装であるSPIオブジェクトをカプセル化します。- パラメータ:
keyStoreSpi
- プロバイダの実装。provider
- プロバイダtype
- キーストア・タイプ。
-
-
メソッドの詳細
-
getInstance
public static KeyStore getInstance(String type) throws KeyStoreException 指定されたタイプのキーストア・オブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたタイプをサポートする最初のProviderのKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、
jdk.security.provider.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
type
- キーストアのタイプ。 標準のキーストア型については、「Javaセキュリティ標準アルゴリズム名指定」のKeyStoreセクションを参照してください。- 戻り値:
- 指定されたタイプのキーストア・オブジェクト
- 例外:
KeyStoreException
-Provider
が、指定された型のKeyStoreSpi
実装をサポートしていない場合NullPointerException
-type
がnull
である場合- 関連項目:
-
getInstance
public static KeyStore getInstance(String type, String provider) throws KeyStoreException, NoSuchProviderException 指定されたタイプのキーストア・オブジェクトを返します。指定されたプロバイダのKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
type
- キーストアのタイプ。 標準のキーストア型については、「Javaセキュリティ標準アルゴリズム名指定」のKeyStoreセクションを参照してください。provider
- プロバイダ名。- 戻り値:
- 指定されたタイプのキーストア・オブジェクト
- 例外:
IllegalArgumentException
- プロバイダ名がnull
または空の場合KeyStoreException
- 指定された型のKeyStoreSpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-type
がnull
である場合- 関連項目:
-
getInstance
public static KeyStore getInstance(String type, Provider provider) throws KeyStoreException 指定されたタイプのキーストア・オブジェクトを返します。指定されたProviderオブジェクトのKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
type
- キーストアのタイプ。 標準のキーストア型については、「Javaセキュリティ標準アルゴリズム名指定」のKeyStoreセクションを参照してください。provider
- プロバイダ- 戻り値:
- 指定されたタイプのキーストア・オブジェクト
- 例外:
IllegalArgumentException
- 指定されたプロバイダがnull
の場合KeyStoreException
- 指定された型のKeyStoreSpi
実装が、指定されたProvider
オブジェクトから使用できない場合NullPointerException
-type
がnull
である場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
getDefaultType
public static final String getDefaultType()keystore.type
セキュリティ・プロパティに指定されたデフォルトのキーストア・タイプを返します。該当するプロパティが存在しない場合は、文字列「jks」(「Java keystore」の略語)を返します。デフォルトのキーストア・タイプを使用するのは、アプリケーションで
getInstance
メソッドを呼び出すときに、ハードコードされたキーストア・タイプを使用しない場合、およびユーザーが独自のキーストア・タイプを指定しないときに、デフォルトのキーストア・タイプを提供する場合です。デフォルトのキーストア・タイプは、
keystore.type
セキュリティ・プロパティの値を目的のキーストア・タイプに設定することで変更できます。- 戻り値:
keystore.type
セキュリティ・プロパティに指定されたデフォルトのキーストア・タイプ、該当するプロパティが存在しない場合は文字列「jks」。- 関連項目:
-
getProvider
public final Provider getProvider()このキーストアのプロバイダを返します。- 戻り値:
- このキーストアのプロバイダ。
-
getType
public final String getType()このキーストア・タイプを返します。- 戻り値:
- このキーストア・タイプ。
-
getKey
public final Key getKey(String alias, char[] password) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException 指定されたパスワードを使って、指定された別名に関連したキーを復元し、そのキーを返します。 このキーは、setKeyEntry
を呼び出すか、あるいはPrivateKeyEntry
またはSecretKeyEntry
を指定してsetEntry
を呼び出すことでその別名に関連付けられている必要があります。- パラメータ:
alias
- 別名password
- キーを復元するためのパスワード- 戻り値:
- 要求されるキー。指定された別名が存在しないか、キー関連エントリを識別しない場合はnull。
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。NoSuchAlgorithmException
- キーを復元するためのアルゴリズムが見つからない場合。UnrecoverableKeyException
- 指定されたパスワードが間違っている場合など、キーを復元できない場合。
-
getCertificateChain
public final Certificate[] getCertificateChain(String alias) throws KeyStoreException 指定された別名に関連付けられている証明書チェーンを返します。 この証明書チェーンは、setKeyEntry
を呼び出すか、あるいはPrivateKeyEntry
を指定してsetEntry
を呼び出すことで別名に関連付けられている必要があります。- パラメータ:
alias
- 別名- 戻り値:
- 証明書チェーン。順番は、ユーザー証明書が最初で、0個以上の証明書発行局が続きます。指定された別名が存在しないか、証明書チェーンを含んでいない場合はnull
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
getCertificate
public final Certificate getCertificate(String alias) throws KeyStoreException 指定された別名に関連した証明書を返します。指定された別名によって識別されるエントリが、
setCertificateEntry
を呼び出して作成されたエントリ、あるいはTrustedCertificateEntry
を指定してsetEntry
を呼び出して作成されたエントリのいずれかである場合、そのエントリ内に格納されている信頼できる証明書が返されます。指定された別名によって識別されるエントリが、
setKeyEntry
を呼び出して作成されたエントリ、あるいはPrivateKeyEntry
を指定してsetEntry
を呼び出して作成されたエントリのいずれかである場合、そのエントリ内の証明書チェーンの最初の要素が返されます。- パラメータ:
alias
- 別名- 戻り値:
- 証明書。指定された別名が存在しないか、または証明書を含まない場合はnull。
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
getCreationDate
public final Date getCreationDate(String alias) throws KeyStoreException 指定された別名によって識別されるエントリの作成日を返します。- パラメータ:
alias
- 別名- 戻り値:
- このエントリの作成日。指定された別名が存在しない場合はnull
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
setKeyEntry
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
- キーストアが初期化(ロード)されていない場合、指定されたキーを保護できない場合、またはこの処理がなんらかの原因で失敗した場合
-
setKeyEntry
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
- キーストアが初期化(ロード)されていない場合、またはこの処理がなんらかの原因で失敗した場合。
-
setCertificateEntry
public final void setCertificateEntry(String alias, Certificate cert) throws KeyStoreException 指定された別名に、指定された信頼できる証明書を割り当てます。指定された別名によって識別されるエントリが、
setCertificateEntry
を呼び出して作成された既存エントリ、あるいはTrustedCertificateEntry
を指定してsetEntry
を呼び出して作成された既存エントリのいずれかである場合、その既存エントリ内に格納されている信頼できる証明書が、指定された証明書でオーバーライドされます。- パラメータ:
alias
- 別名cert
- 証明書- 例外:
KeyStoreException
- キーストアが初期化されていない場合、指定された別名がすでに存在していてもそれによって識別されるエントリが信頼できる証明書を含んでいない場合、またはこの処理がなんらかの原因で失敗した場合。
-
deleteEntry
public final void deleteEntry(String alias) throws KeyStoreException このキーストアから、指定された別名によって識別されるエントリを削除します。- パラメータ:
alias
- 別名- 例外:
KeyStoreException
- キーストアが初期化されていない場合、またはエントリを削除できない場合。
-
aliases
public final Enumeration<String> aliases() throws KeyStoreExceptionこのキーストアのすべての別名を一覧表示します。- 戻り値:
- 別名の列挙
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
containsAlias
public final boolean containsAlias(String alias) throws KeyStoreException このキーストアに、指定された別名が存在するかどうかを判定します。- パラメータ:
alias
- 別名- 戻り値:
- 別名が存在する場合はtrue、そうでない場合はfalse
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
size
public final int size() throws KeyStoreExceptionこのキーストアのエントリ数を取得します。- 戻り値:
- このキーストアのエントリ数
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
isKeyEntry
public final boolean isKeyEntry(String alias) throws KeyStoreException 指定された別名で識別されるエントリが、setKeyEntry
を呼び出して作成されたエントリ、あるいはPrivateKeyEntry
またはSecretKeyEntry
を指定してsetEntry
を呼び出して作成されたエントリのいずれかである場合、trueを返します。- パラメータ:
alias
- 判定対象となるキーストア・エントリの別名- 戻り値:
- 指定された別名で識別されるエントリがキー関連エントリである場合はtrue、そうでない場合はfalse。
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
isCertificateEntry
public final boolean isCertificateEntry(String alias) throws KeyStoreException 指定された別名で識別されるエントリが、setCertificateEntry
を呼び出して作成されたエントリ、あるいはTrustedCertificateEntry
を指定してsetEntry
を呼び出して作成されたエントリのいずれかである場合、trueを返します。- パラメータ:
alias
- 判定対象となるキーストア・エントリの別名- 戻り値:
- 指定された別名で識別されるエントリに信頼できる証明書エントリが含まれている場合はtrue、そうでない場合はfalse。
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
getCertificateAlias
public final String getCertificateAlias(Certificate cert) throws KeyStoreException 指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。このメソッドは、指定された証明書を各キーストア・エントリと照合します。 処理対象のエントリが、
setCertificateEntry
を呼び出して作成されたエントリ、あるいはTrustedCertificateEntry
を指定してsetEntry
を呼び出して作成されたエントリである場合、指定された証明書はそのエントリの証明書と比較されます。処理対象のエントリが、
setKeyEntry
を呼び出して作成されたエントリ、あるいはPrivateKeyEntry
を指定してsetEntry
を呼び出して作成されたエントリである場合、指定された証明書はそのエントリの証明書チェーンの最初の要素と比較されます。- パラメータ:
cert
- 照合する証明書。- 戻り値:
- 一致する証明書を含む最初のエントリの別名。そのようなエントリがこのキーストアに存在しない場合はnull。
- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。
-
store
public final void store(OutputStream stream, char[] password) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException 指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。- パラメータ:
stream
- このキーストアを書き込む出力ストリーム。password
- キーストアの整合性を検査するためのパスワード- 例外:
KeyStoreException
- キーストアが初期化(ロード)されていない場合。IOException
- データに入出力の問題があった場合NoSuchAlgorithmException
- 適切なデータ整合性アルゴリズムが見つからなかった場合CertificateException
- キーストア・データに含まれるどの証明書も格納できなかった場合
-
store
public final void store(KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException 指定されたLoadStoreParameter
を使用してこのキーストアを格納します。- パラメータ:
param
- キーストアの格納方法を指定したLoadStoreParameter
。null
も指定可能- 例外:
IllegalArgumentException
- 指定されたLoadStoreParameter
入力が認識されない場合KeyStoreException
- キーストアが初期化(ロード)されていない場合IOException
- データに入出力の問題があった場合NoSuchAlgorithmException
- 適切なデータ整合性アルゴリズムが見つからなかった場合CertificateException
- キーストア・データに含まれるどの証明書も格納できなかった場合UnsupportedOperationException
- この操作がサポートされていない場合- 導入されたバージョン:
- 1.5
-
load
public final void load(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException 指定された入力ストリームからこのキーストアをロードします。パスワードを指定すると、キーストアがハードウェア・トークン・デバイス上に存在する場合などに、キーストアのロック解除やキーストア・データの整合性検査ができます。 整合性検査用のパスワードが指定されなかった場合、整合性検査は実行されません。
空のキーストアを作成する場合、あるいはキーストアをストリームから初期化できない場合は、
stream
引数としてnull
を渡します。このキーストアがすでにロードされている場合、このキーストアは再び初期化され、指定されたストリームからロードし直されます。
- パラメータ:
stream
- キーストアのロード元の入力ストリームまたはnull
password
- キーストアの整合性検査用パスワード、キーストアのロック解除用パスワード、またはnull
- 例外:
IOException
- キーストア・データで入出力または形式に関する問題が発生した場合、パスワードが必要であるのに指定されなかった場合、または指定されたパスワードが間違っている場合。 パスワードが正しくなかったためにエラーが発生した場合、IOException
のcause
はUnrecoverableKeyException
NoSuchAlgorithmException
- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException
- キーストアのどの証明書もロードできなかった場合
-
load
public final void load(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException 指定されたLoadStoreParameter
を使用してこのキーストアをロードします。このキーストアがすでにロードされている場合、このキーストアは再び初期化され、指定されたストリームからロードし直されます。
- パラメータ:
param
- キーストアのロード方法を指定したLoadStoreParameter
。null
も指定可能- 例外:
IllegalArgumentException
- 指定されたLoadStoreParameter
入力が認識されない場合IOException
- キーストア・データに入出力または形式の問題があった場合。ProtectionParameter
が正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOException
のcause
はUnrecoverableKeyException
NoSuchAlgorithmException
- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException
- キーストアのどの証明書もロードできなかった場合- 導入されたバージョン:
- 1.5
-
getEntry
public final KeyStore.Entry getEntry(String alias, KeyStore.ProtectionParameter protParam) throws NoSuchAlgorithmException, UnrecoverableEntryException, KeyStoreException 指定された保護パラメータを使用して、指定された別名に対するキーストアEntry
を取得します。- パラメータ:
alias
- この別名に対するキーストアEntry
を取得protParam
-Entry
の保護に使用されるProtectionParameter
。null
も指定可能- 戻り値:
- 指定された別名に対するキーストア
Entry
。そのようなエントリが存在しない場合はnull
- 例外:
NullPointerException
-alias
がnull
である場合NoSuchAlgorithmException
- エントリを復元するためのアルゴリズムが見つからない場合UnrecoverableEntryException
- 指定されたprotParam
が不十分または無効である場合UnrecoverableKeyException
- エントリがPrivateKeyEntry
またはSecretKeyEntry
で、指定されたprotParam
にキーの復元に必要な情報が含まれていない場合(たとえばパスワードが誤っている場合)KeyStoreException
- キーストアが初期化(ロード)されていない場合。- 導入されたバージョン:
- 1.5
- 関連項目:
-
setEntry
public final void setEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) throws KeyStoreException キーストアEntry
を指定された別名で保存します。 保護パラメータは、Entry
を保護するために使用されます。指定された別名のエントリがすでに存在する場合、そのエントリはオーバーライドされます。
- パラメータ:
alias
- この別名でキーストアEntry
を保存entry
- 保存するEntry
protParam
-Entry
の保護に使用されるProtectionParameter
。null
も指定可能- 例外:
NullPointerException
-alias
またはentry
がnull
の場合KeyStoreException
- キーストアが初期化(ロード)されていない場合、またはこの処理がなんらかの原因で失敗した場合- 導入されたバージョン:
- 1.5
- 関連項目:
-
entryInstanceOf
public final boolean entryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) throws KeyStoreException 指定されたalias
のキーストアEntry
が、指定されたentryClass
のインスタンスまたはサブクラスであるかどうかを判定します。- パラメータ:
alias
- 別名entryClass
- エントリ・クラス- 戻り値:
- 指定された
alias
のキーストアEntry
が、指定されたentryClass
のインスタンスまたはサブクラスである場合はtrue、そうでない場合はfalse - 例外:
NullPointerException
-alias
またはentryClass
がnull
の場合KeyStoreException
- キーストアが初期化(ロード)されていない場合- 導入されたバージョン:
- 1.5
-
getInstance
public static final KeyStore getInstance(File file, char[] password) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException 適切なキーストア型のロードされたキーストア・オブジェクトを返します。 最初に、指定されたファイルをプロービングすることによってキーストアの型が決定されます。 次に、キーストア・オブジェクトは、そのファイルからのデータを使用してインスタンス化され、ロードされます。パスワードを指定すると、キーストアがハードウェア・トークン・デバイス上に存在する場合などに、キーストアのロック解除やキーストア・データの整合性検査ができます。 整合性検査用のパスワードが指定されなかった場合、整合性検査は実行されません。
このメソッドは、登録されたセキュリティprovidersのリストを、最も優先されるプロバイダから順に検索します。 プロバイダがサポートする各
KeyStoreSpi
実装に対して、engineProbe
メソッドを呼び出して、指定されたキーストアがサポートされているかどうかを判断します。 指定されたファイルをサポートする最初のプロバイダからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
file
- キーストア・ファイルpassword
-null
のようなキーストアのパスワード- 戻り値:
- キーストア・データがロードされたキーストア・オブジェクト
- 例外:
KeyStoreException
- 指定されたキーストア・ファイルのKeyStoreSpi実装をプロバイダがサポートしていない場合。IOException
- キーストア・データで入出力または形式に関する問題が発生した場合、パスワードが必要であるのに指定されなかった場合、または指定されたパスワードが間違っている場合。 パスワードが正しくなかったためにエラーが発生した場合、IOException
のcause
はUnrecoverableKeyException
NoSuchAlgorithmException
- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException
- キーストアのどの証明書もロードできなかった場合IllegalArgumentException
- ファイルが存在しないか、通常のファイルを参照していない場合。NullPointerException
- fileがnull
の場合SecurityException
- セキュリティ・マネージャが存在し、SecurityManager.checkRead(java.io.FileDescriptor)
メソッドが指定されたファイルへの読み取りアクセスを拒否した場合。- 導入されたバージョン:
- 9
- 関連項目:
-
getInstance
public static final KeyStore getInstance(File file, KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException 適切なキーストア型のロードされたキーストア・オブジェクトを返します。 最初に、指定されたファイルをプロービングすることによってキーストアの型が決定されます。 次に、キーストア・オブジェクトは、そのファイルからのデータを使用してインスタンス化され、ロードされます。 keystoreデータのロックを解除する方法や完全性チェックを行う方法を指定するLoadStoreParameter
を提供することができます。このメソッドは、登録されたセキュリティprovidersのリストを、最も優先されるプロバイダから順に検索します。 プロバイダがサポートする各
KeyStoreSpi
実装に対して、engineProbe
メソッドを呼び出して、指定されたキーストアがサポートされているかどうかを判断します。 指定されたファイルをサポートする最初のプロバイダからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
file
- キーストア・ファイルparam
- キーストアのロード方法を指定したLoadStoreParameter
。null
も指定可能- 戻り値:
- キーストア・データがロードされたキーストア・オブジェクト
- 例外:
KeyStoreException
- 指定されたキーストア・ファイルのKeyStoreSpi実装をプロバイダがサポートしていない場合。IOException
- キーストア・データに入出力または形式の問題があった場合。ProtectionParameter
が正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOException
のcause
はUnrecoverableKeyException
NoSuchAlgorithmException
- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException
- キーストアのどの証明書もロードできなかった場合IllegalArgumentException
- ファイルが存在しないか、通常のファイルを参照していない場合、またはparamが認識されていない場合。NullPointerException
- fileがnull
の場合SecurityException
- セキュリティ・マネージャが存在し、SecurityManager.checkRead(java.io.FileDescriptor)
メソッドが指定されたファイルへの読み取りアクセスを拒否した場合。- 導入されたバージョン:
- 9
- 関連項目:
-