java.lang.Objectjavax.crypto.ExemptionMechanismSpi
public abstract class ExemptionMechanismSpi
      此类为 ExemptionMechanism 类定义了服务提供者接口 (SPI)。此类中的所有抽象方法都必须由希望提供特定豁免机制实现的各个加密服务提供者来实现。 
| 构造方法摘要 | |
|---|---|
ExemptionMechanismSpi()  |  
    |
| 方法摘要 | |
|---|---|
 protected abstract  byte[] |  
     engineGenExemptionBlob() 生成豁免机制密钥 blob。  |  
    
 protected abstract  int |  
     engineGenExemptionBlob(byte[] output, int outputOffset) 生成豁免机制密钥 blob 并将结果存储在从 outputOffset(包括)开始的 output 缓冲区中。 |  
    
 protected abstract  int |  
     engineGetOutputSize(int inputLen) 给定了输入长度 inputLen (以字节为单位)的情况下,返回用于保存下一个 engineGenExemptionBlob 操作结果所需的输出缓冲区长度的字节长度。 |  
    
 protected abstract  void |  
     engineInit(Key key) 用密钥初始化此豁免机制。  |  
    
 protected abstract  void |  
     engineInit(Key key, AlgorithmParameters params) 用一个密钥和一组算法参数初始化此豁免机制。  |  
    
 protected abstract  void |  
     engineInit(Key key, AlgorithmParameterSpec params) 用一个密钥和一组算法参数初始化此豁免机制。  |  
    
| 从类 java.lang.Object 继承的方法 | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |  
    
| 构造方法详细信息 | 
|---|
public ExemptionMechanismSpi()
| 方法详细信息 | 
|---|
protected abstract int engineGetOutputSize(int inputLen)
inputLen (以字节为单位)的情况下,返回用于保存下一个 
    engineGenExemptionBlob 操作结果所需的输出缓冲区长度的字节长度。 
    下一个 engineGenExemptionBlob 调用的实际输出长度可能小于此方法返回的长度。 
inputLen - 输入长度(以字节为单位) 
     protected abstract void engineInit(Key key) throws InvalidKeyException, ExemptionMechanismException
如果此豁免机制需要的任何算法参数无法从给定的 key 派生,底层豁免机制实现将自己生成所需的参数(使用特定于提供者的默认值);如果算法参数必须由调用者指定,则会引发 InvalidKeyException 异常。 
key - 用于此豁免机制的密钥 
     InvalidKeyException - 如果给定的密钥不适合此豁免机制。 
     ExemptionMechanismException - 如果初始化过程中出现问题。
     protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismException
如果此豁免机制需要使用任何算法参数,而 params 为 null,底层豁免机制实现将自己生成所需的参数(使用特定于提供者的默认值);如果算法参数必须由调用者指定,则会引发 InvalidAlgorithmParameterException 异常。 
key - 用于此豁免机制的密钥
     params - 算法参数 
     InvalidKeyException - 如果给定的密钥不适合此豁免机制。 
     InvalidAlgorithmParameterException - 如果给定的算法参数不适合此豁免机制。 
     ExemptionMechanismException - 如果初始化过程中出现问题。
     protected abstract void engineInit(Key key, AlgorithmParameters params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismException
如果此豁免机制需要使用任何算法参数,而 params 为 null,底层豁免机制实现将自己生成所需的参数(使用特定于提供者的默认值);如果算法参数必须由调用者指定,则会引发 InvalidAlgorithmParameterException 异常。 
key - 用于此豁免机制的密钥
     params - 算法参数 
     InvalidKeyException - 如果给定的密钥不适合此豁免机制。 
     InvalidAlgorithmParameterException - 如果给定的算法参数不适合此豁免机制。 
     ExemptionMechanismException - 如果初始化过程中出现问题。
     
protected abstract byte[] engineGenExemptionBlob()
                                          throws ExemptionMechanismException 
  
ExemptionMechanismException - 如果生成过程中出现问题。
     
protected abstract int engineGenExemptionBlob(byte[] output,
                                              int outputOffset)
                                       throws ShortBufferException,
                                              ExemptionMechanismException 
  outputOffset(包括)开始的 
    output 缓冲区中。 
    如果 output 缓冲区太小无法保存该结果,则抛出 ShortBufferException 异常。这种情况下,使用一个稍大的缓冲区再次调用。使用 engineGetOutputSize 确定输出缓冲区应为多大。 
output - 用于保存结果的缓冲区
     outputOffset - 
      output 中的偏移量,即结果保存的位置 
     output 中存储的字节数 
     ShortBufferException - 如果给定的输出缓冲区太小无法保存该结果。 
     ExemptionMechanismException - 如果生成过程中出现问题。