KeyFactorySpi
public abstract class KeyFactorySpi
extends Object
该类定义了KeyFactory
类的 ( SPI )。 该类中的所有抽象方法都必须由每个希望为特定算法提供关键工厂实现的加密服务提供者来实现。
密钥工厂用于将 密钥 ( Key
类型的不透明密码密钥)转换为 密钥规范 (底层密钥材料的透明表示),反之亦然。
主要工厂是双向的。 也就是说,它们允许您从给定的密钥规范(密钥材料)构建不透明的密钥对象,或者以合适的格式检索密钥对象的基础密钥材料。
同一个密钥可能存在多个兼容密钥规范。 例如,可以使用DSAPublicKeySpec
或X509EncodedKeySpec
来指定DSA公钥。 一个关键工厂可以用来在兼容的密钥规范之间进行转换。
供应商应记录其关键工厂支持的所有关键规格。
Summary
Public constructors
KeyFactorySpi
KeyFactorySpi ()
Protected methods
engineGeneratePrivate
PrivateKey engineGeneratePrivate (KeySpec keySpec)
根据提供的密钥规范(密钥材料)生成私钥对象。
Parameters |
keySpec |
KeySpec : the specification (key material) of the private key. |
Throws |
InvalidKeySpecException |
if the given key specification is inappropriate for this key factory to produce a private key. |
engineGeneratePublic
PublicKey engineGeneratePublic (KeySpec keySpec)
根据提供的密钥规范(密钥材料)生成公钥对象。
Parameters |
keySpec |
KeySpec : the specification (key material) of the public key. |
Throws |
InvalidKeySpecException |
if the given key specification is inappropriate for this key factory to produce a public key. |
engineGetKeySpec
T engineGetKeySpec (Key key,
Class<T> keySpec)
返回给定密钥对象的规范(密钥材料)。 keySpec
标识了应该返回密钥材料的规范类。 例如,它可以是DSAPublicKeySpec.class
,表示在DSAPublicKeySpec
类的实例中应该返回关键材料。
Parameters |
key |
Key : the key. |
keySpec |
Class : the specification class in which the key material should be returned. |
Returns |
T |
the underlying key specification (key material) in an instance of the requested specification class. |
Throws |
InvalidKeySpecException |
if the requested key specification is inappropriate for the given key, or the given key cannot be dealt with (e.g., the given key has an unrecognized format). |
engineTranslateKey
Key engineTranslateKey (Key key)
将提供者可能未知或可能不可信的密钥对象转换为此密钥工厂的相应密钥对象。
Parameters |
key |
Key : the key whose provider is unknown or untrusted. |
Returns |
Key |
the translated key. |