Cryptographic Algorithms

Leancrypto offers various cryptographic algorithms:

  • Authenticated Encryption with Associated Data

    • Ascon 128 AEAD and Ascon 128a AEAD

    • Ascon Keccak 256/256, 256/512 and 512/512 AEAD, full specification pending

    • cSHAKE-based AEAD algorithm - algorithm devised with leancrypto, see cshake_crypt.c for full specification

    • hash-based AEAD algorithm - algorithm devised with leancrypto, see hash_crypt.c for full specification

    • KMAC-based AEAD algorithm - algorithm devised with leancrypto, see kmac_crypt.c for full specification

    • AES-based AEAD algorithm using SHA2 - see symhmac_crypt.c for full specification

    • AES-based AEAD algorithm using Keccak-based KMAC - see symkmac_crypt.c for full specification

  • Pseudo Random Number Generators

  • Message Digest algorithms

    • SHA2-256, SHA2-512

    • SHA3-224, SHA3-256, SHA3-384, SHA3-512

    • SHAKE-128, SHAKE-256

    • cSHAKE-128, cSHAKE-256

    • Ascon 128 / 128a

    • Ascon XOF / XOFa

  • Keyed Message Digest algorithms

    • HMAC

    • KMAC

  • Key Derivation Functions

    • HKDF

    • SP800-108 KDF (counter, feedback, double pipelining mode)

    • PBKDF2

  • Key Encapsulation Mechanism

    • Kyber Key Encapsulation Mechanism (KEM)

    • Kyber Key Exchange Mechanism (KEX)

    • Kyber Integrated Encryption Schema (IES) - algorithm devised with leancrypto, see kyber_ies.c for full specification

    • Kyber hybrid KEM / KEX with Curve25519

  • One Time Pad algorithms

    • HOTP

    • TOTP

  • Signature algorithm

    • Dilithium

    • Dilithium hybrid signature operation with Curve25519

  • Symmetric algorithms

    • AES: ECB, CBC, CTR, KW

    • ChaCha20