public class SecretKeyFactory extends Object
鍵ファクトリは、Key
型の不透明な暗号鍵である鍵と、基本の鍵データの透明な表現である鍵仕様との間の変換を行うために使用します。秘密鍵ファクトリの操作は、秘密 (対称) 鍵だけに行います。
鍵ファクトリは双方向性です。つまり、指定した鍵仕様 (鍵データ) から不透明な鍵オブジェクトを構築することも、適切な形式で鍵オブジェクトの基本の鍵データを取り出すこともできます。
アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecret
および getKeySpec
メソッドでサポートされている鍵仕様を確認する必要があります。たとえば、「SunJCE」プロバイダが提供する DES 秘密鍵ファクトリは DESKeySpec
を DES 鍵の透明な表現としてサポートし、そのプロバイダの Triple DES 鍵の秘密鍵ファクトリは DESedeKeySpec
を Triple DES 鍵の透明な表現としてサポートします。
Java プラットフォームの実装は、すべて次の標準の SecretKeyFactory
アルゴリズムをサポートする必要があります。
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)
プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この秘密鍵ファクトリの対応する鍵オブジェクトに変換します。
|
protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
keyFacSpi
- 委譲先provider
- プロバイダalgorithm
- 秘密鍵アルゴリズムpublic static final SecretKeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
SecretKeyFactory
オブジェクトを返します。
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダの SecretKeyFactorySpi 実装をカプセル化する新しい SecretKeyFactory オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された秘密鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの SecretKeyFactory のセクションを参照。SecretKeyFactory
オブジェクト。NullPointerException
- 指定されたアルゴリズムが null である場合。NoSuchAlgorithmException
- 指定したアルゴリズムの SecretKeyFactorySpi 実装をサポートするプロバイダが存在しない場合。Provider
public static final SecretKeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
SecretKeyFactory
オブジェクトを返します。
指定されたプロバイダからの SecretKeyFactorySpi 実装をカプセル化する新しい SecretKeyFactory オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された秘密鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの SecretKeyFactory のセクションを参照。provider
- プロバイダ名SecretKeyFactory
オブジェクト。NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムの SecretKeyFactorySpi 実装がない場合。NullPointerException
- 指定されたアルゴリズムが null である場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合IllegalArgumentException
- provider
が null または空の場合Provider
public static final SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
SecretKeyFactory
オブジェクトを返します。
指定された Provider オブジェクトからの SecretKeyFactorySpi 実装をカプセル化する新しい SecretKeyFactory オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
algorithm
- 要求された秘密鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの SecretKeyFactory のセクションを参照。provider
- プロバイダSecretKeyFactory
オブジェクト。NullPointerException
- 指定されたアルゴリズムが null である場合。NoSuchAlgorithmException
- 指定された Provider オブジェクトに指定されたアルゴリズムの SecretKeyFactorySpi の実装がない場合。IllegalArgumentException
- provider
が null の場合Provider
public final Provider getProvider()
SecretKeyFactory
オブジェクトのプロバイダを返します。SecretKeyFactory
オブジェクトのプロバイダpublic final String getAlgorithm()
SecretKeyFactory
オブジェクトのアルゴリズム名を返します。
これは、この SecretKeyFactory
オブジェクトを作成した getInstance
呼び出しのいずれかに指定された名前と同じです。
SecretKeyFactory
オブジェクトのアルゴリズム名。public final SecretKey generateSecret(KeySpec keySpec) throws InvalidKeySpecException
SecretKey
オブジェクトを生成します。keySpec
- 秘密鍵の仕様 (鍵データ)InvalidKeySpecException
- 指定された鍵仕様がこの秘密鍵ファクトリによる秘密鍵の生成に不適切な場合。public final KeySpec getKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException
key
- 鍵keySpec
- 鍵データが返される、要求された形式InvalidKeySpecException
- 要求された鍵仕様が指定された鍵に不適切 (key
と keySpec
に関連するアルゴリズムが一致しない、あるいは key
は暗号化ハードウェアデバイスの鍵を参照するが、keySpec
はソフトウェアベースの鍵の仕様であるなど) な場合、あるいは指定された鍵を扱えない場合 (たとえば、指定された鍵のアルゴリズムまたは形式がこの秘密鍵ファクトリでサポートされていない)。public final SecretKey translateKey(SecretKey key) throws InvalidKeyException
key
- プロバイダが未知であるか、信頼できない鍵InvalidKeyException
- 指定された鍵をこの秘密鍵ファクトリで処理できない場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.