モジュール java.base
パッケージ java.security

クラスKeyStoreSpi

java.lang.Object
java.security.KeyStoreSpi

public abstract class KeyStoreSpi
extends Object
このクラスは、KeyStoreクラスのサービス・プロバイダ・インタフェース (SPI)を定義します。 特定のキーストア・タイプのキーストアの実装を提供する各暗号サービス・プロバイダは、このクラスのすべての抽象メソッドを実装する必要があります。
導入されたバージョン:
1.2
関連項目:
KeyStore
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    KeyStoreSpi()  
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    abstract Enumeration<String> engineAliases()
    このキーストアのすべての別名を一覧表示します。
    abstract boolean engineContainsAlias​(String alias)
    このキーストアに、指定された別名が存在するかどうかを判定します。
    abstract void engineDeleteEntry​(String alias)
    このキーストアから、指定された別名によって識別されるエントリを削除します。
    boolean engineEntryInstanceOf​(String alias, Class<? extends KeyStore.Entry> entryClass)
    指定されたaliasのキーストアEntryが、指定されたentryClassのインスタンスまたはサブクラスであるかどうかを判定します。
    abstract Certificate engineGetCertificate​(String alias)
    指定された別名に関連した証明書を返します。
    abstract String engineGetCertificateAlias​(Certificate cert)
    指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。
    abstract Certificate[] engineGetCertificateChain​(String alias)
    指定された別名に関連付けられた証明書チェーンを返します。
    abstract Date engineGetCreationDate​(String alias)
    指定された別名によって識別されるエントリの作成日を返します。
    KeyStore.Entry engineGetEntry​(String alias, KeyStore.ProtectionParameter protParam)
    指定された保護パラメータを使用して、指定された別名に対するKeyStore.Entryを取得します。
    abstract Key engineGetKey​(String alias, char[] password)
    指定されたパスワードを使って、指定された別名に関連したキーを復元し、そのキーを返します。
    abstract boolean engineIsCertificateEntry​(String alias)
    指定された別名で識別されるエントリが、setCertificateEntryを呼び出して作成されたエントリ、あるいはTrustedCertificateEntryを指定してsetEntryを呼び出して作成されたエントリのいずれかである場合、trueを返します。
    abstract boolean engineIsKeyEntry​(String alias)
    指定された別名で識別されるエントリが、setKeyEntryを呼び出して作成されたエントリ、あるいはPrivateKeyEntryまたはSecretKeyEntryを指定してsetEntryを呼び出して作成されたエントリのいずれかである場合、trueを返します。
    abstract void engineLoad​(InputStream stream, char[] password)
    指定された入力ストリームからキーストアをロードします。
    void engineLoad​(KeyStore.LoadStoreParameter param)
    指定されたKeyStore.LoadStoreParameterを使用してキーストアをロードします。
    boolean engineProbe​(InputStream stream)
    指定された入力ストリームを調査し、この実装でサポートされているキーストアが含まれているかどうかを判定します。
    abstract void engineSetCertificateEntry​(String alias, Certificate cert)
    指定された別名に、指定された証明書を割り当てます。
    void engineSetEntry​(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
    KeyStore.Entryを指定された別名で保存します。
    abstract void engineSetKeyEntry​(String alias, byte[] key, Certificate[] chain)
    指定された別名に、すでに保護されている指定のキーを割り当てます。
    abstract void engineSetKeyEntry​(String alias, Key key, char[] password, Certificate[] chain)
    指定された別名に指定されたキーを割り当て、指定されたパスワードでそのキーを保護します。
    abstract int engineSize()
    このキーストアのエントリ数を取得します。
    abstract void engineStore​(OutputStream stream, char[] password)
    指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。
    void engineStore​(KeyStore.LoadStoreParameter param)
    指定されたKeyStore.LoadStoreParmeterを使用してこのキーストアを格納します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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

      public abstract Date engineGetCreationDate​(String alias)
      指定された別名によって識別されるエントリの作成日を返します。
      パラメータ:
      alias - 別名
      戻り値:
      このエントリの作成日。指定された別名が存在しない場合はnull
    • 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

      public abstract Enumeration<String> 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 - キーストアの整合性を検査するためのパスワード
      例外:
      IOException - データに入出力の問題があった場合
      NoSuchAlgorithmException - 適切なデータ整合性アルゴリズムが見つからなかった場合
      CertificateException - キーストア・データに含まれるどの証明書も格納できなかった場合
    • engineStore

      指定されたKeyStore.LoadStoreParmeterを使用してこのキーストアを格納します。
      パラメータ:
      param - キーストアの格納方法を指定したKeyStore.LoadStoreParmeternullも指定可能
      例外:
      IllegalArgumentException - 指定されたKeyStore.LoadStoreParmeter入力が認識されない場合
      IOException - データに入出力の問題があった場合
      NoSuchAlgorithmException - 適切なデータ整合性アルゴリズムが見つからなかった場合
      CertificateException - キーストア・データに含まれるどの証明書も格納できなかった場合
      導入されたバージョン:
      1.5
    • engineLoad

      public abstract void engineLoad​(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
      指定された入力ストリームからキーストアをロードします。

      パスワードを指定すると、キーストアがハードウェア・トークン・デバイス上に存在する場合などに、キーストアのロック解除やキーストア・データの整合性検査ができます。 整合性検査用のパスワードが指定されなかった場合、整合性検査は実行されません。

      パラメータ:
      stream - キーストアのロード元の入力ストリームまたはnull
      password - キーストアの整合性検査用パスワード、キーストアのロック解除用パスワード、またはnull
      例外:
      IOException - キーストア・データで入出力または形式に関する問題が発生した場合、パスワードが必要であるのに指定されなかった場合、または指定されたパスワードが間違っている場合。 パスワードが正しくなかったためにエラーが発生した場合、IOExceptioncauseUnrecoverableKeyException
      NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
      CertificateException - キーストアのどの証明書もロードできなかった場合
    • engineLoad

      指定されたKeyStore.LoadStoreParameterを使用してキーストアをロードします。

      このキーストアがすでにロードされている場合、このキーストアは再び初期化され、指定されたストリームからロードし直されます。

      実装要件:
      デフォルトの実装では、KeyStore.LoadStoreParameterを調べてパスワードを抽出し、null InputStreamとともにengineLoad(InputStream, char[])に渡します。

      KeyStore.LoadStoreParameternullの場合、パスワード・パラメータもnullになります。 それ以外の場合、KeyStore.LoadStoreParameterKeyStore.ProtectionParameterは、KeyStore.PasswordProtectionまたはPasswordCallbackをサポートするKeyStore.CallbackHandlerProtectionのいずれかでなければなりません。これにより、パスワード・パラメータを抽出できます。 KeyStore.ProtectionParameterがこれらのクラスのいずれでもない場合は、NoSuchAlgorithmExceptionがスローされます。

      パラメータ:
      param - キーストアのロード方法を指定したKeyStore.LoadStoreParameternullも指定可能
      例外:
      IllegalArgumentException - 指定されたKeyStore.LoadStoreParameter入力が認識されない場合
      IOException - キーストア・データに入出力または形式の問題があった場合。 ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptioncauseUnrecoverableKeyException
      NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
      CertificateException - キーストアのどの証明書もロードできなかった場合
      導入されたバージョン:
      1.5
    • engineGetEntry

      指定された保護パラメータを使用して、指定された別名に対するKeyStore.Entryを取得します。
      パラメータ:
      alias - この別名に対するKeyStore.Entryを取得する
      protParam - Entryの保護に使用されるProtectionParameternullも指定可能
      戻り値:
      指定された別名に対する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 - 保存するEntry
      protParam - Entryの保護に使用されるProtectionParameternullも指定可能
      例外:
      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 - keystoreデータにI/Oの問題がある場合。
      NullPointerException - ストリームがnullの場合。
      導入されたバージョン:
      9