First stable version with all ciphers
Modified
-
Breaking change from previous versions: removed
total_output_len
parameters from the functionsascon_aead*_encrypt()
ascon_aead*_decrypt()
ascon_aead*_encrypt_final()
ascon_aead*_decrypt_final()
and from theascon_bufstate_t
struct, making it 8 B smaller.
Why? TL;DR it's redundant.
The reasoning is that the user of the first two (offline processing)
already knows the length of the plaintext/ciphertext; the user of the second
two obtains the length of the processed chunks as return values so they
can simply sum the up - and anyhow the user known the length of all the
chunks provided to the cipher; those could be summed up to. In most of the
cases the argument wasNULL
in the function usage. For details on how to
obtain the total length, the example in the Readme should suffice. -
Renamed all files in
src
so they start withascon_
.
Fixed
- Added more tests to cover more branching cases of the online-buffering
algorithm. - Removal of some minor warnings after inspection with static analyser
(scan-build
) and CLion code inspection tool. - Typos
- Added missing Known limitations paragraphs to the previous releases
in this Changelog.
Known limitations
- Because LibAscon is implemented with reuse of existing functions in mind,
in order to spare on code size and with the Init-Update-Digest paradigm,
which has some internal buffering, the cipher is about 4x slower than the
reference implementation (ref
). - There is no architecture-specific optimisation, only a generic portable
implementation using mostlyuint64_t
data types.