Fixed slowdowns - now as fast as reference implementation, 100% test coverage.
Fixed
-
Fixed 2x slowdown compared to original reference implementation by
unrolling loops inascon_permutation_[a12|b8|b6]. Apparently the
compiler does not do that automatically, even when requested with
-funroll-loops.
This brings LibAscon to the same performance as the reference implementation,
when compiled in Release mode. -
When building in MinSizeRel mode (
-DCMAKE_BUILD_TYPE=MinSizeRel), the core
round and permutation functions are not hinted to be inlined by the compiled,
thus the library takes slightly less space. -
Replaced rewritten benchmark runner with original one (copy-pasted and
slightly changed). Apparently the rewritten benchmark was about 2x slower.
Now the benchmark results are comparable between original implementation
and LibAscon. -
Test coverage reached 100%: removed a dead branch in
ascon_aead80pq_decrypt_final(), which was a copy-paste error. -
Fix a
inttouint8type conversion warning. -
Removed unused internal
log_sponge()function, making the library slightly
smaller. -
Add initial Travis-CI script for a few builds. Some are still failing, but the
reasons seems to be in the system configuration or old compiler versions
or "linker not found", not in the LibAscon source code.