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

クラスKeyStore

java.lang.Object
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オブジェクトを記述したクラスです。
    static class 
    CallbackHandlerをカプセル化したProtectionParameterです。
    static interface 
    KeyStoreエントリの種類に対するマーカー・インタフェースです。
    static interface 
    KeyStoreloadパラメータとstoreパラメータに対するマーカー・インタフェースです。
    static class 
    ProtectionParameterのパスワードベースの実装です。
    static class 
    特定のPrivateKeyと対応する証明書チェーンが格納されたKeyStoreエントリです。
    static interface 
    キーストアの保護パラメータに対するマーカー・インタフェースです。
    static class 
    特定のSecretKeyが格納されたKeyStoreエントリです。
    static class 
    信頼できるCertificateが格納されたKeyStoreエントリです。
  • コンストラクタのサマリー

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      指定された保護パラメータを使用して、指定された別名に対するキーストアEntryを取得します。
      パラメータ:
      alias - この別名に対するキーストアEntryを取得
      protParam - Entryの保護に使用されるProtectionParameternullも指定可能
      戻り値:
      指定された別名に対するキーストアEntry。そのようなエントリが存在しない場合はnull
      例外:
      NullPointerException - aliasnullである場合
      NoSuchAlgorithmException - エントリを復元するためのアルゴリズムが見つからない場合
      UnrecoverableEntryException - 指定されたprotParamが不十分または無効である場合
      UnrecoverableKeyException - エントリがPrivateKeyEntryまたはSecretKeyEntryで、指定されたprotParamにキーの復元に必要な情報が含まれていない場合(たとえばパスワードが誤っている場合)
      KeyStoreException - キーストアが初期化(ロード)されていない場合。
      導入されたバージョン:
      1.5
      関連項目:
      setEntry(String, KeyStore.Entry, KeyStore.ProtectionParameter)
    • 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

      適切なキーストア型のロードされたキーストア・オブジェクトを返します。 最初に、指定されたファイルをプロービングすることによってキーストアの型が決定されます。 次に、キーストア・オブジェクトは、そのファイルからのデータを使用してインスタンス化され、ロードされます。 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