summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2018-02-06 03:59:17 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2018-02-06 08:37:22 +0100
commit0cbc2324d3f4a703b1c9d98405a5d8ac6bc731d5 (patch)
tree144414c588a13274c5dfb693b62f8c16f6d0406c
parenta46a56808a23c7fda7cd75f72aa6e8f1e9001844 (diff)
downloadgnutls-0cbc2324d3f4a703b1c9d98405a5d8ac6bc731d5.tar.gz
accelerated: aarch64: fix GCM counter increment
Ensure that we restrict the GCM counter to the 4 bytes assigned to it. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-rw-r--r--lib/accelerated/aarch64/aes-gcm-aarch64.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/accelerated/aarch64/aes-gcm-aarch64.c b/lib/accelerated/aarch64/aes-gcm-aarch64.c
index 8d2bc1dce2..677f213f12 100644
--- a/lib/accelerated/aarch64/aes-gcm-aarch64.c
+++ b/lib/accelerated/aarch64/aes-gcm-aarch64.c
@@ -37,6 +37,7 @@
#include <byteswap.h>
#define GCM_BLOCK_SIZE 16
+#define INC32(block) INCREMENT(4, block + GCM_BLOCK_SIZE - 4)
/* GCM mode */
@@ -169,7 +170,7 @@ ctr32_encrypt_blocks_inplace(const unsigned char *in, unsigned char *out,
out += 16;
in += 16;
- INCREMENT(16, ctr);
+ INC32(ctr);
}
}
@@ -192,7 +193,7 @@ ctr32_encrypt_blocks(const unsigned char *in, unsigned char *out,
out += 16;
in += 16;
- INCREMENT(16, ctr);
+ INC32(ctr);
}
}