diff --git a/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c b/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c index 7d2dd980..e1f3a894 100644 --- a/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +++ b/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c @@ -358,14 +358,7 @@ gh_ad_blocks(const State *st, GHash *sth, const unsigned char *ad, size_t ad_len sth->acc = gcm_reduce(u); } if (i < ad_len) { - const size_t n = (ad_len - i) / 16; - I256 u = gh_update0(sth, ad + i, st->hx[n - 1 - 0]); - size_t j; - - for (j = 1; j < n; j += 1) { - gh_update(&u, ad + i + j * 16, st->hx[n - 1 - j]); - } - i += n * 16; + I256 u = gh_update0(sth, ad + i, st->hx[0]); sth->acc = gcm_reduce(u); } } diff --git a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c index a9c1f466..dd65b599 100644 --- a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c +++ b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c @@ -372,14 +372,7 @@ gh_ad_blocks(const State *st, GHash *sth, const unsigned char *ad, size_t ad_len sth->acc = gcm_reduce(u); } if (i < ad_len) { - const size_t n = (ad_len - i) / 16; - I256 u = gh_update0(sth, ad + i, st->hx[n - 1 - 0]); - size_t j; - - for (j = 1; j < n; j += 1) { - gh_update(&u, ad + i + j * 16, st->hx[n - 1 - j]); - } - i += n * 16; + I256 u = gh_update0(sth, ad + i, st->hx[0]); sth->acc = gcm_reduce(u); } }