Skip to content

Commit

Permalink
Preload an extra AD block in AEGIS256* as well
Browse files Browse the repository at this point in the history
  • Loading branch information
jedisct1 committed May 11, 2024
1 parent 15b8a3c commit f1c4745
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
12 changes: 11 additions & 1 deletion src/aegis256/aegis256_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,17 @@ state_mac_update(aegis256_state *st_, const uint8_t *ad, size_t adlen)
ad += RATE - left;
adlen -= RATE - left;
}
for (i = 0; i + RATE <= adlen; i += RATE) {
for (i = 0; i + RATE * 2 <= adlen; i += RATE * 2) {
aes_block_t msg0, msg1;

msg0 = AES_BLOCK_LOAD(ad + i + AES_BLOCK_LENGTH * 0);
msg1 = AES_BLOCK_LOAD(ad + i + AES_BLOCK_LENGTH * 1);
COMPILER_ASSERT(AES_BLOCK_LENGTH * 2 == RATE * 2);

aegis256_update(st->state, msg0);
aegis256_update(st->state, msg1);
}
for (; i + RATE <= adlen; i += RATE) {
aegis256_absorb(ad + i, st->state);
}
if (i < adlen) {
Expand Down
12 changes: 11 additions & 1 deletion src/aegis256x2/aegis256x2_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,17 @@ state_mac_update(aegis256x2_state *st_, const uint8_t *ad, size_t adlen)
ad += RATE - left;
adlen -= RATE - left;
}
for (i = 0; i + RATE <= adlen; i += RATE) {
for (i = 0; i + RATE * 2 <= adlen; i += RATE * 2) {
aes_block_t msg0, msg1;

msg0 = AES_BLOCK_LOAD(ad + i + AES_BLOCK_LENGTH * 0);
msg1 = AES_BLOCK_LOAD(ad + i + AES_BLOCK_LENGTH * 1);
COMPILER_ASSERT(AES_BLOCK_LENGTH * 2 == RATE * 2);

aegis256x2_update(st->state, msg0);
aegis256x2_update(st->state, msg1);
}
for (; i + RATE <= adlen; i += RATE) {
aegis256x2_absorb(ad + i, st->state);
}
if (i < adlen) {
Expand Down
12 changes: 11 additions & 1 deletion src/aegis256x4/aegis256x4_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,17 @@ state_mac_update(aegis256x4_state *st_, const uint8_t *ad, size_t adlen)
ad += RATE - left;
adlen -= RATE - left;
}
for (i = 0; i + RATE <= adlen; i += RATE) {
for (i = 0; i + RATE * 2 <= adlen; i += RATE * 2) {
aes_block_t msg0, msg1;

msg0 = AES_BLOCK_LOAD(ad + i + AES_BLOCK_LENGTH * 0);
msg1 = AES_BLOCK_LOAD(ad + i + AES_BLOCK_LENGTH * 1);
COMPILER_ASSERT(AES_BLOCK_LENGTH * 2 == RATE * 2);

aegis256x4_update(st->state, msg0);
aegis256x4_update(st->state, msg1);
}
for (; i + RATE <= adlen; i += RATE) {
aegis256x4_absorb(ad + i, st->state);
}
if (i < adlen) {
Expand Down

0 comments on commit f1c4745

Please sign in to comment.