モジュール 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.PasswordProtection protParam =
        new KeyStore.PasswordProtection(password);
    try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
        // 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
        ks.store(fos, password);
    } finally {
        protParam.destroy();
    }
 
なお、上記サンプル・コードで示したように、キーストアのロード、非公開キーエントリの保護、秘密キーエントリの保護、およびキーストアの格納には同じパスワードを使用できますが、異なるパスワードやその他の保護パラメータも使用できます。

Javaプラットフォームの実装は、すべて次の標準のKeyStoreタイプをサポートする必要があります。

  • PKCS12
このタイプについては、Javaセキュリティ標準アルゴリズム名仕様の「KeyStoreセクション」を参照してください。 サポートされているその他のタイプについては、実装のリリース・ノートを参照してください。

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

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

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

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

      このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたタイプをサポートする最初のプロバイダからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      実装上のノート:
      JDKリファレンス実装では、さらにjdk.security.provider.preferred Securityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
      パラメータ:
      type - キーストアのタイプ。 標準キーストア・タイプの詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyStoreの項を参照してください。
      戻り値:
      指定されたタイプのキーストア・オブジェクト
      例外:
      KeyStoreException - 指定したタイプのKeyStoreSpi実装をサポートするプロバイダがない場合
      NullPointerException - typenullである場合
      関連項目:
    • getInstance

      public static KeyStore getInstance(String type, String provider) throws KeyStoreException, NoSuchProviderException
      指定されたタイプのKeyStoreオブジェクトを返します。

      指定したプロバイダからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      パラメータ:
      type - キーストアのタイプ。 標準キーストア・タイプの詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyStoreの項を参照してください。
      provider - プロバイダ名。
      戻り値:
      指定されたタイプのキーストア・オブジェクト
      例外:
      IllegalArgumentException - プロバイダ名がnullまたは空の場合
      KeyStoreException - 指定された型のKeyStoreSpi実装が、指定されたプロバイダから利用可能でない場合
      NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
      NullPointerException - typenullである場合
      関連項目:
    • getInstance

      public static KeyStore getInstance(String type, Provider provider) throws KeyStoreException
      指定されたタイプのKeyStoreオブジェクトを返します。

      指定されたプロバイダ・オブジェクトからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。 指定したプロバイダ・オブジェクトは、プロバイダ・リストに登録する必要はありません。

      パラメータ:
      type - キーストアのタイプ。 標準キーストア・タイプの詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyStoreの項を参照してください。
      provider - プロバイダ
      戻り値:
      指定されたタイプのキーストア・オブジェクト
      例外:
      IllegalArgumentException - 指定されたプロバイダがnullの場合
      KeyStoreException - 指定された型のKeyStoreSpi実装が、指定されたProviderオブジェクトから使用できない場合
      NullPointerException - typenullである場合
      導入されたバージョン:
      1.4
      関連項目:
    • 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()
      このキーストア・タイプを返します。
      戻り値:
      このキーストア・タイプ。
    • getAttributes

      public final Set<KeyStore.Entry.Attribute> getAttributes(String alias) throws KeyStoreException
      指定された別名に関連付けられた属性を取得します。
      パラメータ:
      alias - 別名
      戻り値:
      変更できない属性のSet このセットは、KeyStoreSpi実装がKeyStoreSpi.engineGetAttributes(String)をオーバーライドしていない場合、または指定された別名が存在しない場合、または別名に関連付けられた属性がない場合、空になります。 このセットは、保護された属性を含むPrivateKeyEntryまたはSecretKeyEntryエントリに対しても空であり、エントリが抽出された後にKeyStore.Entry.getAttributes()メソッドを介してのみ使用できます。
      例外:
      KeyStoreException - キーストアが初期化(ロード)されていない場合。
      NullPointerException - aliasnullである場合
      導入されたバージョン:
      18
    • 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 - 別名
      戻り値:
      証明書チェーン(ユーザーの証明書が最初に順序付けられ、その後にゼロ以上の認証局が続きます)、または指定した別名が存在しないか、証明書チェーンが含まれていない場合は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 - キーストアの整合性を検査するためのパスワード キーストアが整合性チェックをサポートしていない場合、または整合性チェックを必要とする場合、nullである可能性があります。
      例外:
      KeyStoreException - キーストアが初期化(ロード)されていない場合。
      IOException - データに入出力の問題があった場合
      NoSuchAlgorithmException - 適切なデータ整合性アルゴリズムが見つからなかった場合
      CertificateException - キーストア・データに含まれるどの証明書も格納できなかった場合
    • store

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

      このKeyStoreがすでにロードされている場合は、再初期化され、指定されたパラメータから再度ロードされます。

      パラメータ:
      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

      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
      関連項目:
    • 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 - ファイルがnullの場合。
      SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.io.FileDescriptor)メソッドが指定されたファイルへの読取りアクセスを拒否した場合。
      導入されたバージョン:
      9
      関連項目:
    • getInstance

      適切なキーストア・タイプのロードされたキーストア・オブジェクトを返します。 最初に、キーストア・タイプは、指定されたファイルをプローブして決定されます。 次に、キーストア・オブジェクトは、そのファイルのデータを使用してインスタンス化およびロードされます。 キーストア・データのロックを解除する方法、または整合性チェックを実行する方法を指定するLoadStoreParameterを指定できます。

      このメソッドは、最も優先されるプロバイダから開始して、登録されているセキュリティprovidersのリストを横断します。 プロバイダでサポートされているKeyStoreSpi実装ごとに、engineProbeメソッドを起動して、指定したキーストアがサポートされているかどうかを確認します。 指定されたファイルをサポートする最初のプロバイダからKeyStoreSpi実装をカプセル化する新しいKeyStoreオブジェクトが返されます。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      パラメータ:
      file - キーストア・ファイル
      param - キーストアのロード方法を指定したLoadStoreParameternullも指定可能
      戻り値:
      キーストア・データがロードされたキーストア・オブジェクト
      例外:
      KeyStoreException - 指定したキーストア・ファイルのKeyStoreSpi実装をサポートするプロバイダがない場合。
      IOException - キーストア・データに入出力または形式の問題があった場合。 ProtectionParameterが正しくなかった(たとえばパスワードが正しくなかった)ためにエラーが発生した場合、IOExceptioncauseUnrecoverableKeyException
      NoSuchAlgorithmException - キーストアの整合性を検査するアルゴリズムが見つからなかった場合
      CertificateException - キーストアのどの証明書もロードできなかった場合
      IllegalArgumentException - ファイルが存在しない場合、または通常のファイルを参照しない場合、またはパラメータが認識されない場合。
      NullPointerException - ファイルがnullの場合。
      SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.io.FileDescriptor)メソッドが指定されたファイルへの読取りアクセスを拒否した場合。
      導入されたバージョン:
      9
      関連項目: