public class SecretKeyFactory extends Object
キーファクトリは、Key
型の不透明な暗号キーであるキーと、基本のキーデータの透明な表現であるキー仕様との間の変換を行うために使用します。 秘密キー・ファクトリの操作は、秘密(対称)キーだけに行います。
キー・ファクトリは双方向性です。つまり、指定したキー仕様(キー・データ)から不透明なキー・オブジェクトを構築することも、適切な形式でキー・オブジェクトの基本のキー・データを取り出すこともできます。
アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecret
およびgetKeySpec
メソッドでサポートされているキー仕様を確認する必要があります。 たとえば、"SunJCE"プロバイダによって提供されるDESede (トリプルDES)の秘密キー・ファクトリでは、DESedeKeySpec
がトリプルDESキーの透過的表現としてサポートされます。
Javaプラットフォームの実装は、すべて次の標準のSecretKeyFactory
アルゴリズムをサポートする必要があります。
DESede
- 導入されたバージョン:
- 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)
プロバイダが未知であるか、信頼できない可能性があるキー・オブジェクトを、この秘密キー・ファクトリの対応するキー・オブジェクトに変換します。
-
コンストラクタの詳細
-
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
- 指定されたキーをこの秘密キー・ファクトリで処理できない場合。
-