クラスKeyStore
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.PasswordProtection protParam =
new KeyStore.PasswordProtection(password);
try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
// 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
ks.store(fos, password);
} finally {
protParam.destroy();
}
なお、上記サンプル・コードで示したように、キーストアのロード、非公開キーエントリの保護、秘密キーエントリの保護、およびキーストアの格納には同じパスワードを使用できますが、異なるパスワードやその他の保護パラメータも使用できます。
Javaプラットフォームの実装は、すべて次の標準のKeyStoreタイプをサポートする必要があります。
PKCS12
- 導入されたバージョン:
- 1.2
- 関連項目:
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static classインスタンス化予定のKeyStoreオブジェクトの説明。static classCallbackHandlerをカプセル化するProtectionParameter。static interfaceKeyStoreエントリの種類に対するマーカー・インタフェースです。static interfacestatic classProtectionParameterのパスワードベースの実装です。static final class特定のPrivateKeyと対応する証明書チェーンが格納されたKeyStoreエントリです。static interfaceキーストアの保護パラメータに対するマーカー・インタフェースです。static final class特定のSecretKeyが格納されたKeyStoreエントリです。static final class信頼できるCertificateが格納されたKeyStoreエントリです。 -
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedKeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type) 指定されたタイプのKeyStoreオブジェクトを作成し、指定されたプロバイダ実装(SPIオブジェクト)をカプセル化します。 -
メソッドのサマリー
修飾子と型メソッド説明final Enumeration<String> aliases()このキーストアのすべての別名を一覧表示します。final booleancontainsAlias(String alias) このキーストアに、指定された別名が存在するかどうかを判定します。final voiddeleteEntry(String alias) このキーストアから、指定された別名によって識別されるエントリを削除します。final booleanentryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) 指定されたaliasのキーストアEntryが、指定されたentryClassのインスタンスまたはサブクラスであるかどうかを判定します。final Set<KeyStore.Entry.Attribute> getAttributes(String alias) 指定された別名に関連付けられた属性を取得します。final CertificategetCertificate(String alias) 指定された別名に関連した証明書を返します。final String指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。final Certificate[]getCertificateChain(String alias) 指定された別名に関連付けられている証明書チェーンを返します。final DategetCreationDate(String alias) 指定された別名によって識別されるエントリの作成日を返します。static final Stringkeystore.typeセキュリティ・プロパティで指定されたデフォルトのキーストア・タイプ、またはそのようなプロパティが存在しない場合は文字列"pkcs12"を返します。final KeyStore.EntrygetEntry(String alias, KeyStore.ProtectionParameter protParam) 指定された保護パラメータを使用して、指定された別名に対するキーストアEntryを取得します。static final KeyStoregetInstance(File file, char[] password) 適切なキーストア・タイプのロードされたキーストア・オブジェクトを返します。static final KeyStoregetInstance(File file, KeyStore.LoadStoreParameter param) 適切なキーストア・タイプのロードされたキーストア・オブジェクトを返します。static KeyStoregetInstance(String type) 指定されたタイプのKeyStoreオブジェクトを返します。static KeyStoregetInstance(String type, String provider) 指定されたタイプのKeyStoreオブジェクトを返します。static KeyStoregetInstance(String type, Provider provider) 指定されたタイプのKeyStoreオブジェクトを返します。final Key指定されたパスワードを使って、指定された別名に関連したキーを復元し、そのキーを返します。final Providerこのキーストアのプロバイダを返します。final StringgetType()このキーストア・タイプを返します。final booleanisCertificateEntry(String alias) 指定された別名で識別されるエントリがsetCertificateEntryへのコールによって作成されたか、TrustedCertificateEntryを使用してsetEntryへのコールによって作成された場合は、trueを返します。final booleanisKeyEntry(String alias) 指定された別名で識別されるエントリがsetKeyEntryへのコールによって作成されたか、PrivateKeyEntryまたはSecretKeyEntryを使用してsetEntryへのコールによって作成された場合は、trueを返します。final voidload(InputStream stream, char[] password) 指定された入力ストリームからこのキーストアをロードします。final voidload(KeyStore.LoadStoreParameter param) 指定されたLoadStoreParameterを使用してこのキーストアをロードします。final voidsetCertificateEntry(String alias, Certificate cert) 指定された別名に、指定された信頼できる証明書を割り当てます。final voidsetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) キーストアEntryを指定された別名で保存します。final voidsetKeyEntry(String alias, byte[] key, Certificate[] chain) 指定された別名に、すでに保護されている指定のキーを割り当てます。final voidsetKeyEntry(String alias, Key key, char[] password, Certificate[] chain) 指定された別名に指定されたキーを割り当て、指定されたパスワードでそのキーを保護します。final intsize()このキーストアのエントリ数を取得します。final voidstore(OutputStream stream, char[] password) 指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。final voidstore(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 指定されたタイプのKeyStoreオブジェクトを返します。このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたタイプをサポートする最初のプロバイダから
KeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
type- キーストアのタイプ。 標準キーストア・タイプの詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyStoreの項を参照してください。- 戻り値:
- 指定されたタイプのキーストア・オブジェクト
- 例外:
KeyStoreException- 指定したタイプのKeyStoreSpi実装をサポートするプロバイダがない場合NullPointerException-typeがnullである場合- 関連項目:
-
getInstance
public static KeyStore getInstance(String type, String provider) throws KeyStoreException, NoSuchProviderException 指定されたタイプのKeyStoreオブジェクトを返します。指定したプロバイダから
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 指定されたタイプのKeyStoreオブジェクトを返します。指定されたプロバイダ・オブジェクトから
KeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。 指定したプロバイダ・オブジェクトは、プロバイダ・リストに登録する必要はありません。- パラメータ:
type- キーストアのタイプ。 標準キーストア・タイプの詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyStoreの項を参照してください。provider- プロバイダ- 戻り値:
- 指定されたタイプのキーストア・オブジェクト
- 例外:
IllegalArgumentException- 指定されたプロバイダがnullの場合KeyStoreException- 指定された型のKeyStoreSpi実装が、指定されたProviderオブジェクトから使用できない場合NullPointerException-typeがnullである場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
getDefaultType
public static final String getDefaultType()keystore.typeセキュリティ・プロパティで指定されたデフォルトのキーストア・タイプ、またはそのようなプロパティが存在しない場合は文字列"pkcs12"を返します。デフォルトのキーストア・タイプを使用するのは、アプリケーションで
getInstanceメソッドを呼び出すときに、ハードコードされたキーストア・タイプを使用しない場合、およびユーザーが独自のキーストア・タイプを指定しないときに、デフォルトのキーストア・タイプを提供する場合です。デフォルトのキーストア・タイプは、
keystore.typeセキュリティ・プロパティの値を目的のキーストア・タイプに設定することで変更できます。- 戻り値:
keystore.typeセキュリティ・プロパティで指定されたデフォルトのキーストア・タイプ、またはそのようなプロパティが存在しない場合は文字列"pkcs12"。- 関連項目:
-
getProvider
-
getType
-
getAttributes
public final Set<KeyStore.Entry.Attribute> getAttributes(String alias) throws KeyStoreException 指定された別名に関連付けられた属性を取得します。- パラメータ:
alias- 別名- 戻り値:
- 変更できない属性の
Set。 このセットは、KeyStoreSpi実装がKeyStoreSpi.engineGetAttributes(String)をオーバーライドしていない場合、または指定された別名が存在しない場合、または別名に関連付けられた属性がない場合、空になります。 このセットは、保護された属性を含むPrivateKeyEntryまたはSecretKeyEntryエントリに対しても空であり、エントリが抽出された後にKeyStore.Entry.getAttributes()メソッドを介してのみ使用できます。 - 例外:
KeyStoreException- キーストアが初期化(ロード)されていない場合。NullPointerException-aliasがnullである場合- 導入されたバージョン:
- 18
-
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- 別名- 戻り値:
- 証明書チェーン(ユーザーの証明書が最初に順序付けられ、その後にゼロ以上の認証局が続きます)、または指定した別名が存在しないか、証明書チェーンが含まれていない場合は
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- キーストアの整合性を検査するためのパスワード キーストアが整合性チェックをサポートしていない場合、または整合性チェックを必要とする場合、nullである可能性があります。- 例外:
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- キーストアのロード元の入力ストリームまたはnullpassword- キーストアの整合性検査用パスワード、キーストアのロック解除用パスワード、またはnull- 例外:
IOException- キーストア・データで入出力または形式に関する問題が発生した場合、パスワードが必要であるのに指定されなかった場合、または指定されたパスワードが間違っている場合。 パスワードが正しくなかったためにエラーが発生した場合、IOExceptionのcauseはUnrecoverableKeyExceptionNoSuchAlgorithmException- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException- キーストアのどの証明書もロードできなかった場合
-
load
public final void load(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException 指定されたLoadStoreParameterを使用してこのキーストアをロードします。この
KeyStoreがすでにロードされている場合は、再初期化され、指定されたパラメータから再度ロードされます。- パラメータ:
param- キーストアのロード方法を指定したLoadStoreParameter。nullも指定可能- 例外:
IllegalArgumentException- 指定されたLoadStoreParameter入力が認識されない場合IOException- キーストア・データに入出力または形式の問題があった場合。ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptionのcauseはUnrecoverableKeyExceptionNoSuchAlgorithmException- キーストアの整合性を検査するアルゴリズムが見つからなかった場合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- 保存するEntryprotParam-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はUnrecoverableKeyExceptionNoSuchAlgorithmException- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException- キーストアのどの証明書もロードできなかった場合IllegalArgumentException- ファイルが存在しないか、通常のファイルを参照していない場合。NullPointerException- ファイルがnullの場合。SecurityException- セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.io.FileDescriptor)メソッドが指定されたファイルへの読取りアクセスを拒否した場合。- 導入されたバージョン:
- 9
- 関連項目:
-
getInstance
public static final KeyStore getInstance(File file, KeyStore.LoadStoreParameter param) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException 適切なキーストア・タイプのロードされたキーストア・オブジェクトを返します。 最初に、キーストア・タイプは、指定されたファイルをプローブして決定されます。 次に、キーストア・オブジェクトは、そのファイルのデータを使用してインスタンス化およびロードされます。 キーストア・データのロックを解除する方法、または整合性チェックを実行する方法を指定するLoadStoreParameterを指定できます。このメソッドは、最も優先されるプロバイダから開始して、登録されているセキュリティprovidersのリストを横断します。 プロバイダでサポートされている
KeyStoreSpi実装ごとに、engineProbeメソッドを起動して、指定したキーストアがサポートされているかどうかを確認します。 指定されたファイルをサポートする最初のプロバイダからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- パラメータ:
file- キーストア・ファイルparam- キーストアのロード方法を指定したLoadStoreParameter。nullも指定可能- 戻り値:
- キーストア・データがロードされたキーストア・オブジェクト
- 例外:
KeyStoreException- 指定したキーストア・ファイルのKeyStoreSpi実装をサポートするプロバイダがない場合。IOException- キーストア・データに入出力または形式の問題があった場合。ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptionのcauseはUnrecoverableKeyExceptionNoSuchAlgorithmException- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException- キーストアのどの証明書もロードできなかった場合IllegalArgumentException- ファイルが存在しない場合、または通常のファイルを参照しない場合、またはパラメータが認識されない場合。NullPointerException- ファイルがnullの場合。SecurityException- セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.io.FileDescriptor)メソッドが指定されたファイルへの読取りアクセスを拒否した場合。- 導入されたバージョン:
- 9
- 関連項目:
-