- java.lang.Object
-
- javax.crypto.SecretKeyFactory
-
public class SecretKeyFactory extends Object
このクラスは、秘密鍵のファクトリを表します。鍵ファクトリは、
Key
型の不透明な暗号鍵である鍵と、基本の鍵データの透明な表現である鍵仕様との間の変換を行うために使用します。 秘密鍵ファクトリの操作は、秘密(対称)鍵だけに行います。鍵ファクトリは双方向性です。つまり、指定した鍵仕様(鍵データ)から不透明な鍵オブジェクトを構築することも、適切な形式で鍵オブジェクトの基本の鍵データを取り出すこともできます。
アプリケーション開発者は、プロバイダのドキュメントを参照して、
generateSecret
およびgetKeySpec
メソッドでサポートされている鍵仕様を確認する必要があります。 たとえば、SunJCEプロバイダが提供するDES秘密鍵ファクトリはDESKeySpec
をDES鍵の透明な表現としてサポートし、そのプロバイダのTriple DES鍵の秘密鍵ファクトリはDESedeKeySpec
をTriple DES鍵の透明な表現としてサポートします。Javaプラットフォームの実装は、すべて次の標準の
SecretKeyFactory
アルゴリズムをサポートする必要があります。DES
DESede
- 導入されたバージョン:
- 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, String provider)
指定されたアルゴリズムの秘密鍵を変換するSecretKeyFactory
オブジェクトを返します。static SecretKeyFactory
getInstance(String algorithm, Provider provider)
指定されたアルゴリズムの秘密鍵を変換するSecretKeyFactory
オブジェクトを返します。KeySpec
getKeySpec(SecretKey key, Class<?> keySpec)
指定された鍵オブジェクトの仕様(鍵データ)を要求された形式で返します。Provider
getProvider()
このSecretKeyFactory
オブジェクトのプロバイダを返します。SecretKey
translateKey(SecretKey key)
プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この秘密鍵ファクトリの対応する鍵オブジェクトに変換します。
-
-
-
コンストラクタの詳細
-
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
-algorithm
がnull
である場合- 関連項目:
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
-provider
がnull
または空の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのSecretKeyFactorySpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定されたアルゴリズムの秘密鍵を変換するSecretKeyFactory
オブジェクトを返します。指定されたProviderオブジェクトからのSecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
algorithm
- 要求された秘密鍵アルゴリズムの標準名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のSecretKeyFactoryセクションを参照してください。provider
- プロバイダ- 戻り値:
- 新しい
SecretKeyFactory
オブジェクト - 例外:
IllegalArgumentException
-provider
がnull
の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのSecretKeyFactorySpi
実装が、指定されたProvider
オブジェクトから使用できない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
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
- 要求された鍵仕様が指定された鍵に不適切(key
とkeySpec
に関連するアルゴリズムが一致しない、あるいはkey
は暗号化ハードウェア・デバイスの鍵を参照するが、keySpec
はソフトウェア・ベースの鍵の仕様であるなど)な場合、あるいは指定された鍵を扱えない場合(たとえば、指定された鍵のアルゴリズムまたは形式がこの秘密鍵ファクトリでサポートされていない)。
-
translateKey
public final SecretKey translateKey(SecretKey key) throws InvalidKeyException
プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この秘密鍵ファクトリの対応する鍵オブジェクトに変換します。- パラメータ:
key
- プロバイダが未知であるか、信頼できない鍵- 戻り値:
- 変換した鍵
- 例外:
InvalidKeyException
- 指定された鍵をこの秘密鍵ファクトリで処理できない場合。
-
-