java.lang.Object
javax.crypto.SecretKeyFactorySpi
这个类为
SecretKeyFactory
类定义了服务提供者接口(SPI)。该类中的所有抽象方法必须由每个希望为特定算法提供秘钥工厂实现的加密服务提供者来实现。
提供者应该记录其秘钥工厂支持的所有秘钥规范。例如,“SunJCE”提供的DES秘钥工厂支持DESKeySpec
作为DES秘钥的透明表示,该提供者的Triple DES秘钥工厂支持DESedeKeySpec
作为Triple DES秘钥的透明表示。
- 自从:
- 1.4
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract SecretKey
engineGenerateSecret
(KeySpec keySpec) 从提供的秘钥规范(秘钥材料)生成一个SecretKey
对象。protected abstract KeySpec
engineGetKeySpec
(SecretKey key, Class<?> keySpec) 以请求的格式返回给定秘钥对象的规范(秘钥材料)。protected abstract SecretKey
将一个秘钥对象(其提供者可能未知或潜在不受信任)转换为该秘钥工厂的相应秘钥对象。
-
Constructor Details
-
SecretKeyFactorySpi
public SecretKeyFactorySpi()子类调用的构造函数。
-
-
Method Details
-
engineGenerateSecret
从提供的秘钥规范(秘钥材料)生成一个SecretKey
对象。- 参数:
-
keySpec
- 秘密秘钥的规范(秘钥材料) - 返回:
- 秘密秘钥
- 抛出:
-
InvalidKeySpecException
- 如果给定的秘钥规范不适合该秘钥工厂生成秘密秘钥。
-
engineGetKeySpec
protected abstract KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException 以请求的格式返回给定秘钥对象的规范(秘钥材料)。- 参数:
-
key
- 秘钥 -
keySpec
- 要返回秘钥材料的请求格式 - 返回:
- 请求格式中的底层秘钥规范(秘钥材料)
- 抛出:
-
InvalidKeySpecException
- 如果请求的秘钥规范不适合给定的秘钥(例如,与key
和keySpec
关联的算法不匹配,或者key
引用加密硬件设备上的秘钥,而keySpec
是软件秘钥的规范,或者给定的秘钥无法处理(例如,给定的秘钥具有不受此秘钥工厂支持的算法或格式)。
-
engineTranslateKey
将一个秘钥对象(其提供者可能未知或潜在不受信任)转换为该秘钥工厂的相应秘钥对象。- 参数:
-
key
- 其提供者未知或不受信任的秘钥 - 返回:
- 转换后的秘钥
- 抛出:
-
InvalidKeyException
- 如果给定的秘钥无法被该秘钥工厂处理。
-