java.lang.Objectjavax.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