java.security

接口
异常
java.lang.Object
  继承者 java.security.KeyFactorySpi

public abstract class KeyFactorySpi
     
extends Object

此类为 KeyFactory 类定义服务提供者接口 (SPI)。希望提供特定算法的密钥工厂实现的每个加密服务提供者必须实现此类中所有的抽象方法。

密钥工厂用来把 keys(类型 Key 的不透明密钥)转换成密钥规范(底层密钥材料的透明表示形式),反之亦然。

密钥工厂是双向的。也就是说,它们允许根据一个给定的密钥规范(密钥材料)来建造一个不透明的密钥对象,或获取以合适格式表示的密钥对象的底层密钥材料。

对于同一个密钥可以存在多个兼容的密钥规范。例如,一个 DSA 公钥可以使用 DSAPublicKeySpecX509EncodedKeySpec 指定。密钥工厂可以用来在兼容的密钥规范之间转换。

provider 应该记录其密钥工厂支持的所有密钥规范。

从以下版本开始:
1.2
另请参见:
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>
T
engineGetKeySpec(Key key, Class<T> keySpec)
          返回给定密钥对象的规范(密钥材料)。
protected abstract  Key engineTranslateKey(Key key)
          将其 provider 可能是未知的或可能不受信任的密钥对象转换成此密钥工厂的相应密钥对象。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

KeyFactorySpi

public KeyFactorySpi()
方法详细信息

engineGeneratePublic

protected abstract PublicKey engineGeneratePublic(KeySpec keySpec)
                                           throws InvalidKeySpecException
根据所提供的密钥规范(密钥材料)生成公钥对象。

参数:
keySpec - 公钥的规范(密钥材料)。
返回:
公钥。
抛出:
InvalidKeySpecException - 如果给定的密钥规范不适合此密钥工厂来生成公钥。

engineGeneratePrivate

protected abstract PrivateKey engineGeneratePrivate(KeySpec keySpec)
                                             throws InvalidKeySpecException
根据所提供的密钥规范(密钥材料)生成私钥对象。

参数:
keySpec - 私钥的规范(密钥材料)。
返回:
私钥。
抛出:
InvalidKeySpecException - 如果给定的密钥规范不适合此密钥工厂来生成私钥。

engineGetKeySpec

protected abstract <T extends KeySpec> T engineGetKeySpec(Key key,
                                                          Class<T> keySpec)
                                               throws InvalidKeySpecException
返回给定密钥对象的规范(密钥材料)。 keySpec 标识应该将密钥材料返回到其中的规范类。例如,它可能是 DSAPublicKeySpec.class,指示密钥材料应该返回到 DSAPublicKeySpec 类的一个实例中。

参数:
key - 密钥。
keySpec - 应该将密钥材料返回到其中的规范类。
返回:
请求的规范类中的底层密钥规范(密钥材料)。
抛出:
InvalidKeySpecException - 如果请求的密钥规范不适合给定的密钥,或给定的密钥不能被处理(例如,给定的密钥具有不能识别的格式)。

engineTranslateKey

protected abstract Key engineTranslateKey(Key key)
                                   throws InvalidKeyException
将其 provider 可能是未知的或可能不受信任的密钥对象转换成此密钥工厂的相应密钥对象。

参数:
key - 其 provider 是未知的或不受信任的密钥对象。
返回:
已转换的密钥。
抛出:
InvalidKeyException - 如果给定密钥不能被此密钥工厂处理。