Module java.base
Package javax.crypto

Class SecretKeyFactorySpi

java.lang.Object
javax.crypto.SecretKeyFactorySpi

public abstract class SecretKeyFactorySpi extends Object
这个类为SecretKeyFactory类定义了服务提供者接口SPI)。该类中的所有抽象方法必须由每个希望为特定算法提供秘钥工厂实现的加密服务提供者来实现。

提供者应该记录其秘钥工厂支持的所有秘钥规范。例如,“SunJCE”提供的DES秘钥工厂支持DESKeySpec作为DES秘钥的透明表示,该提供者的Triple DES秘钥工厂支持DESedeKeySpec作为Triple DES秘钥的透明表示。

自从:
1.4
参见:
  • Constructor Details

    • SecretKeyFactorySpi

      public SecretKeyFactorySpi()
      子类调用的构造函数。
  • Method Details

    • engineGenerateSecret

      protected abstract SecretKey engineGenerateSecret(KeySpec keySpec) throws InvalidKeySpecException
      从提供的秘钥规范(秘钥材料)生成一个SecretKey对象。
      参数:
      keySpec - 秘密秘钥的规范(秘钥材料)
      返回:
      秘密秘钥
      抛出:
      InvalidKeySpecException - 如果给定的秘钥规范不适合该秘钥工厂生成秘密秘钥。
    • engineGetKeySpec

      protected abstract KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException
      以请求的格式返回给定秘钥对象的规范(秘钥材料)。
      参数:
      key - 秘钥
      keySpec - 要返回秘钥材料的请求格式
      返回:
      请求格式中的底层秘钥规范(秘钥材料)
      抛出:
      InvalidKeySpecException - 如果请求的秘钥规范不适合给定的秘钥(例如,与keykeySpec关联的算法不匹配,或者key引用加密硬件设备上的秘钥,而keySpec是软件秘钥的规范,或者给定的秘钥无法处理(例如,给定的秘钥具有不受此秘钥工厂支持的算法或格式)。
    • engineTranslateKey

      protected abstract SecretKey engineTranslateKey(SecretKey key) throws InvalidKeyException
      将一个秘钥对象(其提供者可能未知或潜在不受信任)转换为该秘钥工厂的相应秘钥对象。
      参数:
      key - 其提供者未知或不受信任的秘钥
      返回:
      转换后的秘钥
      抛出:
      InvalidKeyException - 如果给定的秘钥无法被该秘钥工厂处理。