- 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アルゴリズムをサポートする必要があります。DESDESede
- 導入されたバージョン:
- 1.4
- 関連項目:
SecretKey,DESKeySpec,DESedeKeySpec,PBEKeySpec
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedSecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)SecretKeyFactoryオブジェクトを生成します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 SecretKeygenerateSecret(KeySpec keySpec)指定された鍵仕様(鍵データ)からSecretKeyオブジェクトを生成します。StringgetAlgorithm()このSecretKeyFactoryオブジェクトのアルゴリズム名を返します。static SecretKeyFactorygetInstance(String algorithm)指定されたアルゴリズムの秘密鍵を変換するSecretKeyFactoryオブジェクトを返します。static SecretKeyFactorygetInstance(String algorithm, String provider)指定されたアルゴリズムの秘密鍵を変換するSecretKeyFactoryオブジェクトを返します。static SecretKeyFactorygetInstance(String algorithm, Provider provider)指定されたアルゴリズムの秘密鍵を変換するSecretKeyFactoryオブジェクトを返します。KeySpecgetKeySpec(SecretKey key, Class<?> keySpec)指定された鍵オブジェクトの仕様(鍵データ)を要求された形式で返します。ProvidergetProvider()このSecretKeyFactoryオブジェクトのプロバイダを返します。SecretKeytranslateKey(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.preferredSecurityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、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- 指定された鍵をこの秘密鍵ファクトリで処理できない場合。
-
-