6 Commits

Author SHA1 Message Date
Tony Arcieri
c8b07a46c8
ascon: use aead crate for AEAD API; MSRV 1.60 (#44)
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.
2023-02-25 20:48:50 -07:00
Tony Arcieri
11cb7366da
ascon: add Nonce type alias (#43)
Adds a type alias for Ascon nonces, set to `[u8; 16]`.

From the Ascon paper section 2.4:

https://link.springer.com/article/10.1007/s00145-021-09398-9

> The 320-bit initial state of Ascon is formed by the secret key K of
> k bits and nonce N of 128 bits
2023-02-25 19:23:59 -07:00
Tony Arcieri
37bc658306
ascon: Key type alias; cache key in Ascon state (#42)
- Adds a type alias for Ascon keys (16-byte)
- Stores key internally in `struct Ascon` so it doesn't need to be
  passed separately to `Ascon::finalize`.
2023-02-25 19:00:09 -07:00
Tony Arcieri
8eb14719c0
ascon: extract Ascon permutation type; MSRV 1.59 (#39)
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)`.
2023-02-25 17:08:19 -07:00
Tony Arcieri
e4c0b56c7c
ascon: add no_std support (#36)
The permutation does not have any `std`/`alloc` dependency.

The current AEAD interface requires `alloc` (though we should migrate it
to use the `aead` crate anyway).
2023-02-11 12:28:02 -07:00
Tony Arcieri
ace9dd7723
ascon: expose permutation (#35)
Provides raw access to the Ascon permutation, allowing it to be used for
more things than just AEAD.
2023-02-11 12:12:58 -07:00