Module java.base
Package javax.crypto

Class MacSpi

java.lang.Object
javax.crypto.MacSpi

public abstract class MacSpi extends Object
此类为Mac类定义了服务提供者接口SPI)。该类中的所有抽象方法必须由每个希望提供特定MAC算法实现的加密服务提供者来实现。

实现可以自由实现Cloneable接口。

自版本:
1.4
  • Constructor Summary

    Constructors
    Constructor
    Description
    MacSpi()
    子类调用的构造函数。
  • Method Summary

    Modifier and Type
    Method
    Description
    clone()
    如果实现支持克隆,则返回克隆对象。
    protected abstract byte[]
    完成MAC计算并重置MAC以供进一步使用,保持MAC初始化时使用的密钥。
    protected abstract int
    返回MAC的字节长度。
    protected abstract void
    使用给定的(秘密)密钥和算法参数初始化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
    处理ByteBuffer inputinput.remaining()个字节,从input.position()开始。

    Methods declared in class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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

      protected void engineUpdate(ByteBuffer input)
      处理ByteBuffer inputinput.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

      public Object clone() throws CloneNotSupportedException
      如果实现支持克隆,则返回克隆对象。
      覆盖:
      clone 在类 Object
      返回:
      如果实现支持克隆,则返回克隆对象。
      抛出:
      CloneNotSupportedException - 如果在不支持Cloneable的实现上调用此方法。
      参见: