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

クラスKeyStore


  • public class KeyStore
    extends Object
    このクラスは、暗号化の鍵と証明書の格納場所を表現したものです。

    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
    この型は、Javaセキュリティ標準アルゴリズム名仕様の「KeyStoreセクション」に記述されています。 サポートされているその他のタイプについては、実装のリリース・ノートを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    PrivateKey, SecretKey, Certificate
    • ネストされたクラスのサマリー

      ネストされたクラス 
      修飾子と型 クラス 説明
      static class  KeyStore.Builder
      インスタンス化すべきKeyStoreオブジェクトを記述したクラスです。
      static class  KeyStore.CallbackHandlerProtection
      CallbackHandlerをカプセル化したProtectionParameterです。
      static interface  KeyStore.Entry
      KeyStoreエントリの種類に対するマーカー・インタフェースです。
      static interface  KeyStore.LoadStoreParameter
      KeyStoreloadパラメータとstoreパラメータに対するマーカー・インタフェースです。
      static class  KeyStore.PasswordProtection
      ProtectionParameterのパスワードベースの実装です。
      static class  KeyStore.PrivateKeyEntry
      特定のPrivateKeyと対応する証明書チェーンが格納されたKeyStoreエントリです。
      static interface  KeyStore.ProtectionParameter
      キーストアの保護パラメータに対するマーカー・インタフェースです。
      static class  KeyStore.SecretKeyEntry
      特定のSecretKeyが格納されたKeyStoreエントリです。
      static class  KeyStore.TrustedCertificateEntry
      信頼できるCertificateが格納されたKeyStoreエントリです。
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected KeyStore​(KeyStoreSpi keyStoreSpi, Provider provider, String type)
      指定されたタイプのKeyStoreオブジェクトを作成し、そのオブジェクトで、指定されたプロバイダの実装であるSPIオブジェクトをカプセル化します。
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Enumeration<String> aliases()
      このキーストアのすべての別名を一覧表示します。
      boolean containsAlias​(String alias)
      このキーストアに、指定された別名が存在するかどうかを判定します。
      void deleteEntry​(String alias)
      このキーストアから、指定された別名によって識別されるエントリを削除します。
      boolean entryInstanceOf​(String alias, Class<? extends KeyStore.Entry> entryClass)
      指定されたaliasのキーストアEntryが、指定されたentryClassのインスタンスまたはサブクラスであるかどうかを判定します。
      Certificate getCertificate​(String alias)
      指定された別名に関連した証明書を返します。
      String getCertificateAlias​(Certificate cert)
      指定された証明書と一致する証明書がある最初のキーストア・エントリの別名を返します。
      Certificate[] getCertificateChain​(String alias)
      指定された別名に関連付けられた証明書チェーンを返します。
      Date getCreationDate​(String alias)
      指定された別名によって識別されるエントリの作成日を返します。
      static String getDefaultType()
      keystore.typeセキュリティ・プロパティに指定されているデフォルトのキーストア・タイプを返します。該当するプロパティが存在しない場合は文字列「jks」(「Java keystore」の略語)を返します。
      KeyStore.Entry getEntry​(String alias, KeyStore.ProtectionParameter protParam)
      指定された保護パラメータを使用して、指定された別名に対するキーストアEntryを取得します。
      static KeyStore getInstance​(File file, char[] password)
      適切なキーストア型のロードされたキーストア・オブジェクトを返します。
      static 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)
      指定されたタイプのキーストア・オブジェクトを返します。
      Key getKey​(String alias, char[] password)
      指定されたパスワードを使って、指定された別名に関連した鍵を復元し、その鍵を返します。
      Provider getProvider()
      このキーストアのプロバイダを返します。
      String getType()
      このキーストア・タイプを返します。
      boolean isCertificateEntry​(String alias)
      指定された別名で識別されるエントリが、setCertificateEntryを呼び出して作成されたエントリ、あるいはTrustedCertificateEntryを指定してsetEntryを呼び出して作成されたエントリのいずれかである場合、trueを返します。
      boolean isKeyEntry​(String alias)
      指定された別名で識別されるエントリが、setKeyEntryを呼び出して作成されたエントリ、あるいはPrivateKeyEntryまたはSecretKeyEntryを指定してsetEntryを呼び出して作成されたエントリのいずれかである場合、trueを返します。
      void load​(InputStream stream, char[] password)
      指定された入力ストリームからこのキーストアをロードします。
      void load​(KeyStore.LoadStoreParameter param)
      指定されたLoadStoreParameterを使用してこのキーストアをロードします。
      void setCertificateEntry​(String alias, Certificate cert)
      指定された別名に、指定された信頼できる証明書を割り当てます。
      void setEntry​(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
      キーストアEntryを指定された別名で保存します。
      void setKeyEntry​(String alias, byte[] key, Certificate[] chain)
      指定された別名に、すでに保護されている指定の鍵を割り当てます。
      void setKeyEntry​(String alias, Key key, char[] password, Certificate[] chain)
      指定された別名に指定された鍵を割り当て、指定されたパスワードでその鍵を保護します。
      int size()
      このキーストアのエントリ数を取得します。
      void store​(OutputStream stream, char[] password)
      指定された出力ストリームにこのキーストアを格納し、指定されたパスワードでその整合性を保護します。
      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 - typenullである場合
        関連項目:
        Provider
      • 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 - typenullである場合
        関連項目:
        Provider
      • 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 - typenullである場合
        導入されたバージョン:
        1.4
        関連項目:
        Provider
      • 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 - キーストア・データに含まれるどの証明書も格納できなかった場合
      • load

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

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

        空のキーストアを作成する場合、あるいはキーストアをストリームから初期化できない場合は、stream引数としてnullを渡します。

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

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

        public final void load​(KeyStore.LoadStoreParameter param)
                        throws IOException,
                               NoSuchAlgorithmException,
                               CertificateException
        指定されたLoadStoreParameterを使用してこのキーストアをロードします。

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

        パラメータ:
        param - キーストアのロード方法を指定したLoadStoreParameternullも指定可能
        例外:
        IllegalArgumentException - 指定されたLoadStoreParameter入力が認識されない場合
        IOException - キーストア・データに入出力または形式の問題があった場合。 ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptioncauseUnrecoverableKeyException
        NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
        CertificateException - キーストアのどの証明書もロードできなかった場合
        導入されたバージョン:
        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の保護に使用されるProtectionParameternullも指定可能
        例外:
        NullPointerException - aliasまたはentrynullの場合
        KeyStoreException - キーストアが初期化(ロード)されていない場合、またはこの処理がなんらかの原因で失敗した場合
        導入されたバージョン:
        1.5
        関連項目:
        getEntry(String, KeyStore.ProtectionParameter)
      • 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またはentryClassnullの場合
        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 - キーストア・データで入出力または形式に関する問題が発生した場合、パスワードが必要であるのに指定されなかった場合、または指定されたパスワードが間違っている場合。 パスワードが正しくなかったためにエラーが発生した場合、IOExceptioncauseUnrecoverableKeyException
        NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
        CertificateException - キーストアのどの証明書もロードできなかった場合
        IllegalArgumentException - ファイルが存在しないか、通常のファイルを参照していない場合。
        NullPointerException - fileがnullの場合
        SecurityException - セキュリティ・マネージャが存在し、SecurityManager.checkRead(java.io.FileDescriptor)メソッドが指定されたファイルへの読み取りアクセスを拒否した場合。
        導入されたバージョン:
        9
        関連項目:
        Provider
      • 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 - キーストアのロード方法を指定したLoadStoreParameternullも指定可能
        戻り値:
        キーストア・データがロードされたキーストア・オブジェクト
        例外:
        KeyStoreException - 指定されたキーストア・ファイルのKeyStoreSpi実装をプロバイダがサポートしていない場合。
        IOException - キーストア・データに入出力または形式の問題があった場合。 ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptioncauseUnrecoverableKeyException
        NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
        CertificateException - キーストアのどの証明書もロードできなかった場合
        IllegalArgumentException - ファイルが存在しないか、通常のファイルを参照していない場合、またはparamが認識されていない場合。
        NullPointerException - fileがnullの場合
        SecurityException - セキュリティ・マネージャが存在し、SecurityManager.checkRead(java.io.FileDescriptor)メソッドが指定されたファイルへの読み取りアクセスを拒否した場合。
        導入されたバージョン:
        9
        関連項目:
        Provider