56 lines
1.2 KiB
C
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 */
|
|
/******************************************************************************/
|
|
|