Algorithms

The following tables gives an overview over the algorithms supported by the HACL packages.

For a detailed description fo the Support column, please see the Architectures section.

FamilyAlgorithmSupport
AEADAES-GCM 128AES-NI & CLMUL (x86 only)
AEADAES-GCM 256AES-NI & CLMUL (x86 only)
AEADChacha20-Poly1305Portable | vec128 | vec256
ECDHCurve25519Portable | BMI2 & ADX
ECDHP-256Portable
SignatureEd25519Portable
SignatureECDSA P-256r1Portable
SignatureECDSA P-256k1Portable
SignatureRSA-PSSPortable
HashSHA2-224Portable | SHAEXT
HashSHA2-256Portable | SHAEXT
HashSHA2-384Portable
HashSHA2-512Portable
HashSHA3Portable
HashBlake2Portable | vec128 | vec256
Key DerivationHKDFPortable (depends on hash)
Symmetric EncryptionChacha20Portable | vec128 | vec256
Symmetric EncryptionSalsa20Portable
Symmetric EncryptionAES 128AES-NI & CLMUL (x86 only)
Symmetric EncryptionAES 256AES-NI & CLMUL (x86 only)
MACHMACPortable (depends on hash)
MACPoly1305Portable | vec128 | vec256 | x64 ASM
Hybrid EncryptionNaclPortable
Hybrid EncryptionHPKEPortable (depends on hash, aead, dh)
Random GenerationHMAC-DRBGPortable (depends on hash)