public abstract class SecretKeyFactorySpi extends Object
SecretKeyFactory
类。
该类中的所有抽象方法必须由希望为特定算法提供秘密密钥工厂的实现的每个加密服务提供商实现。
提供商应记录其密钥工厂支持的所有关键规范。 例如,由“SunJCE”提供商提供的DES秘密密钥工厂支持DESKeySpec
作为DES密钥的透明表示,该提供商的三重DES密钥的秘密密钥工厂支持DESedeKeySpec
作为三重DES密钥的透明表示。
SecretKey
, DESKeySpec
, DESedeKeySpec
Constructor and Description |
---|
SecretKeyFactorySpi() |
Modifier and Type | Method and Description |
---|---|
protected abstract SecretKey |
engineGenerateSecret(KeySpec keySpec)
从提供的密钥规范(密钥材料)生成一个
SecretKey 对象。
|
protected abstract KeySpec |
engineGetKeySpec(SecretKey key, 类<?> keySpec)
以请求的格式返回给定键对象的规范(关键材料)。
|
protected abstract SecretKey |
engineTranslateKey(SecretKey key)
将其提供者可能未知或可能不受信任的关键对象转换为该秘密密钥工厂的相应密钥对象。
|
protected abstract SecretKey engineGenerateSecret(KeySpec keySpec) throws InvalidKeySpecException
SecretKey
对象。
keySpec
- 秘密密钥的规范(密钥材料)
InvalidKeySpecException
- 如果给定的密钥规范不适合该秘密密钥工厂产生密钥。
protected abstract KeySpec engineGetKeySpec(SecretKey key, 类<?> keySpec) throws InvalidKeySpecException
key
- 关键
keySpec
- 要求退回关键材料的格式
InvalidKeySpecException
- 如果所请求的密钥规范对于给定的密钥是不合适的(例如,与
key
和
keySpec
不匹配,或
key
引用加密硬件设备上的密钥,而
keySpec
是基于软件的密钥的规范)或者给定的密钥不能被处理(例如,给定的密钥具有该秘密密钥工厂不支持的算法或格式)。
protected abstract SecretKey engineTranslateKey(SecretKey key) throws InvalidKeyException
key
- 提供者未知或不信任的密钥
InvalidKeyException
- if the given key cannot be processed by this secret-key factory.