VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Common
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2015-12-30 06:57:34 +0100
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2015-12-31 01:56:19 +0100
commit0c2c0a846d42b05b44d62a3c3fcaf410660f8a4d (patch)
treeedd8f33dae61b4d1ae304a1ef613b23186bc3dc8 /src/Common
parentd462806ea970434ab9f09748f74a86608e1fb31e (diff)
downloadVeraCrypt-0c2c0a846d42b05b44d62a3c3fcaf410660f8a4d.tar.gz
VeraCrypt-0c2c0a846d42b05b44d62a3c3fcaf410660f8a4d.zip
Cryptography: Optimize Whirlpool implementation by using public domain assembly code developed by Wei Dai
Diffstat (limited to 'src/Common')
-rw-r--r--src/Common/Pkcs5.c4
-rw-r--r--src/Common/Tcdefs.h3
2 files changed, 5 insertions, 2 deletions
diff --git a/src/Common/Pkcs5.c b/src/Common/Pkcs5.c
index d2696d9c..5e626a32 100644
--- a/src/Common/Pkcs5.c
+++ b/src/Common/Pkcs5.c
@@ -581,8 +581,8 @@ void derive_key_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, uin
typedef struct hmac_whirlpool_ctx_struct
{
WHIRLPOOL_CTX ctx;
- char buf[WHIRLPOOL_BLOCKSIZE];
- char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the Whirlpool hash */
+ CRYPTOPP_ALIGN_DATA(16) char buf[WHIRLPOOL_BLOCKSIZE];
+ CRYPTOPP_ALIGN_DATA(16) char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the Whirlpool hash */
char u[WHIRLPOOL_DIGESTSIZE];
} hmac_whirlpool_ctx;
diff --git a/src/Common/Tcdefs.h b/src/Common/Tcdefs.h
index 5725c135..25b8a127 100644
--- a/src/Common/Tcdefs.h
+++ b/src/Common/Tcdefs.h
@@ -52,6 +52,7 @@ typedef unsigned __int32 TC_LARGEST_COMPILER_UINT;
typedef unsigned __int64 TC_LARGEST_COMPILER_UINT;
typedef __int64 int64;
typedef unsigned __int64 uint64;
+#define LL(x) x##ui64
#endif
#else // !_MSC_VER
@@ -68,6 +69,8 @@ typedef uint16_t uint16;
typedef uint32_t uint32;
typedef uint64_t uint64;
+#define LL(x) x##ULL
+
#if UCHAR_MAX != 0xffU
#error UCHAR_MAX != 0xff
#endif