Class HMACAccumulator


  • public class HMACAccumulator
    extends Object
    HMACAccumulator is used to build Hash Message Authentication Codes. It has two modes, one where all the data acquired is used to build the MAC and a second that assumes that the last n bytes of the acquired data will contain a MAC for all the data previous.

    The first mode it used in an encryption phase to create a MAC for the encrypted data. The second mode is used in the decryption phase and recalculates the MAC taking into account that for cases where the encrypted data MAC has been appended. Internally the accumulator uses a circular buffer to simplify the housekeeping of avoiding the last n bytes.

    It is assumed that the supplied buffersize is always greater than or equal to the mac length.

    • Method Detail

      • encryptUpdate

        public void encryptUpdate​(byte[] buffer,
                                  int read)
        Update buffer with MAC. Typically used in the encryption phase where no hmac is appended to the buffer.
      • decryptUpdate

        public void decryptUpdate​(byte[] buffer,
                                  int read)
                           throws IOException
        Update buffer with MAC taking into account that a MAC is appended to the buffer and should be precluded from the MAC calculation.
        Throws:
        IOException
      • getCalculatedMac

        public byte[] getCalculatedMac()
      • getAppendedMac

        public byte[] getAppendedMac()
      • validate

        public void validate()
      • getMaclength

        public int getMaclength()
      • attachStream

        public void attachStream​(OutputStream outputStream)