From: Nikos Mavrogiannopoulos Date: Mon, 22 May 2017 12:41:56 +0000 (+0200) Subject: aarch64: fix AES-GCM in-place encryption and decryption X-Git-Tag: gnutls_3_6_0~558 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=09f9aa8e9c8f648a085cb0aea7faaa14fa4f8755;p=thirdparty%2Fgnutls.git aarch64: fix AES-GCM in-place encryption and decryption Resolves #204 Signed-off-by: Nikos Mavrogiannopoulos --- diff --git a/lib/accelerated/aarch64/aes-gcm-aarch64.c b/lib/accelerated/aarch64/aes-gcm-aarch64.c index c571d0294f..8d2bc1dce2 100644 --- a/lib/accelerated/aarch64/aes-gcm-aarch64.c +++ b/lib/accelerated/aarch64/aes-gcm-aarch64.c @@ -152,6 +152,27 @@ gcm_ghash(struct aes_gcm_ctx *ctx, const uint8_t * src, size_t src_size) } } +static void +ctr32_encrypt_blocks_inplace(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key, + const unsigned char ivec[16]) +{ + unsigned i; + uint8_t ctr[16]; + uint8_t tmp[16]; + + memcpy(ctr, ivec, 16); + + for (i=0;i