Module  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)
        给定输入长度为inputLen (以字节为单位),返回输出缓冲区需要保存下一个engineGenExemptionBlob操作结果的字节长度。

        下一个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 - 如果在生成过程中遇到问题。