java.lang.Object
java.security.KeyFactorySpi
此类为
KeyFactory
类定义了服务提供者接口(SPI)。该类中的所有抽象方法必须由每个希望为特定算法提供密钥工厂实现的加密服务提供者来实现。
密钥工厂用于将Key
类型的不透明加密密钥转换为密钥规范(底层密钥材料的透明表示),反之亦然。
密钥工厂是双向的。也就是说,它们允许您从给定的密钥规范(密钥材料)构建不透明密钥对象,或者以适当格式检索密钥对象的底层密钥材料。
同一密钥可能存在多个兼容的密钥规范。例如,可以使用DSAPublicKeySpec
或X509EncodedKeySpec
来指定DSA公钥。密钥工厂可用于在兼容的密钥规范之间进行转换。
提供者应记录其密钥工厂支持的所有密钥规范。
- 自版本:
- 1.2
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract PrivateKey
engineGeneratePrivate
(KeySpec keySpec) 从提供的密钥规范(密钥材料)生成私钥对象。protected abstract PublicKey
engineGeneratePublic
(KeySpec keySpec) 从提供的密钥规范(密钥材料)生成公钥对象。protected abstract <T extends KeySpec>
TengineGetKeySpec
(Key key, Class<T> keySpec) 返回给定密钥对象的规范(密钥材料)。protected abstract Key
engineTranslateKey
(Key key) 将一个密钥对象(其提供者可能未知或潜在不受信任)转换为该密钥工厂的相应密钥对象。
-
Constructor Details
-
KeyFactorySpi
public KeyFactorySpi()子类调用的构造函数。
-
-
Method Details
-
engineGeneratePublic
从提供的密钥规范(密钥材料)生成公钥对象。- 参数:
-
keySpec
- 公钥的规范(密钥材料)。 - 返回:
- 公钥。
- 抛出:
-
InvalidKeySpecException
- 如果给定的密钥规范不适合此密钥工厂生成公钥。
-
engineGeneratePrivate
从提供的密钥规范(密钥材料)生成私钥对象。- 参数:
-
keySpec
- 私钥的规范(密钥材料)。 - 返回:
- 私钥。
- 抛出:
-
InvalidKeySpecException
- 如果给定的密钥规范不适合此密钥工厂生成私钥。
-
engineGetKeySpec
protected abstract <T extends KeySpec> T engineGetKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException 返回给定密钥对象的规范(密钥材料)。keySpec
标识应返回密钥材料的规范类。例如,可以使用DSAPublicKeySpec.class
来指示应以DSAPublicKeySpec
类的实例返回密钥材料。- 类型参数:
-
T
- 要返回的密钥规范的类型 - 参数:
-
key
- 密钥。 -
keySpec
- 应返回密钥材料的规范类。 - 返回:
- 请求的规范类的底层密钥规范(密钥材料)。
- 抛出:
-
InvalidKeySpecException
- 如果请求的密钥规范不适合给定的密钥,或者无法处理给定的密钥(例如,给定的密钥具有无法识别的格式)。
-
engineTranslateKey
将一个密钥对象(其提供者可能未知或潜在不受信任)转换为该密钥工厂的相应密钥对象。- 参数:
-
key
- 其提供者未知或不受信任的密钥。 - 返回:
- 转换后的密钥。
- 抛出:
-
InvalidKeyException
- 如果无法处理给定的密钥。
-