From 25569c3ca987f37075e457d5203fb7b6c3d6ae84 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 23 Nov 2018 18:55:15 +0100 Subject: tls: make local buffers in aesgcm_GHASH() explicitly 32-bit aligned Signed-off-by: Denys Vlasenko --- networking/tls_aesgcm.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'networking/tls_aesgcm.c') diff --git a/networking/tls_aesgcm.c b/networking/tls_aesgcm.c index 1a7ddb2e2..360e6f4ff 100644 --- a/networking/tls_aesgcm.c +++ b/networking/tls_aesgcm.c @@ -11,11 +11,6 @@ typedef uint32_t word32; #define XMEMSET memset #define XMEMCPY memcpy -#define TLS_MAJ 3 -#define TLS_MIN 3 -#define RECHDR_LEN 5 -#define OUTBUF_PFX (8 + AES_BLOCK_SIZE) - void FAST_FUNC xorbuf(void* buf, const void* mask, unsigned count) { word32 i; @@ -39,12 +34,12 @@ static ALWAYS_INLINE void FlattenSzInBits(byte* buf, word32 sz) // buf[1] = (szHi >> 16) & 0xff; // buf[2] = (szHi >> 8) & 0xff; // buf[3] = szHi & 0xff; - move_to_unaligned32(buf, 0); + *(uint32_t*)(buf + 0) = 0; // buf[4] = (sz >> 24) & 0xff; // buf[5] = (sz >> 16) & 0xff; // buf[6] = (sz >> 8) & 0xff; // buf[7] = sz & 0xff; - move_to_unaligned32(buf + 4, SWAP_BE32(sz)); + *(uint32_t*)(buf + 4) = SWAP_BE32(sz); } static void RIGHTSHIFTX(byte* x) @@ -100,8 +95,8 @@ void FAST_FUNC aesgcm_GHASH(byte* h, byte* s //, unsigned sSz ) { - byte x[AES_BLOCK_SIZE]; - byte scratch[AES_BLOCK_SIZE]; + byte x[AES_BLOCK_SIZE] ALIGNED(4); + byte scratch[AES_BLOCK_SIZE] ALIGNED(4); word32 blocks, partial; //was: byte* h = aes->H; -- cgit v1.2.3