java.lang.Object
javax.crypto.ExemptionMechanismSpi
此类为
ExemptionMechanism
类定义了服务提供者接口(SPI)。该类中的所有抽象方法必须由每个希望提供特定豁免机制实现的加密服务提供者来实现。
- 自版本:
- 1.4
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract byte[]
生成豁免机制密钥 blob。protected abstract int
engineGenExemptionBlob
(byte[] output, int outputOffset) 生成豁免机制密钥 blob,并将结果存储在output
缓冲区中,从outputOffset
开始(包括outputOffset
)。protected abstract int
engineGetOutputSize
(int inputLen) 返回下一个engineGenExemptionBlob
操作的结果所需的输出缓冲区长度(以字节为单位),给定输入长度inputLen
(以字节为单位)。protected abstract void
engineInit
(Key key) 使用密钥初始化此豁免机制。protected abstract void
engineInit
(Key key, AlgorithmParameters params) 使用密钥和一组算法参数初始化此豁免机制。protected abstract void
engineInit
(Key key, AlgorithmParameterSpec params) 使用密钥和一组算法参数初始化此豁免机制。
-
Constructor Details
-
ExemptionMechanismSpi
public ExemptionMechanismSpi()子类调用的构造函数。
-
-
Method Details
-
engineGetOutputSize
protected abstract int engineGetOutputSize(int inputLen) 返回下一个engineGenExemptionBlob
操作的结果所需的输出缓冲区长度(以字节为单位),给定输入长度inputLen
(以字节为单位)。下一个
engineGenExemptionBlob
调用的实际输出长度可能小于此方法返回的长度。- 参数:
-
inputLen
- 输入长度(以字节为单位) - 返回:
- 所需的输出缓冲区大小(以字节为单位)
-
engineInit
使用密钥初始化此豁免机制。如果此豁免机制需要无法从给定
key
派生的任何算法参数,则底层豁免机制实现应该自动生成所需的参数(使用特定于提供程序的默认值);如果算法参数必须由调用者指定,则会引发InvalidKeyException
。- 参数:
-
key
- 此豁免机制的密钥 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适用于此豁免机制。 -
ExemptionMechanismException
- 如果在初始化过程中遇到问题。
-
engineInit
protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismException 使用密钥和一组算法参数初始化此豁免机制。如果此豁免机制需要任何算法参数且
params
为null,则底层豁免机制实现应该自动生成所需的参数(使用特定于提供程序的默认值);如果算法参数必须由调用者指定,则会引发InvalidAlgorithmParameterException
。- 参数:
-
key
- 此豁免机制的密钥 -
params
- 算法参数 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适用于此豁免机制。 -
InvalidAlgorithmParameterException
- 如果给定的算法参数不适用于此豁免机制。 -
ExemptionMechanismException
- 如果在初始化过程中遇到问题。
-
engineInit
protected abstract void engineInit(Key key, AlgorithmParameters params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismException 使用密钥和一组算法参数初始化此豁免机制。如果此豁免机制需要任何算法参数且
params
为null,则底层豁免机制实现应该自动生成所需的参数(使用特定于提供程序的默认值);如果算法参数必须由调用者指定,则会引发InvalidAlgorithmParameterException
。- 参数:
-
key
- 此豁免机制的密钥 -
params
- 算法参数 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适用于此豁免机制。 -
InvalidAlgorithmParameterException
- 如果给定的算法参数不适用于此豁免机制。 -
ExemptionMechanismException
- 如果在初始化过程中遇到问题。
-
engineGenExemptionBlob
生成豁免机制密钥 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
- 如果在生成过程中遇到问题。
-