Module java.base
Package javax.crypto

Class ExemptionMechanismSpi

java.lang.Object
javax.crypto.ExemptionMechanismSpi

public abstract class ExemptionMechanismSpi extends Object
此类为ExemptionMechanism类定义了服务提供者接口SPI)。该类中的所有抽象方法必须由每个希望提供特定豁免机制实现的加密服务提供者来实现。
自版本:
1.4
  • Constructor Details

    • ExemptionMechanismSpi

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

    • 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 - 如果在初始化过程中遇到问题。
    • engineInit

      使用密钥和一组算法参数初始化此豁免机制。

      如果此豁免机制需要任何算法参数且params为null,则底层豁免机制实现应该自动生成所需的参数(使用特定于提供程序的默认值);如果算法参数必须由调用者指定,则会引发InvalidAlgorithmParameterException

      参数:
      key - 此豁免机制的密钥
      params - 算法参数
      抛出:
      InvalidKeyException - 如果给定的密钥不适用于此豁免机制。
      InvalidAlgorithmParameterException - 如果给定的算法参数不适用于此豁免机制。
      ExemptionMechanismException - 如果在初始化过程中遇到问题。
    • engineInit

      使用密钥和一组算法参数初始化此豁免机制。

      如果此豁免机制需要任何算法参数且params为null,则底层豁免机制实现应该自动生成所需的参数(使用特定于提供程序的默认值);如果算法参数必须由调用者指定,则会引发InvalidAlgorithmParameterException

      参数:
      key - 此豁免机制的密钥
      params - 算法参数
      抛出:
      InvalidKeyException - 如果给定的密钥不适用于此豁免机制。
      InvalidAlgorithmParameterException - 如果给定的算法参数不适用于此豁免机制。
      ExemptionMechanismException - 如果在初始化过程中遇到问题。
    • engineGenExemptionBlob

      protected abstract byte[] engineGenExemptionBlob() throws ExemptionMechanismException
      生成豁免机制密钥 blob。
      返回:
      包含结果密钥 blob 的新缓冲区。
      抛出:
      ExemptionMechanismException - 如果在生成过程中遇到问题。
    • engineGenExemptionBlob

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

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

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