ASCON Suite
Functions
ascon-hasha.c File Reference
#include <ascon/hash.h>
#include "core/ascon-util-snp.h"
#include <string.h>

Go to the source code of this file.

Functions

void ascon_hasha (unsigned char *out, const unsigned char *in, size_t inlen)
 Hashes a block of input data with ASCON-HASHA. More...
 
void ascon_hasha_init (ascon_hasha_state_t *state)
 Initializes the state for an ASCON-HASHA hashing operation. More...
 
void ascon_hasha_reinit (ascon_hasha_state_t *state)
 Re-initializes the state for an ASCON-HASHA hashing operation. More...
 
void ascon_hasha_free (ascon_hasha_state_t *state)
 Frees the ASCON-HASHA state and destroys any sensitive material. More...
 
void ascon_hasha_update (ascon_hasha_state_t *state, const unsigned char *in, size_t inlen)
 Updates an ASCON-HASHA state with more input data. More...
 
void ascon_hasha_finalize (ascon_hasha_state_t *state, unsigned char *out)
 Returns the final hash value from an ASCON-HASHA hashing operation. More...
 
void ascon_hasha_copy (ascon_hasha_state_t *dest, const ascon_hasha_state_t *src)
 Clones a copy of an ASCON-HASHA state. More...
 

Function Documentation

◆ ascon_hasha()

void ascon_hasha ( unsigned char *  out,
const unsigned char *  in,
size_t  inlen 
)

Hashes a block of input data with ASCON-HASHA.

Parameters
outBuffer to receive the hash output which must be at least ASCON_HASHA_SIZE bytes in length.
inPoints to the input data to be hashed.
inlenLength of the input data in bytes.
See also
ascon_hasha_init(), ascon_hasha_absorb(), ascon_hasha_squeeze()

Definition at line 27 of file ascon-hasha.c.

◆ ascon_hasha_copy()

void ascon_hasha_copy ( ascon_hasha_state_t dest,
const ascon_hasha_state_t src 
)

Clones a copy of an ASCON-HASHA state.

Parameters
destDestination hash state to copy into.
srcSource hash state to copy from.

The destination will be initialized by this operation, so it must not previously have been initialized or it has already been freed. The source must be already initialized.

Definition at line 100 of file ascon-hasha.c.

◆ ascon_hasha_finalize()

void ascon_hasha_finalize ( ascon_hasha_state_t state,
unsigned char *  out 
)

Returns the final hash value from an ASCON-HASHA hashing operation.

Parameters
stateHash state to be finalized.
outPoints to the output buffer to receive the 32-byte hash value.
See also
ascon_hasha_init(), ascon_hasha_update()

Definition at line 95 of file ascon-hasha.c.

◆ ascon_hasha_free()

void ascon_hasha_free ( ascon_hasha_state_t state)

Frees the ASCON-HASHA state and destroys any sensitive material.

Parameters
stateHash state to be freed.

Definition at line 84 of file ascon-hasha.c.

◆ ascon_hasha_init()

void ascon_hasha_init ( ascon_hasha_state_t state)

Initializes the state for an ASCON-HASHA hashing operation.

Parameters
stateHash state to be initialized.
See also
ascon_hasha_update(), ascon_hasha_finalize(), ascon_hasha()

Definition at line 36 of file ascon-hasha.c.

◆ ascon_hasha_reinit()

void ascon_hasha_reinit ( ascon_hasha_state_t state)

Re-initializes the state for an ASCON-HASHA hashing operation.

Parameters
stateHash state to be re-initialized.

This function is equivalent to calling ascon_hasha_free() and then ascon_hasha_init() to restart the hashing process.

See also
ascon_hasha_init()

Definition at line 73 of file ascon-hasha.c.

◆ ascon_hasha_update()

void ascon_hasha_update ( ascon_hasha_state_t state,
const unsigned char *  in,
size_t  inlen 
)

Updates an ASCON-HASHA state with more input data.

Parameters
stateHash state to be updated.
inPoints to the input data to be incorporated into the state.
inlenLength of the input data to be incorporated into the state.
See also
ascon_hasha_init(), ascon_hasha_finalize()

Definition at line 89 of file ascon-hasha.c.