モジュール java.base
パッケージ 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を使用してこのキーストアを格納します。
    • コンストラクタの詳細

      • 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 - キーストア・データに含まれるどの証明書も格納できなかった場合
      • engineLoad

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

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

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

        public void engineLoad​(KeyStore.LoadStoreParameter param)
                        throws IOException,
                               NoSuchAlgorithmException,
                               CertificateException
        指定された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

        public KeyStore.Entry engineGetEntry​(String alias,
                                             KeyStore.ProtectionParameter protParam)
                                      throws KeyStoreException,
                                             NoSuchAlgorithmException,
                                             UnrecoverableEntryException
        指定された保護パラメータを使用して、指定された別名に対する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