javax.crypto

接口
异常
java.lang.Object
  继承者 javax.crypto.MacSpi

public abstract class MacSpi
     
extends Object

此类为 Mac 类定义服务提供者接口 (SPI)。 此类中的所有抽象方法都必须由每个希望提供实现特定 MAC 算法的加密服务提供者实现。

该实现可以随意实现 Cloneable 接口。

从以下版本开始:
1.4

构造方法摘要
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
 

构造方法详细信息

MacSpi

public MacSpi()
方法详细信息

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)
offset 开始处(包含),处理 input 中的前 len 个字节。

参数:
input - 输入缓冲区。
offset - input 中输入开始处的偏移量。
len - 要处理的字节数。

engineUpdate

protected void engineUpdate(ByteBuffer input)
input.position() 开始处,处理 ByteBuffer input 中的 input.remaining() 字节。 返回时,缓冲区的位置将等于其限制;其限制并未改变。

如果能够比byte数组更有效地处理 ByteBuffer,子类应考虑重写此方法。

参数:
input - ByteBuffer
从以下版本开始:
1.5

engineDoFinal

protected abstract byte[] engineDoFinal()
完成 MAC 计算并且重新设置 MAC 以便进一步使用,维护 MAC 初始化所用的秘密密钥。

返回:
MAC 的结果。

engineReset

protected abstract void engineReset()
为了进一步使用而重新设置 MAC,维护 MAC 初始化所用的秘密密钥。


clone

public Object clone()
             throws CloneNotSupportedException
如果此实现可以复制,则返回一个副本。

覆盖:
Object 中的 clone
返回:
如果此实现可以复制,则返回一个副本。
抛出:
CloneNotSupportedException - 如果调用一个不支持 Cloneable 的实现。
另请参见:
Cloneable