public abstract class ExemptionMechanismSpi extends Object
ExemptionMechanism
类。
该类中的所有抽象方法必须由希望提供特定豁免机制实施的每个加密服务提供商来实现。
Constructor and Description |
---|
ExemptionMechanismSpi() |
Modifier and Type | Method and Description |
---|---|
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)
使用密钥和一组算法参数初始化此豁免机制。
|
protected abstract int engineGetOutputSize(int inputLen)
inputLen
(以字节为单位),返回输出缓冲区需要保存下一个engineGenExemptionBlob
操作结果的字节长度。
下一个engineGenExemptionBlob
调用的实际输出长度可能小于此方法返回的长度。
inputLen
- 输入长度(以字节为单位)
protected abstract void engineInit(Key key) throws InvalidKeyException, ExemptionMechanismException
如果此豁免机制需要不能从给定的key
导出的任何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
为空,则基础豁免机制实现应该自身生成所需参数(使用提供者特定的默认值); 在的情况下算法参数必须由呼叫者指定,一个InvalidAlgorithmParameterException
上升。
key
- 这个豁免机制的关键
params
- 算法参数
InvalidKeyException
- 如果给定的密钥不适用于此豁免机制。
InvalidAlgorithmParameterException
- 如果给定的算法参数不适用于此豁免机制。
ExemptionMechanismException
- 如果在初始化过程中遇到问题。
protected abstract byte[] engineGenExemptionBlob() throws ExemptionMechanismException
ExemptionMechanismException
- 如果在生成过程中遇到问题。
protected abstract int engineGenExemptionBlob(byte[] output, int outputOffset) throws ShortBufferException, ExemptionMechanismException
output
缓冲区中,从outputOffset
开始。
如果output
缓冲区太小而不能保存结果,则会抛出一个ShortBufferException
。 在这种情况下,使用较大的输出缓冲区重复此呼叫。 使用engineGetOutputSize
来确定输出缓冲区应该有多大。
output
- 结果的缓冲区
outputOffset
- 存储结果的
output
中的偏移量
output
中的字节数
ShortBufferException
- 如果给定的输出缓冲区太小,不能保存结果。
ExemptionMechanismException
- 如果在生成过程中遇到问题。