- java.lang.Object
-
- javax.crypto.ExemptionMechanismSpi
-
public abstract class ExemptionMechanismSpiextends Object
此类定义ExemptionMechanism
类的 ( SPI )。 此类中的所有抽象方法必须由希望提供特定豁免机制实现的每个加密服务提供者实现。- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 构造器 描述 ExemptionMechanismSpi()
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 protected abstract byte[]
engineGenExemptionBlob()
生成豁免机制密钥blob。protected abstract int
engineGenExemptionBlob(byte[] output, int outputOffset)
生成豁免机制密钥blob,并将结果存储在output
缓冲区中,从outputOffset
开始。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)
使用密钥和一组算法参数初始化此免除机制。
-
-
-
方法详细信息
-
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
protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismException
使用密钥和一组算法参数初始化此免除机制。如果此豁免机制需要任何算法参数且
params
为空,则基础豁免机制实现应该自己生成所需的参数(使用特定于提供者的默认值); 如果必须由调用者指定算法参数,则引发InvalidAlgorithmParameterException
。- 参数
-
key
- 此豁免机制的关键 -
params
- 算法参数 - 异常
-
InvalidKeyException
- 如果给定的密钥不适合此豁免机制。 -
InvalidAlgorithmParameterException
- 如果给定的算法参数不适合此豁免机制。 -
ExemptionMechanismException
- 如果在初始化过程中遇到问题。
-
engineInit
protected abstract void engineInit(Key key, AlgorithmParameters params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismException
使用密钥和一组算法参数初始化此免除机制。如果此豁免机制需要任何算法参数且
params
为空,则基础豁免机制实现应自行生成所需参数(使用特定于提供程序的默认值); 如果必须由调用者指定算法参数,则引发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
开始。如果
output
缓冲区太小而无法保存结果,则抛出ShortBufferException
。 在这种情况下,请使用更大的输出缓冲区重复此调用。 使用engineGetOutputSize
确定输出缓冲区应该有多大。- 参数
-
output
- 结果的缓冲区 -
outputOffset
- 存储结果的output
中的偏移量 - 结果
- 存储在
output
的字节数 - 异常
-
ShortBufferException
- 如果给定的输出缓冲区太小而无法保存结果。 -
ExemptionMechanismException
- 如果在生成过程中遇到问题。
-
-