Bouncy Castle Cryptography Library 1.81

org.bouncycastle.crypto.digests
Class AsconXof128

java.lang.Object
  extended byorg.bouncycastle.crypto.digests.BufferBaseDigest
      extended byorg.bouncycastle.crypto.digests.AsconBaseDigest
          extended byorg.bouncycastle.crypto.digests.AsconXofBase
              extended byorg.bouncycastle.crypto.digests.AsconXof128
All Implemented Interfaces:
Digest, ExtendedDigest, Xof

public class AsconXof128
extends org.bouncycastle.crypto.digests.AsconXofBase

Ascon-XOF128 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).


Nested Class Summary
static class AsconBaseDigest.Friend
           
protected static interface BufferBaseDigest.ProcessingBuffer
           
protected static class BufferBaseDigest.ProcessingBufferType
           
 
Field Summary
protected  java.lang.String algorithmName
           
protected  int ASCON_PB_ROUNDS
           
protected  int BlockSize
           
protected  int DigestSize
           
protected  byte[] m_buf
           
protected  int m_bufPos
           
protected  BufferBaseDigest.ProcessingBuffer processor
           
 
Constructor Summary
AsconXof128()
           
 
Method Summary
 int doFinal(byte[] output, int outOff)
          close the digest, producing the final digest value.
 int doFinal(byte[] output, int outOff, int outLen)
          Output the results of the final calculation for this digest to outLen number of bytes.
 int doOutput(byte[] output, int outOff, int outLen)
          Start outputting the results of the final calculation for this digest.
protected  void ensureSufficientInputBuffer(byte[] input, int inOff, int len)
           
protected  void ensureSufficientOutputBuffer(byte[] output, int outOff)
           
protected  void ensureSufficientOutputBuffer(byte[] output, int outOff, int len)
           
protected  void finish(byte[] output, int outOff)
           
 java.lang.String getAlgorithmName()
          return the algorithm name
 int getByteLength()
          Return the size in bytes of the internal buffer the digest applies it's compression function to.
 int getDigestSize()
          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  long pad(int i)
           
protected  void padAndAbsorb()
           
protected  void processBytes(byte[] input, int inOff)
           
 void reset()
          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
 
Methods inherited from interface org.bouncycastle.crypto.ExtendedDigest
getByteLength
 
Methods inherited from interface org.bouncycastle.crypto.Digest
doFinal, getAlgorithmName, getDigestSize
 

Field Detail

ASCON_PB_ROUNDS

protected int ASCON_PB_ROUNDS

DigestSize

protected int DigestSize

BlockSize

protected int BlockSize

m_buf

protected byte[] m_buf

m_bufPos

protected int m_bufPos

algorithmName

protected java.lang.String algorithmName

processor

protected BufferBaseDigest.ProcessingBuffer processor
Constructor Detail

AsconXof128

public AsconXof128()
Method Detail

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)

reset

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


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

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

doOutput

public int doOutput(byte[] output,
                    int outOff,
                    int outLen)
Description copied from interface: Xof
Start outputting the results of the final calculation for this digest. Unlike doFinal, this method will continue producing output until the Xof is explicitly reset, or signals otherwise.

Specified by:
doOutput in interface Xof
Parameters:
output - output array to write the output bytes to.
outOff - offset to start writing the bytes at.
outLen - the number of output bytes requested.
Returns:
the number of bytes written

doFinal

public int doFinal(byte[] output,
                   int outOff,
                   int outLen)
Description copied from interface: Xof
Output the results of the final calculation for this digest to outLen number of bytes.

Specified by:
doFinal in interface Xof
Parameters:
output - output array to write the output bytes to.
outOff - offset to start writing the bytes at.
outLen - the number of output bytes requested.
Returns:
the number of bytes written

padAndAbsorb

protected void padAndAbsorb()

processBytes

protected void processBytes(byte[] input,
                            int inOff)

finish

protected void finish(byte[] output,
                      int outOff)

squeeze

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

hash

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

ensureSufficientOutputBuffer

protected void ensureSufficientOutputBuffer(byte[] output,
                                            int outOff,
                                            int len)

getAlgorithmName

public java.lang.String getAlgorithmName()
Description copied from interface: Digest
return the algorithm name

Specified by:
getAlgorithmName in interface Digest
Returns:
the algorithm name

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.

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.

ensureSufficientInputBuffer

protected void ensureSufficientInputBuffer(byte[] input,
                                           int inOff,
                                           int len)

ensureSufficientOutputBuffer

protected void ensureSufficientOutputBuffer(byte[] output,
                                            int outOff)

Bouncy Castle Cryptography Library 1.81