VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Crypto/Sha2Small.h
diff options
context:
space:
mode:
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 */
+/******************************************************************************/
+