public class SecretKeyFactory extends Object
キー・ファクトリは、Key型の不透明な暗号キーであるキーと、基本のキー・データの透明な表現であるキー仕様との間の変換を行うために使用します。 秘密キー・ファクトリの操作は、秘密(対称)キーだけに行います。
キー・ファクトリは双方向性です。つまり、指定したキー仕様(キー・データ)から不透明なキー・オブジェクトを構築することも、適切な形式でキー・オブジェクトの基本のキー・データを取り出すこともできます。
アプリケーション開発者は、プロバイダのドキュメントを参照して、generateSecretおよびgetKeySpecメソッドでサポートされているキー仕様を確認する必要があります。 たとえば、「SunJCE」プロバイダが提供するDES秘密キー・ファクトリはDESKeySpecをDESキーの透明な表現としてサポートし、そのプロバイダのTriple DESキーの秘密キー・ファクトリはDESedeKeySpecをTriple DESキーの透明な表現としてサポートします。
Javaプラットフォームの実装は、すべて次の標準のSecretKeyFactoryアルゴリズムをサポートする必要があります。
DESDESedeSecretKey, 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実装をサポートするプロバイダが存在しない場合。Providerpublic 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または空の場合Providerpublic 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の場合Providerpublic 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。