/*
 * Author: Antoine Latter
 *
 * Interface to C reference implementation of the Whirlpool
 * hash.
 */

#ifndef __WHIRLPOOL_H__
#define __WHIRLPOOL_H__


#include <stdlib.h>
#include "nessie.h"

/**
 * Initialize the hashing state.
 */
void NESSIEinit(struct NESSIEstruct * const structpointer);

/**
 * Delivers input data to the hashing algorithm.
 *
 * @param    source        plaintext data to hash.
 * @param    sourceBits    how many bits of plaintext to process.
 */
void NESSIEadd(const unsigned char * const source,
               unsigned long sourceBits,
               struct NESSIEstruct * const structpointer);

/**
 * Get the hash value from the hashing state.
 */
void NESSIEfinalize(struct NESSIEstruct * const structpointer,
                    unsigned char * const result);

#endif
