#ifndef _SHS_H
#define _SHS_H
#include "config.h"
#ifdef I_STDINT
#include <stdint.h>
#endif
#include "confmagic.h"
/* -------------- SHS.H --------------------------- */
#ifdef _WIN32
#define LONG SHS_LONG
#endif
#ifdef __MINGW32__
typedef unsigned char BYTE;
typedef long LONG;
#else
typedef unsigned char BYTE;
#ifdef HAS_UINT32_T
typedef uint32_t LONG;
#else
typedef unsigned long LONG;
#endif
#endif
#define SHS_BLOCKSIZE 64
#define SHS_DIGESTSIZE 20
/** An shs digest.
*/
typedef struct {
LONG digest[5]; /**< message digest */
LONG countLo; /**< 64-bit bit count, low half */
LONG countHi; /**< 64-bit bit count, high half */
LONG data[16]; /**< SHS data buffer */
BYTE reverse_wanted; /**< true to reverse (little_endian) false to not */
} SHS_INFO;
void shsInit(SHS_INFO *shsInfo);
void shsUpdate(SHS_INFO *shsInfo, const BYTE * buffer, int count);
void shsFinal(SHS_INFO *shsInfo);
#endif