java.lang.Object javax.crypto.MacSpi
public abstract class MacSpi
此类为 Mac
类定义服务提供者接口 (SPI)。 此类中的所有抽象方法都必须由每个希望提供实现特定 MAC 算法的加密服务提供者实现。
该实现可以随意实现 Cloneable 接口。
构造方法摘要 | |
---|---|
MacSpi() |
方法摘要 | |
---|---|
Object |
clone() 如果此实现可以复制,则返回一个副本。 |
protected abstract byte[] |
engineDoFinal() 完成 MAC 计算并且重新设置 MAC 以便进一步使用,维护 MAC 初始化所用的秘密密钥。 |
protected abstract int |
engineGetMacLength() 返回以字节为单位的 MAC 的长度。 |
protected abstract void |
engineInit(Key key, AlgorithmParameterSpec params) 用给定的(秘密)密钥和算法参数初始化 MAC。 |
protected abstract void |
engineReset() 为了进一步使用而重新设置 MAC,维护 MAC 初始化所用的秘密密钥。 |
protected abstract void |
engineUpdate(byte input) 处理给定的字节。 |
protected abstract void |
engineUpdate(byte[] input, int offset, int len) 从 offset 开始处(包含),处理 input 中的前len 个字节。 |
protected void |
engineUpdate(ByteBuffer input) 从 input.position() 开始处,处理 ByteBuffer input 中的 input.remaining() 字节。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public MacSpi()
方法详细信息 |
---|
protected abstract int engineGetMacLength()
protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
key
- (秘密)密钥。
params
- 算法参数。
InvalidKeyException
- 如果给定密钥不适合初始化此 MAC。
InvalidAlgorithmParameterException
- 如果给定算法参数不适合此 MAC。
protected abstract void engineUpdate(byte input)
input
- 要处理的输入字节。
protected abstract void engineUpdate(byte[] input, int offset, int len)
offset
开始处(包含),处理
input
中的前
len
个字节。
input
- 输入缓冲区。
offset
-
input
中输入开始处的偏移量。
len
- 要处理的字节数。
protected void engineUpdate(ByteBuffer input)
input.position()
开始处,处理 ByteBuffer
input
中的
input.remaining()
字节。 返回时,缓冲区的位置将等于其限制;其限制并未改变。
如果能够比byte数组更有效地处理 ByteBuffer,子类应考虑重写此方法。
input
- ByteBuffer
protected abstract byte[] engineDoFinal()
protected abstract void engineReset()
public Object clone() throws CloneNotSupportedException
CloneNotSupportedException
- 如果调用一个不支持
Cloneable
的实现。
Cloneable