クラスKeyStoreSpi
KeyStoreクラスのサービス・プロバイダ・インタフェース (SPI)を定義します。 特定のキーストア・タイプのキーストアの実装を提供する各暗号サービス・プロバイダは、このクラスのすべての抽象メソッドを実装する必要があります。 - 導入されたバージョン:
- 1.2
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract Enumeration<String> このキーストアのすべての別名を一覧表示します。abstract booleanengineContainsAlias(String alias) このキーストアに、指定された別名が存在するかどうかを判定します。abstract voidengineDeleteEntry(String alias) このキーストアから、指定された別名によって識別されるエントリを削除します。booleanengineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) 指定されたaliasのキーストアEntryが、指定されたentryClassのインスタンスまたはサブクラスであるかどうかを判定します。engineGetAttributes(String alias) 指定された別名に関連付けられた属性を取得します。abstract CertificateengineGetCertificate(String alias) 指定された別名に関連した証明書を返します。abstract String指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。abstract Certificate[]engineGetCertificateChain(String alias) 指定された別名に関連付けられている証明書チェーンを返します。abstract DateengineGetCreationDate(String alias) 指定された別名によって識別されるエントリの作成日を返します。engineGetEntry(String alias, KeyStore.ProtectionParameter protParam) 指定された保護パラメータを使用して、指定された別名に対するKeyStore.Entryを取得します。abstract KeyengineGetKey(String alias, char[] password) 指定されたパスワードを使って、指定された別名に関連したキーを復元し、そのキーを返します。abstract booleanengineIsCertificateEntry(String alias) 指定された別名で識別されるエントリがsetCertificateEntryへのコールによって作成されたか、TrustedCertificateEntryを使用してsetEntryへのコールによって作成された場合は、trueを返します。abstract booleanengineIsKeyEntry(String alias) 指定された別名で識別されるエントリがsetKeyEntryへのコールによって作成されたか、PrivateKeyEntryまたはSecretKeyEntryを使用してsetEntryへのコールによって作成された場合は、trueを返します。abstract voidengineLoad(InputStream stream, char[] password) 指定された入力ストリームからキーストアをロードします。void指定されたKeyStore.LoadStoreParameterを使用してキーストアをロードします。booleanengineProbe(InputStream stream) 指定された入力ストリームを調べて、この実装でサポートされているキーストアが含まれているかどうかを判断します。abstract voidengineSetCertificateEntry(String alias, Certificate cert) 指定された別名に、指定された証明書を割り当てます。voidengineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) KeyStore.Entryを指定された別名で保存します。abstract voidengineSetKeyEntry(String alias, byte[] key, Certificate[] chain) 指定された別名に、すでに保護されている指定のキーを割り当てます。abstract voidengineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain) 指定された別名に指定されたキーを割り当て、指定されたパスワードでそのキーを保護します。abstract intこのキーストアのエントリ数を取得します。abstract voidengineStore(OutputStream stream, char[] password) 指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。void指定されたKeyStore.LoadStoreParameterを使用してこのキーストアを格納します。
-
コンストラクタの詳細
-
KeyStoreSpi
public KeyStoreSpi()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
engineGetKey
public abstract Key engineGetKey(String alias, char[] password) throws NoSuchAlgorithmException, UnrecoverableKeyException 指定されたパスワードを使って、指定された別名に関連したキーを復元し、そのキーを返します。 このキーは、setKeyEntryを呼び出すか、あるいはPrivateKeyEntryまたはSecretKeyEntryを指定してsetEntryを呼び出すことでその別名に関連付けられている必要があります。- パラメータ:
alias- 別名password- キーを復元するためのパスワード- 戻り値:
- リクエストされたキー、または指定された別名が存在しないかキー関連のエントリを識別しない場合は
null。 - スロー:
NoSuchAlgorithmException- キーを復元するためのアルゴリズムが見つからない場合。UnrecoverableKeyException- 指定されたパスワードが間違っている場合など、キーを復元できない場合。
-
engineGetCertificateChain
public abstract Certificate[] engineGetCertificateChain(String alias) 指定された別名に関連付けられている証明書チェーンを返します。 この証明書チェーンは、setKeyEntryを呼び出すか、あるいはPrivateKeyEntryを指定してsetEntryを呼び出すことで別名に関連付けられている必要があります。- パラメータ:
alias- 別名- 戻り値:
- 証明書チェーン(ユーザーの証明書が最初に、ルート認証局が最後に指定された順序)、または指定された別名*が存在しないか、証明書チェーンが含まれていない場合は
null
-
engineGetCertificate
public abstract Certificate engineGetCertificate(String alias) 指定された別名に関連した証明書を返します。指定された別名によって識別されるエントリが、
setCertificateEntryを呼び出して作成されたエントリ、あるいはTrustedCertificateEntryを指定してsetEntryを呼び出して作成されたエントリのいずれかである場合、そのエントリ内に格納されている信頼できる証明書が返されます。指定された別名によって識別されるエントリが、
setKeyEntryを呼び出して作成されたエントリ、PrivateKeyEntryを指定してsetEntryを呼び出して作成されたエントリのいずれかである場合、そのエントリ内の証明書チェーン(存在する場合)の最初の要素が返されます。- パラメータ:
alias- 別名- 戻り値:
- 証明書、または指定された別名が存在しないか、証明書が含まれていない場合は
null。
-
engineGetCreationDate
-
engineSetKeyEntry
public abstract void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException 指定された別名に指定されたキーを割り当て、指定されたパスワードでそのキーを保護します。指定されたキーが
java.security.PrivateKeyタイプである場合、そのキーには対応する公開キーを証明する証明書チェーンが含まれていなければいけません。指定された別名がすでに存在する場合は、それに関連したキーストア情報は、指定されたキーと証明書チェーンによってオーバーライドされます。
- パラメータ:
alias- 別名key- 別名に関連したキーpassword- キーを保護するためのパスワードchain- 対応する公開キーの証明書チェーン。指定されたキーがjava.security.PrivateKeyタイプである場合にだけ必要。- スロー:
KeyStoreException- 指定されたキーを保護できない場合、またはこの処理がなんらかの原因で失敗した場合
-
engineSetKeyEntry
public abstract void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException 指定された別名に、すでに保護されている指定のキーを割り当てます。保護されたキーが
java.security.PrivateKeyタイプである場合、そのキーには対応する公開キーを証明する証明書チェーンが含まれていなければいけません。指定された別名がすでに存在する場合は、それに関連したキーストア情報は、指定されたキーと証明書チェーンによってオーバーライドされます。
- パラメータ:
alias- 別名key- 別名に関連した保護形式のキーchain- 保護されたキーがjava.security.PrivateKeyタイプである場合にだけ有効な、対応する公開キーの証明書チェーン。- スロー:
KeyStoreException- この操作が失敗した場合。
-
engineSetCertificateEntry
public abstract void engineSetCertificateEntry(String alias, Certificate cert) throws KeyStoreException 指定された別名に、指定された証明書を割り当てます。指定された別名によって識別されるエントリが、
setCertificateEntryを呼び出して作成された既存エントリ、あるいはTrustedCertificateEntryを指定してsetEntryを呼び出して作成された既存エントリのいずれかである場合、その既存エントリ内に格納されている信頼できる証明書が、指定された証明書でオーバーライドされます。- パラメータ:
alias- 別名cert- 証明書- スロー:
KeyStoreException- 指定された別名がすでに存在しており、そのエントリに信頼できる証明書が含まれていない場合、またはこの処理がなんらかの原因で失敗した場合。
-
engineDeleteEntry
public abstract void engineDeleteEntry(String alias) throws KeyStoreException このキーストアから、指定された別名によって識別されるエントリを削除します。- パラメータ:
alias- 別名- スロー:
KeyStoreException- エントリを削除できない場合。
-
engineAliases
-
engineContainsAlias
public abstract boolean engineContainsAlias(String alias) このキーストアに、指定された別名が存在するかどうかを判定します。- パラメータ:
alias- 別名- 戻り値:
- 別名が存在する場合は
true、それ以外の場合はfalse
-
engineSize
public abstract int engineSize()このキーストアのエントリ数を取得します。- 戻り値:
- このキーストアのエントリ数
-
engineIsKeyEntry
public abstract boolean engineIsKeyEntry(String alias) 指定された別名で識別されるエントリがsetKeyEntryへのコールによって作成されたか、PrivateKeyEntryまたはSecretKeyEntryを使用してsetEntryへのコールによって作成された場合は、trueを返します。- パラメータ:
alias- 判定対象となるキーストア・エントリの別名- 戻り値:
- 指定された別名で識別されるエントリがキー関連の場合は
true、それ以外の場合はfalse。
-
engineIsCertificateEntry
public abstract boolean engineIsCertificateEntry(String alias) 指定された別名で識別されるエントリがsetCertificateEntryへのコールによって作成されたか、TrustedCertificateEntryを使用してsetEntryへのコールによって作成された場合は、trueを返します。- パラメータ:
alias- 判定対象となるキーストア・エントリの別名- 戻り値:
- 指定された別名で識別されるエントリに信頼できる証明書が含まれている場合は
true、それ以外の場合はfalse。
-
engineGetCertificateAlias
public abstract String engineGetCertificateAlias(Certificate cert) 指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。このメソッドは、指定された証明書を各キーストア・エントリと照合します。 処理対象のエントリが、
setCertificateEntryを呼び出して作成されたエントリ、あるいはTrustedCertificateEntryを指定してsetEntryを呼び出して作成されたエントリである場合、指定された証明書はそのエントリの証明書と比較されます。処理対象のエントリが、
setKeyEntryを呼び出して作成されたエントリ、あるいはPrivateKeyEntryを指定してsetEntryを呼び出して作成されたエントリである場合、指定された証明書はそのエントリの証明書チェーンの最初の要素と比較されます。- パラメータ:
cert- 照合する証明書。- 戻り値:
- 証明書が一致する最初のエントリの別名、またはこのキーストアにそのようなエントリが存在しない場合は
null。
-
engineStore
public abstract void engineStore(OutputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException 指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。- パラメータ:
stream- このキーストアを書き込む出力ストリーム。password- キーストアの整合性を検査するためのパスワード キーストアが整合性チェックをサポートしていない場合、または整合性チェックを必要とする場合、nullである可能性があります。- スロー:
IOException- データに入出力の問題があった場合NoSuchAlgorithmException- 適切なデータ整合性アルゴリズムが見つからなかった場合CertificateException- キーストア・データに含まれるどの証明書も格納できなかった場合
-
engineStore
public void engineStore(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException 指定されたKeyStore.LoadStoreParameterを使用してこのキーストアを格納します。- 実装要件:
- デフォルトの実装では、
UnsupportedOperationExceptionがスローされます。 - パラメータ:
param- キーストアを格納する方法を指定するKeyStore.LoadStoreParameter(nullなど)- スロー:
IllegalArgumentException- 指定されたKeyStore.LoadStoreParameter入力が認識されない場合IOException- データに入出力の問題があった場合NoSuchAlgorithmException- 適切なデータ整合性アルゴリズムが見つからなかった場合CertificateException- キーストア・データに含まれるどの証明書も格納できなかった場合UnsupportedOperationException- 実装がこの操作をサポートしていない場合- 導入されたバージョン:
- 1.5
-
engineLoad
public abstract void engineLoad(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException 指定された入力ストリームからキーストアをロードします。パスワードを指定すると、キーストアがハードウェア・トークン・デバイス上に存在する場合などに、キーストアのロック解除やキーストア・データの整合性検査ができます。 整合性検査用のパスワードが指定されなかった場合、整合性検査は実行されません。
- パラメータ:
stream- キーストアのロード元の入力ストリームまたはnullpassword- キーストアの整合性検査用パスワード、キーストアのロック解除用パスワード、またはnull- スロー:
IOException- キーストア・データで入出力または形式に関する問題が発生した場合、パスワードが必要であるのに指定されなかった場合、または指定されたパスワードが間違っている場合。 パスワードが正しくなかったためにエラーが発生した場合、IOExceptionのcauseはUnrecoverableKeyExceptionNoSuchAlgorithmException- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException- キーストアのどの証明書もロードできなかった場合
-
engineLoad
public void engineLoad(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException 指定されたKeyStore.LoadStoreParameterを使用してキーストアをロードします。このキーストアがすでにロードされている場合、このキーストアは再び初期化され、指定されたストリームからロードし直されます。
- 実装要件:
- デフォルトの実装では、
KeyStore.LoadStoreParameterを調べてパスワードを抽出し、nullInputStreamとともにengineLoad(InputStream, char[])に渡します。KeyStore.LoadStoreParameterがnullの場合、パスワード・パラメータもnullになります。 それ以外の場合、KeyStore.LoadStoreParameterのKeyStore.ProtectionParameterは、パスワード・パラメータを抽出できるように、KeyStore.PasswordProtectionまたはPasswordCallbackをサポートするKeyStore.CallbackHandlerProtectionである必要があります。KeyStore.ProtectionParameterがこれらのクラスのいずれでもない場合は、NoSuchAlgorithmExceptionがスローされます。 - パラメータ:
param- キーストアのロード方法を指定したKeyStore.LoadStoreParameter。nullも指定可能- スロー:
IllegalArgumentException- 指定されたKeyStore.LoadStoreParameter入力が認識されない場合IOException- キーストア・データに入出力または形式の問題があった場合。ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptionのcauseはUnrecoverableKeyExceptionNoSuchAlgorithmException- キーストアの整合性を検査するアルゴリズムが見つからなかった場合CertificateException- キーストアのどの証明書もロードできなかった場合- 導入されたバージョン:
- 1.5
-
engineGetAttributes
public Set<KeyStore.Entry.Attribute> engineGetAttributes(String alias) 指定された別名に関連付けられた属性を取得します。- 実装要件:
- デフォルトの実装は、空の
Setを返します。 属性をサポートするKeyStoreSpi実装は、このメソッドをオーバーライドする必要があります。 - パラメータ:
alias- 別名- 戻り値:
- 変更できない属性の
Set。 指定された別名が存在しないか、別名に関連付けられた属性がない場合、このセットは空です。 このセットは、保護された属性を含むPrivateKeyEntryまたはSecretKeyEntryエントリに対しても空になる場合があります。 これらの保護された属性は、engineGetEntry(java.lang.String, java.security.KeyStore.ProtectionParameter)によって返される結果に移入する必要があり、KeyStore.Entry.getAttributes()メソッドをコールして取得できます。 - 導入されたバージョン:
- 18
-
engineGetEntry
public KeyStore.Entry engineGetEntry(String alias, KeyStore.ProtectionParameter protParam) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableEntryException 指定された保護パラメータを使用して、指定された別名に対するKeyStore.Entryを取得します。- パラメータ:
alias- この別名に対するKeyStore.Entryを取得するprotParam-Entryの保護に使用されるProtectionParameter。nullも指定可能- 戻り値:
- 指定された別名に対する
KeyStore.Entry。そのようなエントリが存在しない場合はnull - スロー:
KeyStoreException- 処理が失敗した場合NoSuchAlgorithmException- エントリを復元するためのアルゴリズムが見つからない場合UnrecoverableEntryException- 指定されたprotParamが不十分または無効である場合UnrecoverableKeyException- エントリがPrivateKeyEntryまたはSecretKeyEntryで、指定されたprotParamにキーの復元に必要な情報が含まれていない場合(たとえばパスワードが誤っている場合)- 導入されたバージョン:
- 1.5
-
engineSetEntry
public void engineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) throws KeyStoreException KeyStore.Entryを指定された別名で保存します。 指定された保護パラメータは、Entryを保護するために使用されます。指定された別名のエントリがすでに存在する場合、そのエントリはオーバーライドされます。
- パラメータ:
alias- この別名でKeyStore.Entryを保存entry- 保存するEntryprotParam-Entryの保護に使用されるProtectionParameter。nullも指定可能- スロー:
KeyStoreException- この操作が失敗した場合- 導入されたバージョン:
- 1.5
-
engineEntryInstanceOf
public boolean engineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass) 指定されたaliasのキーストアEntryが、指定されたentryClassのインスタンスまたはサブクラスであるかどうかを判定します。- パラメータ:
alias- 別名entryClass- エントリ・クラス- 戻り値:
- 指定された
aliasのキーストアEntryが、指定されたentryClassのインスタンスまたはサブクラスである場合はtrue、それ以外の場合はfalse - 導入されたバージョン:
- 1.5
-
engineProbe
public boolean engineProbe(InputStream stream) throws IOException 指定された入力ストリームを調べて、この実装でサポートされているキーストアが含まれているかどうかを判断します。- 実装要件:
- このメソッドは、デフォルトで
falseを返します。 キーストアの実装では、データ・ストリームを直接確認したり、他のコンテンツ検出メカニズムを使用するために、このメソッドをオーバーライドする必要があります。 - パラメータ:
stream- プローブされるキーストア・データ- 戻り値:
- キーストア・データがサポートされている場合は
true、サポートされていない場合はfalse - スロー:
IOException- キーストア・データにI/Oの問題がある場合。NullPointerException- ストリームがnullの場合。- 導入されたバージョン:
- 9
-