VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Crypto/Sha2Small.h
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2014-10-14 17:02:37 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2014-11-08 23:23:48 +0100
commitbd7d151abf2c51e24a0dc60f7400c0388904c9f1 (patch)
treec2aec1f4d43ce1a077da23fec4c4eb71ac343790 /src/Crypto/Sha2Small.h
parent2fe23a3fa3e522951c1ee64c877d4256388f5363 (diff)
downloadVeraCrypt-bd7d151abf2c51e24a0dc60f7400c0388904c9f1.tar.gz
VeraCrypt-bd7d151abf2c51e24a0dc60f7400c0388904c9f1.zip
Add SHA-256 source specific for upcoming bootloader build because of its small size. It was derived from the libtomcrypt public domain source.
Diffstat (limited to 'src/Crypto/Sha2Small.h')
-rw-r--r--src/Crypto/Sha2Small.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/Crypto/Sha2Small.h b/src/Crypto/Sha2Small.h
new file mode 100644
index 00000000..2b79eaf4
--- /dev/null
+++ b/src/Crypto/Sha2Small.h
@@ -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 */
+/******************************************************************************/
+