1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-13 03:48:26 -06:00

Add SHA-256 source specific for upcoming bootloader build because of its small size. It was derived from the libtomcrypt public domain source.

This commit is contained in:
Mounir IDRASSI
2014-10-14 17:02:37 +02:00
parent 2fe23a3fa3
commit bd7d151abf
2 changed files with 301 additions and 0 deletions

55
src/Crypto/Sha2Small.h Normal file
View File

@@ -0,0 +1,55 @@
/* 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 */
/******************************************************************************/