模块  java.base
软件包  javax.crypto

Class ExemptionMechanismSpi


  • public abstract class ExemptionMechanismSpi
    extends Object
    此类定义ExemptionMechanism类的 ( SPI )。 此类中的所有抽象方法必须由希望提供特定豁免机制实现的每个加密服务提供者实现。
    从以下版本开始:
    1.4
    • 构造方法详细信息

      • ExemptionMechanismSpi

        public ExemptionMechanismSpi()
    • 方法详细信息

      • engineGetOutputSize

        protected abstract int engineGetOutputSize​(int inputLen)
        返回输出缓冲区为了保存下一个engineGenExemptionBlob操作的结果所需的长度(以字节为单位),给定输入长度为inputLen (以字节为单位)。

        下一次engineGenExemptionBlob调用的实际输出长度可能小于此方法返回的长度。

        参数
        inputLen - 输入长度(以字节为单位)
        结果
        所需的输出缓冲区大小(以字节为单位)
      • engineInit

        protected abstract void engineInit​(Key key)
                                    throws InvalidKeyException,
                                           ExemptionMechanismException
        使用密钥初始化此豁免机制。

        如果此豁免机制需要任何无法从给定的key派生的算法参数,则基础豁免机制实现应该自己生成所需的参数(使用特定于提供者的默认值); 如果必须由调用者指定算法参数,则引发InvalidKeyException

        参数
        key - 此豁免机制的关键
        异常
        InvalidKeyException - 如果给定密钥不适合此豁免机制。
        ExemptionMechanismException - 如果在初始化过程中遇到问题。
      • engineGenExemptionBlob

        protected abstract int engineGenExemptionBlob​(byte[] output,
                                                      int outputOffset)
                                               throws ShortBufferException,
                                                      ExemptionMechanismException
        生成豁免机制密钥blob,并将结果存储在output缓冲区中,从outputOffset开始。

        如果output缓冲区太小而无法保存结果,则抛出ShortBufferException 在这种情况下,请使用更大的输出缓冲区重复此调用。 使用engineGetOutputSize确定输出缓冲区应该有多大。

        参数
        output - 结果的缓冲区
        outputOffset - 存储结果的 output中的偏移量
        结果
        存储在 output的字节数
        异常
        ShortBufferException - 如果给定的输出缓冲区太小而无法保存结果。
        ExemptionMechanismException - 如果在生成过程中遇到问题。