java.lang.Object javax.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
- 如果生成过程中出现问题。