public abstract class KeyFactorySpi extends Object
KeyFactory
クラスのサービス・プロバイダ・インタフェース (SPI)を定義します。特定アルゴリズムの鍵ファクトリの実装を提供する各暗号サービス・プロバイダは、このクラスのすべての抽象メソッドを実装する必要があります。
鍵ファクトリは、Key
型の不透明な暗号鍵である鍵と、基本の鍵データの透明な表現である鍵仕様との間の変換を行うために使用します。
鍵ファクトリは、双方向性があります。つまり、指定した鍵仕様(鍵データ)から不透明な鍵オブジェクトを構築することも、適切な形式で鍵オブジェクトの基本の鍵データを取り出すこともできます。
同一の鍵に対して、複数の互換性のある鍵仕様が存在することがあります。たとえばDSA公開鍵は、DSAPublicKeySpec
またはX509EncodedKeySpec
を使って指定できます。鍵ファクトリは、互換性のある鍵仕様間の変換に使用できます。
プロバイダは、その鍵ファクトリがサポートするすべての鍵仕様をドキュメント化する必要があります。
KeyFactory
, Key
, PublicKey
, PrivateKey
, KeySpec
, DSAPublicKeySpec
, X509EncodedKeySpec
コンストラクタと説明 |
---|
KeyFactorySpi() |
修飾子と型 | メソッドと説明 |
---|---|
protected abstract PrivateKey |
engineGeneratePrivate(KeySpec keySpec)
指定された鍵仕様(鍵データ)から非公開鍵オブジェクトを生成します。
|
protected abstract PublicKey |
engineGeneratePublic(KeySpec keySpec)
指定された鍵仕様(鍵データ)から公開鍵オブジェクトを生成します。
|
protected abstract <T extends KeySpec> |
engineGetKeySpec(Key key, Class<T> keySpec)
指定された鍵オブジェクトの仕様(鍵データ)を返します。
|
protected abstract Key |
engineTranslateKey(Key key)
プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この鍵ファクトリの対応する鍵オブジェクトに変換します。
|
protected abstract PublicKey engineGeneratePublic(KeySpec keySpec) throws InvalidKeySpecException
keySpec
- 公開鍵の仕様(鍵データ)。InvalidKeySpecException
- 指定された鍵仕様がこの鍵ファクトリによる公開鍵の生成に不適切な場合。protected abstract PrivateKey engineGeneratePrivate(KeySpec keySpec) throws InvalidKeySpecException
keySpec
- 非公開鍵の仕様(鍵データ)。InvalidKeySpecException
- 指定された鍵仕様がこの鍵ファクトリによる非公開鍵の生成に不適切な場合。protected abstract <T extends KeySpec> T engineGetKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException
keySpec
は、鍵のデータが返されるべき仕様クラスを識別します。たとえば、DSAPublicKeySpec.class
は、鍵のデータがDSAPublicKeySpec
クラスのインスタンスに返されるべきであることを指示します。T
- 返される鍵仕様の型key
- 鍵。keySpec
- 鍵データが返される仕様クラス。InvalidKeySpecException
- 要求される鍵仕様が指定された鍵に不適切な場合、または認識されない形式の鍵を指定した場合など、指定された鍵を処理できない場合。protected abstract Key engineTranslateKey(Key key) throws InvalidKeyException
key
- プロバイダが未知であるか、信頼できない鍵。InvalidKeyException
- 指定された鍵をこの鍵ファクトリで処理できない場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.