* ascon: make tests compatible with Rust 1.56
* ascon: drop MSRV to 1.56
MSRV was raised for `ascon` in c8b07a46c86b240d3ce9c5e75a4f23117a874e19.
After the merge of `ascon-core`, 1.56 provides all required features.
Impls the standard AEAD API from the `aead` crate.
Eventually we can split this API out into a separate crate, e.g.
`ascon-aead`, but for now this just gets things working initially.
Uses weak/namespaced features which requires MSRV 1.60.
Adds a struct which wraps the permutation state, using const generics as
well as `feature(const_generics_defaults)` to express the `A`/`B`
parameters for `Ascon(a,b)`.
- Bumps the crate's edition to 2018, which is MSRV-compatible
- Adds a more expansive set of lints
- Adds the `missing_docs` lint, and adds docs where missing
Imports the source code of the `ascon` crate originally from:
https://github.com/quininer/ascon
Code is imported as of this commit:
commit 997e51ff0cad48510ad31934f9c361d25bf5f938
Author: quininer kel <quininer@live.com>
Date: Mon Feb 20 09:52:28 2017 +0800
refactor: remove no_std
- Formatted code using rustfmt 1.5.1-stable (d5a82bbd 2023-02-07)
- Fixed clippy nits from clippy 0.1.67 (d5a82bbd 2023-02-07)
Dual licensed as Apache 2.0 + MIT
Permission given here:
https://github.com/RustCrypto/sponges/pull/30#discussion_r1103554334
Co-authored-by: quininer kel <quininer@live.com>