Module  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,
                                                                  Class<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.