java.lang.Object
javax.crypto.MacSpi
此类为
Mac
类定义了服务提供者接口(SPI)。该类中的所有抽象方法必须由每个希望提供特定MAC算法实现的加密服务提供者来实现。
实现可以自由实现Cloneable接口。
- 自版本:
- 1.4
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
如果实现支持克隆,则返回克隆对象。protected abstract byte[]
完成MAC计算并重置MAC以供进一步使用,保持MAC初始化时使用的密钥。protected abstract int
返回MAC的字节长度。protected abstract void
engineInit
(Key key, AlgorithmParameterSpec params) 使用给定的(秘密)密钥和算法参数初始化MAC。protected abstract void
重置MAC以供进一步使用,保持MAC初始化时使用的密钥。protected abstract void
engineUpdate
(byte input) 处理给定的字节。protected abstract void
engineUpdate
(byte[] input, int offset, int len) 处理input
中从offset
开始的前len
个字节。protected void
engineUpdate
(ByteBuffer input) 处理ByteBufferinput
中input.remaining()
个字节,从input.position()
开始。
-
Constructor Details
-
MacSpi
public MacSpi()子类调用的构造函数。
-
-
Method Details
-
engineGetMacLength
protected abstract int engineGetMacLength()返回MAC的字节长度。- 返回:
- MAC的字节长度。
-
engineInit
protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException 使用给定的(秘密)密钥和算法参数初始化MAC。- 参数:
-
key
- (秘密)密钥。 -
params
- 算法参数。 - 抛出:
-
InvalidKeyException
- 如果给定的密钥不适合初始化此MAC。 -
InvalidAlgorithmParameterException
- 如果给定的算法参数不适合此MAC。
-
engineUpdate
protected abstract void engineUpdate(byte input) 处理给定的字节。- 参数:
-
input
- 要处理的输入字节。
-
engineUpdate
protected abstract void engineUpdate(byte[] input, int offset, int len) 处理input
中从offset
开始的前len
个字节。- 参数:
-
input
- 输入缓冲区。 -
offset
- 输入开始的偏移量。 -
len
- 要处理的字节数。
-
engineUpdate
处理ByteBufferinput
中input.remaining()
个字节,从input.position()
开始。返回时,缓冲区的位置将等于其限制;其限制不会改变。如果子类可以比处理字节数组更有效地处理ByteBuffer,则应考虑重写此方法。
- 参数:
-
input
- ByteBuffer - 抛出:
-
NullPointerException
- 如果input
为null - 自版本:
- 1.5
-
engineDoFinal
protected abstract byte[] engineDoFinal()完成MAC计算并重置MAC以供进一步使用,保持MAC初始化时使用的密钥。- 返回:
- MAC结果。
-
engineReset
protected abstract void engineReset()重置MAC以供进一步使用,保持MAC初始化时使用的密钥。 -
clone
如果实现支持克隆,则返回克隆对象。- 覆盖:
-
clone
在类Object
中 - 返回:
- 如果实现支持克隆,则返回克隆对象。
- 抛出:
-
CloneNotSupportedException
- 如果在不支持Cloneable
的实现上调用此方法。 - 参见:
-