This repository builds a number of useful cryptographic primitives around the ASCON permutation, customized for use as an Arudino library.
This code is a direct port of the more general-purpose ASCON Suite library. If you find a bug or wish to contribute to this project, then please submit a merge request to ASCON Suite instead of this repository. The only exceptions are for Arduino-specific files and examples that do not appear in the other repository.
API's are provided for the following areas:
- Authenticated Encryption with Associated Data (AEAD)
- Hashing
- HMAC-based Key Derivation Function (HKDF)
- Hashed Message Authentication Code (HMAC)
- ISAP AEAD Mode with Side Channel Protections
- Keyed Message Authentication Code (KMAC)
- Password-Based Key Derivation Function (PBKDF2)
- Pseudorandom Number Generation (PRNG)
- Synthetic Initialization Vector (SIV)
- Extensible Output Functions (XOF)
- Direct Access to the ASCON Permutation
See the HTML documentation of ASCON Suite for more information on the functionality in the library.
To use the library, include the <ASCON.h> header file, which will include all of the functions and types from the library into your sketch:
#include <ASCON.h>
void setup()
{
...
}
void loop()
{
...
}
The functionality in this library was originally prototyped in the LWC Finalists repository. The ASCON Suite repository extracts and expands the ASCON-specific parts of the original repository.
For more information on this code, to report bugs, or to suggest improvements, please contact the author Rhys Weatherley via email.