モジュール java.base
パッケージ javax.crypto

クラスSecretKeyFactory

java.lang.Object
javax.crypto.SecretKeyFactory

public class SecretKeyFactory
extends Object
このクラスは、秘密キーのファクトリを表します。

キーファクトリは、Key型の不透明な暗号キーであるキーと、基本のキーデータの透明な表現であるキー仕様との間の変換を行うために使用します。 秘密キー・ファクトリの操作は、秘密(対称)キーだけに行います。

キー・ファクトリは双方向性です。つまり、指定したキー仕様(キー・データ)から不透明なキー・オブジェクトを構築することも、適切な形式でキー・オブジェクトの基本のキー・データを取り出すこともできます。

アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecretおよびgetKeySpecメソッドでサポートされているキー仕様を確認する必要があります。 たとえば、"SunJCE"プロバイダによって提供されるDESede (トリプルDES)の秘密キー・ファクトリでは、DESedeKeySpecがトリプルDESキーの透過的表現としてサポートされます。

Javaプラットフォームの実装は、すべて次の標準のSecretKeyFactoryアルゴリズムをサポートする必要があります。

  • DESede
これらのアルゴリズムは、Javaセキュリティ標準アルゴリズム名仕様の「SecretKeyFactoryセクション」に記述されています。 サポートされているその他のアルゴリズムについては、実装のリリース・ドキュメントを参照してください。

導入されたバージョン:
1.4
関連項目:
SecretKey, DESedeKeySpec, PBEKeySpec
  • コンストラクタのサマリー

    コンストラクタ 
    修飾子 コンストラクタ 説明
    protected SecretKeyFactory​(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
    SecretKeyFactoryオブジェクトを生成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    SecretKey generateSecret​(KeySpec keySpec)
    指定されたキー仕様(キー・データ)からSecretKeyオブジェクトを生成します。
    String getAlgorithm()
    このSecretKeyFactoryオブジェクトのアルゴリズム名を返します。
    static SecretKeyFactory getInstance​(String algorithm)
    指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。
    static SecretKeyFactory getInstance​(String algorithm, String provider)
    指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。
    static SecretKeyFactory getInstance​(String algorithm, Provider provider)
    指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。
    KeySpec getKeySpec​(SecretKey key, Class<?> keySpec)
    指定されたキー・オブジェクトの仕様(キー・データ)を要求された形式で返します。
    Provider getProvider()
    このSecretKeyFactoryオブジェクトのプロバイダを返します。
    SecretKey translateKey​(SecretKey key)
    プロバイダが未知であるか、信頼できない可能性があるキー・オブジェクトを、この秘密キー・ファクトリの対応するキー・オブジェクトに変換します。

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

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • コンストラクタの詳細

    • SecretKeyFactory

      protected SecretKeyFactory​(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
      SecretKeyFactoryオブジェクトを生成します。
      パラメータ:
      keyFacSpi - 委譲先
      provider - プロバイダ
      algorithm - 秘密キーアルゴリズム
  • メソッドの詳細

    • getInstance

      public static final SecretKeyFactory getInstance​(String algorithm) throws NoSuchAlgorithmException
      指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。

      このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。

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

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

      public static final SecretKeyFactory getInstance​(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
      指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。

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

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

      パラメータ:
      algorithm - 要求された秘密キーアルゴリズムの標準名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のSecretKeyFactoryセクションを参照してください。
      provider - プロバイダ名。
      戻り値:
      新しいSecretKeyFactoryオブジェクト
      例外:
      IllegalArgumentException - providernullまたは空の場合
      NoSuchAlgorithmException - 指定されたアルゴリズムのSecretKeyFactorySpi実装が、指定されたプロバイダから利用可能でない場合
      NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
      NullPointerException - algorithmnullである場合
      関連項目:
      Provider
    • getInstance

      public static final SecretKeyFactory getInstance​(String algorithm, Provider provider) throws NoSuchAlgorithmException
      指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。

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

      パラメータ:
      algorithm - 要求された秘密キーアルゴリズムの標準名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のSecretKeyFactoryセクションを参照してください。
      provider - プロバイダ
      戻り値:
      新しいSecretKeyFactoryオブジェクト
      例外:
      IllegalArgumentException - providernullの場合
      NoSuchAlgorithmException - 指定されたアルゴリズムのSecretKeyFactorySpi実装が、指定されたProviderオブジェクトから使用できない場合
      NullPointerException - algorithmnullである場合
      関連項目:
      Provider
    • getProvider

      public final Provider getProvider()
      このSecretKeyFactoryオブジェクトのプロバイダを返します。
      戻り値:
      このSecretKeyFactoryオブジェクトのプロバイダ
    • getAlgorithm

      public final String getAlgorithm()
      このSecretKeyFactoryオブジェクトのアルゴリズム名を返します。

      これは、このSecretKeyFactoryオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。

      戻り値:
      このSecretKeyFactoryオブジェクトのアルゴリズム名。
    • generateSecret

      public final SecretKey generateSecret​(KeySpec keySpec) throws InvalidKeySpecException
      指定されたキー仕様(キー・データ)からSecretKeyオブジェクトを生成します。
      パラメータ:
      keySpec - 秘密キーの仕様(キー・データ)
      戻り値:
      秘密キー
      例外:
      InvalidKeySpecException - 指定されたキー仕様がこの秘密キー・ファクトリによる秘密キーの生成に不適切な場合。
    • getKeySpec

      public final KeySpec getKeySpec​(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException
      指定されたキー・オブジェクトの仕様(キー・データ)を要求された形式で返します。
      パラメータ:
      key - キー
      keySpec - キー・データが返される、要求された形式
      戻り値:
      要求された形式での基本となるキー仕様(キー・データ)
      例外:
      InvalidKeySpecException - 要求されたキー仕様が指定されたキーに不適切(keykeySpecに関連するアルゴリズムが一致しない、あるいはkeyは暗号化ハードウェア・デバイスのキーを参照するが、keySpecはソフトウェア・ベースのキーの仕様であるなど)な場合、あるいは指定されたキーを扱えない場合(たとえば、指定されたキーのアルゴリズムまたは形式がこの秘密キー・ファクトリでサポートされていない)。
    • translateKey

      public final SecretKey translateKey​(SecretKey key) throws InvalidKeyException
      プロバイダが未知であるか、信頼できない可能性があるキー・オブジェクトを、この秘密キー・ファクトリの対応するキー・オブジェクトに変換します。
      パラメータ:
      key - プロバイダが未知であるか、信頼できないキー
      戻り値:
      変換したキー
      例外:
      InvalidKeyException - 指定されたキーをこの秘密キー・ファクトリで処理できない場合。