Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.crypto.digests
Class Blake2sDigest

    java.lang.Object
      org.bouncycastle.crypto.digests.Blake2sDigest

All Implemented Interfaces:
  Digest, ExtendedDigest

public class Blake2sDigest
extends java.lang.Object
implements ExtendedDigest

Implementation of the cryptographic hash function BLAKE2s. BLAKE2s is optimized for 32-bit platforms and produces digests of any size between 1 and 32 bytes.

BLAKE2s offers a built-in keying mechanism to be used directly for authentication ("Prefix-MAC") rather than an HMAC construction.

BLAKE2s offers built-in support for a salt for randomized hashing and a personal string for defining a unique hash function for each application.

Constructor Summary
`Blake2sDigest()` BLAKE2s-256 for hashing.
`Blake2sDigest(Blake2sDigest digest)`
`Blake2sDigest(byte[] key)` BLAKE2s for authentication ("Prefix-MAC mode").
`Blake2sDigest(byte[] key, CryptoServicePurpose purpose)`
`Blake2sDigest(byte[] key, int digestBytes, byte[] salt, byte[] personalization)` BLAKE2s with key, required digest length, salt and personalization.
`Blake2sDigest(byte[] key, int digestBytes, byte[] salt, byte[] personalization, CryptoServicePurpose purpose)`
`Blake2sDigest(int digestSize)` Basic sized constructor - size in bits.
`Blake2sDigest(int digestBits, CryptoServicePurpose purpose)` BLAKE2s for hashing.

Method Summary
`void` | `clearKey()` Overwrite the key if it is no longer used (zeroization).
`void` | `clearSalt()` Overwrite the salt (pepper) if it is secret and no longer used (zeroization).
`int` | `doFinal(byte[] out, int outOffset)` Close the digest, producing the final digest value.
`java.lang.String` | `getAlgorithmName()` Return the algorithm name.
`int` | `getByteLength()` Return the size in bytes of the internal buffer the digest applies its compression function to.
`int` | `getDigestSize()` Return the size in bytes of the digest produced by this message digest.
`void` | `reset()` Reset the digest back to its initial state.
`protected void` | `setAsLastNode()`
`void` | `update(byte b)` Update the message digest with a single byte.
`void` | `update(byte[] message, int offset, 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`

Constructor Detail

### Blake2sDigest

    public Blake2sDigest()

  BLAKE2s-256 for hashing.

### Blake2sDigest

    public Blake2sDigest(int digestSize)

  Basic sized constructor - size in bits.

Parameters:
  `digestSize` - size of digest (in bits)

### Blake2sDigest

    public Blake2sDigest(Blake2sDigest digest)

### Blake2sDigest

    public Blake2sDigest(int digestBits,
                         CryptoServicePurpose purpose)

  BLAKE2s for hashing.

Parameters:
  `digestBits` - the desired digest length in bits. Must be a multiple of 8 and less than 256.
  `purpose` - usage purpose.

### Blake2sDigest

    public Blake2sDigest(byte[] key)

  BLAKE2s for authentication ("Prefix-MAC mode").

  After calling the doFinal() method, the key will remain to be used for further computations of this instance. The key can be overwritten using the clearKey() method.

Parameters:
  `key` - a key up to 32 bytes or null

### Blake2sDigest

    public Blake2sDigest(byte[] key,
                         CryptoServicePurpose purpose)

### Blake2sDigest

    public Blake2sDigest(byte[] key,
                         int digestBytes,
                         byte[] salt,
                         byte[] personalization)

  BLAKE2s with key, required digest length, salt and personalization.

  After calling the doFinal() method, the key, the salt and the personal string will remain and might be used for further computations with this instance. The key can be overwritten using the clearKey() method, the salt (pepper) can be overwritten using the clearSalt() method.

Parameters:
  `key` - a key up to 32 bytes or null
  `digestBytes` - from 1 up to 32 bytes
  `salt` - 8 bytes or null
  `personalization` - 8 bytes or null

### Blake2sDigest

    public Blake2sDigest(byte[] key,
                         int digestBytes,
                         byte[] salt,
                         byte[] personalization,
                         CryptoServicePurpose purpose)

Method Detail

### update

    public void update(byte b)

  Update the message digest with a single byte.

  Specified by:
    `update` in interface `Digest`
  Parameters:
    `b` - the input byte to be entered.

### update

    public void update(byte[] message,
                       int offset,
                       int len)

  Update the message digest with a block of bytes.

  Specified by:
    `update` in interface `Digest`
  Parameters:
    `message` - the byte array containing the data.
    `offset` - the offset into the byte array where the data starts.
    `len` - the length of the data.

### doFinal

    public int doFinal(byte[] out,
                       int outOffset)

  Close the digest, producing the final digest value. The doFinal() call leaves the digest reset. Key, salt and personal string remain.

  Specified by:
    `doFinal` in interface `Digest`
  Parameters:
    `out` - the array the digest is to be copied into.
    `outOffset` - the offset into the out array the digest is to start at.

### reset

    public void reset()

  Reset the digest back to its initial state. The key, the salt and the personal string will remain for further computations.

  Specified by:
    `reset` in interface `Digest`

### setAsLastNode

    protected void setAsLastNode()

### getAlgorithmName

    public java.lang.String getAlgorithmName()

  Return the algorithm name.

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

### getDigestSize

    public int getDigestSize()

  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()

  Return the size in bytes of the internal buffer the digest applies its compression function to.

  Specified by:
    `getByteLength` in interface `ExtendedDigest`
  Returns:
    byte length of the digest's internal buffer.

### clearKey

    public void clearKey()

  Overwrite the key if it is no longer used (zeroization).

### clearSalt

    public void clearSalt()

  Overwrite the salt (pepper) if it is secret and no longer used (zeroization).

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD