/*====================================================================*
*
* SHA256.h - SHA256 encryption declarations and definitions;
*
* Motley Tools by Charles Maier <cmaier@cmassoc.net>;
* Copyright (c) 2001-2006 by Charles Maier Associates;
* Licensed under the Internet Software Consortium License;
*
*--------------------------------------------------------------------*/
#ifndef SHA256_HEADER
#define SHA256_HEADER
/*====================================================================*
* system header files;
*--------------------------------------------------------------------*/
#include <stdint.h>
#include <string.h>
/*====================================================================*
* constants;
*--------------------------------------------------------------------*/
#define SHA256_DIGEST_LENGTH 256/8
/*====================================================================*
* variables;
*--------------------------------------------------------------------*/
typedef struct sha256
{
uint32_t count [2];
uint32_t state [8];
uint8_t block [64];
uint8_t extra [64];
}
SHA256;
/*====================================================================*
* functions;
*--------------------------------------------------------------------*/
void SHA256Reset (struct sha256 * sha256);
void SHA256Write (struct sha256 * sha256, void const * memory, size_t extent);
void SHA256Block (struct sha256 * sha256, void const * memory);
void SHA256Fetch (struct sha256 * sha256, uint8_t digest []);
void SHA256Print (const uint8_t digest [], char const * string);
void SHA256Ident (signed fd, uint8_t digest []);
signed SHA256Match (signed fd, const uint8_t digest []);
/*====================================================================*
*
*--------------------------------------------------------------------*/
#endif