モジュール 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
関連項目:
  • コンストラクタのサマリー

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

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

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

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

    • 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である場合
      関連項目:
    • 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である場合
      関連項目:
    • 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である場合
      関連項目:
    • 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 - 指定されたキーをこの秘密キー・ファクトリで処理できない場合。