SWAP64_Idx
output[i] = (ctx->sha3_endian == SHA3_LITTLE) ? state[i] : state[SWAP64_Idx(i)];
u64 idx = (ctx->sha3_endian == SHA3_LITTLE) ? ctx->sha3_idx : SWAP64_Idx(ctx->sha3_idx);
state[SWAP64_Idx(ctx->sha3_idx)] ^= 0x06;
state[SWAP64_Idx(ctx->sha3_block_size - 1)] ^= 0x80;
u64 idx = (ctx->shake_endian == SHAKE_LITTLE) ? ctx->shake_idx : SWAP64_Idx(ctx->shake_idx);
state[SWAP64_Idx(ctx->shake_idx)] ^= 0x1f;
state[SWAP64_Idx(ctx->shake_block_size - 1)] ^= 0x80;
output[i] = (ctx->shake_endian == SHAKE_LITTLE) ? state[i] : state[SWAP64_Idx(i)];