VeraCrypt/src/Crypto/Sha2Small.h

56 lines
1.2 KiB
C

/* LibTomCrypt, modular cryptographic library -- Tom St Denis
*
* LibTomCrypt is a library that provides various cryptographic
* algorithms in a highly modular and flexible manner.
*
* The library is free for all purposes without any express
* guarantee it works.
*
* Tom St Denis, tomstdenis@gmail.com, http://libtom.org
*
*/
/* Adapted for VeraCrypt */
#ifndef _SHA2_SMALL_H
#define _SHA2_SMALL_H
#include "Common/Tcdefs.h"
#include "Common/Endian.h"
#define SHA256_DIGEST_SIZE 32
#define SHA256_BLOCK_SIZE 64
#define VOID_RETURN void
#define INT_RETURN int
#if defined(__cplusplus)
extern "C"
{
#endif
typedef struct {
uint32 highLength;
uint32 lowLength;
uint32 state[8];
unsigned int curlen;
unsigned char buf[64];
} sha256_ctx;
/******************************************************************************/
VOID_RETURN sha256_begin(sha256_ctx* ctx);
VOID_RETURN sha256_hash(unsigned char* data, unsigned int len, sha256_ctx* ctx);
VOID_RETURN sha256_end(unsigned char* hval, sha256_ctx* ctx);
#if defined(__cplusplus)
}
#endif
/******************************************************************************/
#endif /* _h_PS_DIGEST */
/******************************************************************************/