AEGIS_BLOCK_SIZE
__le64 words64[AEGIS_BLOCK_SIZE / sizeof(__le64)];
__le32 words32[AEGIS_BLOCK_SIZE / sizeof(__le32)];
u8 bytes[AEGIS_BLOCK_SIZE];
crypto_xor(key_iv.bytes, iv, AEGIS_BLOCK_SIZE);
while (size >= AEGIS_BLOCK_SIZE) {
size -= AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
dst += AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
crypto_xor(tmp.bytes, src, AEGIS_BLOCK_SIZE);
memcpy(dst, tmp.bytes, AEGIS_BLOCK_SIZE);
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
dst += AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
dst += AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
crypto_xor(tmp.bytes, src, AEGIS_BLOCK_SIZE);
memcpy(dst, tmp.bytes, AEGIS_BLOCK_SIZE);
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
dst += AEGIS_BLOCK_SIZE;
memset(msg.bytes + size, 0, AEGIS_BLOCK_SIZE - size);
if (pos + size >= AEGIS_BLOCK_SIZE) {
unsigned int fill = AEGIS_BLOCK_SIZE - pos;
src += left & ~(AEGIS_BLOCK_SIZE - 1);
left &= AEGIS_BLOCK_SIZE - 1;
memset(buf.bytes + pos, 0, AEGIS_BLOCK_SIZE - pos);
.chunksize = AEGIS_BLOCK_SIZE,
.chunksize = AEGIS_BLOCK_SIZE,
crypto_xor(state->blocks[0].bytes, msg, AEGIS_BLOCK_SIZE);
const int short_input = size < AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
dst += AEGIS_BLOCK_SIZE;
uint8_t buf[AEGIS_BLOCK_SIZE];
in = out = memcpy(buf + AEGIS_BLOCK_SIZE - size, src, size);
m = vqtbl1q_u8(vld1q_u8(in + size - AEGIS_BLOCK_SIZE),
vst1q_u8(out + size - AEGIS_BLOCK_SIZE,
vst1q_u8(out - AEGIS_BLOCK_SIZE, msg);
const int short_input = size < AEGIS_BLOCK_SIZE;
while (size >= AEGIS_BLOCK_SIZE) {
size -= AEGIS_BLOCK_SIZE;
src += AEGIS_BLOCK_SIZE;
dst += AEGIS_BLOCK_SIZE;
uint8_t buf[AEGIS_BLOCK_SIZE];
in = out = memcpy(buf + AEGIS_BLOCK_SIZE - size, src, size);
m = s ^ vqtbx1q_u8(s, vld1q_u8(in + size - AEGIS_BLOCK_SIZE),
vst1q_u8(out + size - AEGIS_BLOCK_SIZE,
vst1q_u8(out - AEGIS_BLOCK_SIZE, msg);