Class SipHash128

  • All Implemented Interfaces:
    Mac

    public class SipHash128
    extends SipHash
    Implementation of SipHash with 128 bit output.

    Based on the SipHash and the C reference implementation https://github.com/veorq/SipHash.

    • Constructor Detail

      • SipHash128

        public SipHash128()
        SipHash128-2-4
      • SipHash128

        public SipHash128​(int c,
                          int d)
        SipHash128-c-d
        Parameters:
        c - the number of compression rounds
        d - the number of finalization rounds
    • Method Detail

      • getAlgorithmName

        public java.lang.String getAlgorithmName()
        Description copied from interface: Mac
        Return the name of the algorithm the MAC implements.
        Specified by:
        getAlgorithmName in interface Mac
        Overrides:
        getAlgorithmName in class SipHash
        Returns:
        the name of the algorithm the MAC implements.
      • getMacSize

        public int getMacSize()
        Description copied from interface: Mac
        Return the block size for this MAC (in bytes).
        Specified by:
        getMacSize in interface Mac
        Overrides:
        getMacSize in class SipHash
        Returns:
        the block size for this MAC in bytes.
      • doFinal

        public int doFinal​(byte[] out,
                           int outOff)
                    throws DataLengthException,
                           java.lang.IllegalStateException
        Description copied from interface: Mac
        Compute the final stage of the MAC writing the output to the out parameter.

        doFinal leaves the MAC in the same state it was after the last init.

        Specified by:
        doFinal in interface Mac
        Overrides:
        doFinal in class SipHash
        Parameters:
        out - the array the MAC is to be output to.
        outOff - the offset into the out buffer the output is to start at.
        Throws:
        DataLengthException - if there isn't enough space in out.
        java.lang.IllegalStateException - if the MAC is not initialised.
      • reset

        public void reset()
        Description copied from interface: Mac
        Reset the MAC. At the end of resetting the MAC should be in the in the same state it was after the last init (if there was one).
        Specified by:
        reset in interface Mac
        Overrides:
        reset in class SipHash