クラスSecretKeyFactory
キー・ファクトリは、Key型の不透明な暗号キーであるキーと、基本のキー・マテリアルの透明な表現であるキー仕様との間の変換を行うために使用します。 秘密キー・ファクトリの操作は、秘密(対称)キーだけに行います。
キー・ファクトリは双方向i.eであり、指定のキー仕様(キー・マテリアル)から不透明なキーを構築したり、適切な形式でキー・オブジェクトの基礎となるキー・マテリアルを取得できます。
アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecretおよびgetKeySpecメソッドでサポートされているキー仕様を確認する必要があります。 たとえば、SunJCEプロバイダが提供するDESede (Triple DES)秘密キー・ファクトリは、Triple DESキーの透過的表現としてDESedeKeySpecをサポートします。
Javaプラットフォームの実装は、すべて次の標準のSecretKeyFactoryアルゴリズムをサポートする必要があります。
DESede
- 導入されたバージョン:
- 1.4
- 外部仕様
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedSecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm) SecretKeyFactoryオブジェクトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明final SecretKeygenerateSecret(KeySpec keySpec) 指定されたキー仕様(キー・データ)からSecretKeyオブジェクトを生成します。final StringこのSecretKeyFactoryオブジェクトのアルゴリズム名を返します。static final SecretKeyFactorygetInstance(String algorithm) 指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。static final SecretKeyFactorygetInstance(String algorithm, String provider) 指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。static final SecretKeyFactorygetInstance(String algorithm, Provider provider) 指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。final KeySpecgetKeySpec(SecretKey key, Class<?> keySpec) 指定されたキー・オブジェクトの仕様(キー・データ)を要求された形式で返します。final ProviderこのSecretKeyFactoryオブジェクトのプロバイダを返します。final 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オブジェクトを返します。このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたアルゴリズムをサポートする最初のプロバイダから
SecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm- リクエストされた秘密キー・アルゴリズムの標準名。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のSecretKeyFactoryの項を参照してください。- 戻り値:
- 新しい
SecretKeyFactoryオブジェクト - スロー:
NoSuchAlgorithmException-Providerが、指定されたアルゴリズムのSecretKeyFactorySpi実装をサポートしていない場合NullPointerException-algorithmがnullである場合- 外部仕様
- 関連項目:
-
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である場合- 外部仕様
- 関連項目:
-
getInstance
public static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 指定されたアルゴリズムの秘密キーを変換するSecretKeyFactoryオブジェクトを返します。指定されたプロバイダ・オブジェクトから
SecretKeyFactorySpi実装をカプセル化する新しいSecretKeyFactoryオブジェクトが返されます。 指定したプロバイダ・オブジェクトは、プロバイダ・リストに登録する必要はありません。- パラメータ:
algorithm- リクエストされた秘密キー・アルゴリズムの標準名。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のSecretKeyFactoryの項を参照してください。provider- プロバイダ- 戻り値:
- 新しい
SecretKeyFactoryオブジェクト - スロー:
IllegalArgumentException-providerがnullの場合NoSuchAlgorithmException- 指定されたアルゴリズムのSecretKeyFactorySpi実装が、指定されたProviderオブジェクトから使用できない場合NullPointerException-algorithmがnullである場合- 外部仕様
- 関連項目:
-
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- 指定されたキーをこの秘密キー・ファクトリで処理できない場合。
-