JavaTM Platform
Standard Ed. 6

javax.crypto
クラス SecretKeyFactory

java.lang.Object
  上位を拡張 javax.crypto.SecretKeyFactory

public class SecretKeyFactory
extends Object

このクラスは、秘密鍵のファクトリを表します。  

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

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

アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecret および getKeySpec メソッドでサポートされている鍵仕様を確認する必要があります。たとえば、「SunJCE」プロバイダが提供する DES 秘密鍵ファクトリは DESKeySpec を DES 鍵の透明な表現としてサポートし、そのプロバイダの Triple DES 鍵の秘密鍵ファクトリは DESedeKeySpec を Triple DES 鍵の透明な表現としてサポートします。

導入されたバージョン:
1.4
関連項目:
SecretKey, DESKeySpec, 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, Provider provider)
          指定されたアルゴリズムの秘密鍵を変換する SecretKeyFactory オブジェクトを返します。
static SecretKeyFactory getInstance(String algorithm, String provider)
          指定されたアルゴリズムの秘密鍵を変換する SecretKeyFactory オブジェクトを返します。
 KeySpec getKeySpec(SecretKey key, Class keySpec)
          指定された鍵オブジェクトの仕様 (鍵データ) を要求された形式で返します。
 Provider getProvider()
          この SecretKeyFactory オブジェクトのプロバイダを返します。
 SecretKey translateKey(SecretKey key)
          プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この秘密鍵ファクトリの対応する鍵オブジェクトに変換します。
 
クラス 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() メソッド経由で取得できます。

パラメータ:
algorithm - 要求された秘密鍵アルゴリズムの標準名標準のアルゴリズム名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
戻り値:
新しい SecretKeyFactory オブジェクト
例外:
NullPointerException - 指定されたアルゴリズムが null である場合
NoSuchAlgorithmException - 指定したアルゴリズムの SecretKeyFactorySpi 実装をサポートするプロバイダが存在しない場合
関連項目:
Provider

getInstance

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

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

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

パラメータ:
algorithm - 要求された秘密鍵アルゴリズムの標準名標準のアルゴリズム名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
provider - プロバイダ名
戻り値:
新しい SecretKeyFactory オブジェクト
例外:
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムの SecretKeyFactorySpi 実装がない場合
NullPointerException - 指定されたアルゴリズムが null である場合
NoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
IllegalArgumentException - provider が null または空の場合
関連項目:
Provider

getInstance

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

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

パラメータ:
algorithm - 要求された秘密鍵アルゴリズムの標準名標準のアルゴリズム名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
provider - プロバイダ
戻り値:
新しい SecretKeyFactory オブジェクト
例外:
NullPointerException - 指定されたアルゴリズムが null である場合
NoSuchAlgorithmException - 指定された Provider オブジェクトに指定されたアルゴリズムの SecretKeyFactorySpi の実装がない場合
IllegalArgumentException - provider が null の場合
関連項目:
Provider

getProvider

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

戻り値:
この SecretKeyFactory オブジェクトのプロバイダ

getAlgorithm

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

これは、この SecretKeyFactory オブジェクトを生成した getInstance 呼び出しの 1 つで指定された名前と同じです。

戻り値:
この 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 - 指定された鍵をこの秘密鍵ファクトリで処理できない場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。