From df7223c7f2504b8f98526a86630bd6a7c07720a9 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 11 Nov 2022 18:04:22 +0100 Subject: [PATCH] crypto.AesGcm: provision ghash for the final block --- lib/std/crypto/aes_gcm.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/crypto/aes_gcm.zig b/lib/std/crypto/aes_gcm.zig index 2a363b86eb..30fd37e6a0 100644 --- a/lib/std/crypto/aes_gcm.zig +++ b/lib/std/crypto/aes_gcm.zig @@ -35,7 +35,7 @@ fn AesGcm(comptime Aes: anytype) type { mem.writeIntBig(u32, j[nonce_length..][0..4], 1); aes.encrypt(&t, &j); - const block_count = (math.divCeil(usize, ad.len, Ghash.block_length) catch unreachable) + (math.divCeil(usize, c.len, Ghash.block_length) catch unreachable); + const block_count = (math.divCeil(usize, ad.len, Ghash.block_length) catch unreachable) + (math.divCeil(usize, c.len, Ghash.block_length) catch unreachable) + 1; var mac = Ghash.initForBlockCount(&h, block_count); mac.update(ad); mac.pad();