模块  java.base
软件包  java.security

Class KeyFactorySpi


  • public abstract class KeyFactorySpi
    extends Object
    此类定义KeyFactory类的 ( SPI )。 此类中的所有抽象方法必须由希望为特定算法提供密钥工厂实现的每个加密服务提供者实现。

    关键工厂用于将密钥Key类型的不透明加密密钥)转换为关键规范 (底层密钥材料的透明表示),反之亦然。

    主要工厂是双向的。 也就是说,它们允许您根据给定的密钥规范(密钥材料)构建不透明的密钥对象,或者以适当的格式检索密钥对象的基础密钥材料。

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

    提供商应记录其主要工厂支持的所有关键规范。

    从以下版本开始:
    1.2
    另请参见:
    KeyFactoryKeyPublicKeyPrivateKeyKeySpecDSAPublicKeySpecX509EncodedKeySpec
    • 构造方法详细信息

      • KeyFactorySpi

        public KeyFactorySpi()
    • 方法详细信息

      • engineGeneratePublic

        protected abstract PublicKey engineGeneratePublic​(KeySpec keySpec)
                                                   throws InvalidKeySpecException
        从提供的密钥规范(密钥材料)生成公钥对象。
        参数
        keySpec - 公钥的规范(密钥材料)。
        结果
        公钥。
        异常
        InvalidKeySpecException - 如果给定的密钥规范不适合此密钥工厂生成公钥。
      • engineGeneratePrivate

        protected abstract PrivateKey engineGeneratePrivate​(KeySpec keySpec)
                                                     throws InvalidKeySpecException
        从提供的密钥规范(密钥材料)生成私钥对象。
        参数
        keySpec - keySpec的规范(密钥材料)。
        结果
        私钥。
        异常
        InvalidKeySpecException - 如果给定的密钥规范不适合此密钥工厂生成私钥。
      • engineGetKeySpec

        protected abstract <T extends KeySpec> T engineGetKeySpec​(Key key,
                                                                  <T> keySpec)
                                                           throws InvalidKeySpecException
        返回给定密钥对象的规范(密钥材料)。 keySpec标识应返回密钥材料的规范类。 例如,它可以是DSAPublicKeySpec.class ,以指示应在DSAPublicKeySpec类的实例中返回密钥材料。
        参数类型
        T - 要返回的密钥规范的类型
        参数
        key - 关键。
        keySpec - 应返回密钥材料的规范类。
        结果
        请求的规范类的实例中的基础密钥规范(密钥材料)。
        异常
        InvalidKeySpecException - 如果所请求的密钥规范不适合给定密钥,或者不能处理给定密钥(例如,给定密钥具有未识别的格式)。
      • engineTranslateKey

        protected abstract Key engineTranslateKey​(Key key)
                                           throws InvalidKeyException
        将提供者可能未知或可能不受信任的密钥对象转换为此密钥工厂的相应密钥对象。
        参数
        key - 提供者未知或不可信的密钥。
        结果
        翻译的密钥。
        异常
        InvalidKeyException - if the given key cannot be processed by this key factory.