Class AsconHash256

java.lang.Object
org.bouncycastle.crypto.digests.AsconHash256
All Implemented Interfaces:
Digest, ExtendedDigest

public class AsconHash256 extends Object
Ascon-Hash256 was introduced in NIST Special Publication (SP) 800-232 (Initial Public Draft).

Additional details and the specification can be found in: NIST SP 800-232 (Initial Public Draft). For reference source code and implementation details, please see: Reference, highly optimized, masked C and ASM implementations of Ascon (NIST SP 800-232).

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final int
     
    protected int
     
    protected final int
     
    protected final byte[]
     
    protected int
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
    protected long
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    doFinal(byte[] output, int outOff)
    close the digest, producing the final digest value.
    return the algorithm name
    int
    Return the size in bytes of the internal buffer the digest applies it's compression function to.
    int
    return the size, in bytes, of the digest produced by this message digest.
    protected int
    hash(byte[] output, int outOff, int outLen)
     
    protected long
    loadBytes(byte[] bytes, int inOff)
     
    protected long
    loadBytes(byte[] bytes, int inOff, int n)
     
    protected void
    p(int nr)
     
    protected long
    pad(int i)
     
    protected void
     
    void
    reset the digest back to it's initial state.
    protected void
    setBytes(long w, byte[] bytes, int inOff)
     
    protected void
    setBytes(long w, byte[] bytes, int inOff, int n)
     
    protected void
    squeeze(byte[] output, int outOff, int len)
     
    void
    update(byte in)
    update the message digest with a single byte.
    void
    update(byte[] input, int inOff, int len)
    update the message digest with a block of bytes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • x0

      protected long x0
    • x1

      protected long x1
    • x2

      protected long x2
    • x3

      protected long x3
    • x4

      protected long x4
    • CRYPTO_BYTES

      protected final int CRYPTO_BYTES
      See Also:
    • ASCON_HASH_RATE

      protected final int ASCON_HASH_RATE
      See Also:
    • ASCON_PB_ROUNDS

      protected int ASCON_PB_ROUNDS
    • m_buf

      protected final byte[] m_buf
    • m_bufPos

      protected int m_bufPos
  • Constructor Details

    • AsconHash256

      public AsconHash256()
  • Method Details

    • pad

      protected long pad(int i)
    • loadBytes

      protected long loadBytes(byte[] bytes, int inOff)
    • loadBytes

      protected long loadBytes(byte[] bytes, int inOff, int n)
    • setBytes

      protected void setBytes(long w, byte[] bytes, int inOff)
    • setBytes

      protected void setBytes(long w, byte[] bytes, int inOff, int n)
    • getAlgorithmName

      public String getAlgorithmName()
      Description copied from interface: Digest
      return the algorithm name
      Returns:
      the algorithm name
    • reset

      public void reset()
      Description copied from interface: Digest
      reset the digest back to it's initial state.
      Specified by:
      reset in interface Digest
    • p

      protected void p(int nr)
    • getDigestSize

      public int getDigestSize()
      Description copied from interface: Digest
      return the size, in bytes, of the digest produced by this message digest.
      Specified by:
      getDigestSize in interface Digest
      Returns:
      the size, in bytes, of the digest produced by this message digest.
    • getByteLength

      public int getByteLength()
      Description copied from interface: ExtendedDigest
      Return the size in bytes of the internal buffer the digest applies it's compression function to.
      Specified by:
      getByteLength in interface ExtendedDigest
      Returns:
      byte length of the digests internal buffer.
    • update

      public void update(byte in)
      Description copied from interface: Digest
      update the message digest with a single byte.
      Specified by:
      update in interface Digest
      Parameters:
      in - the input byte to be entered.
    • update

      public void update(byte[] input, int inOff, int len)
      Description copied from interface: Digest
      update the message digest with a block of bytes.
      Specified by:
      update in interface Digest
      Parameters:
      input - the byte array containing the data.
      inOff - the offset into the byte array where the data starts.
      len - the length of the data.
    • doFinal

      public int doFinal(byte[] output, int outOff)
      Description copied from interface: Digest
      close the digest, producing the final digest value. The doFinal call leaves the digest reset.
      Specified by:
      doFinal in interface Digest
      Parameters:
      output - the array the digest is to be copied into.
      outOff - the offset into the out array the digest is to start at.
    • padAndAbsorb

      protected void padAndAbsorb()
    • squeeze

      protected void squeeze(byte[] output, int outOff, int len)
    • hash

      protected int hash(byte[] output, int outOff, int outLen)