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.
Family | Algorithm | Support |
---|---|---|
AEAD | AES-GCM 128 | AES-NI & CLMUL (x86 only) |
AEAD | AES-GCM 256 | AES-NI & CLMUL (x86 only) |
AEAD | Chacha20-Poly1305 | Portable | vec128 | vec256 |
ECDH | Curve25519 | Portable | BMI2 & ADX |
ECDH | P-256 | Portable |
Signature | Ed25519 | Portable |
Signature | ECDSA P-256r1 | Portable |
Signature | ECDSA P-256k1 | Portable |
Signature | RSA-PSS | Portable |
Hash | SHA2-224 | Portable | SHAEXT |
Hash | SHA2-256 | Portable | SHAEXT |
Hash | SHA2-384 | Portable |
Hash | SHA2-512 | Portable |
Hash | SHA3 | Portable |
Hash | Blake2 | Portable | vec128 | vec256 |
Key Derivation | HKDF | Portable (depends on hash) |
Symmetric Encryption | Chacha20 | Portable | vec128 | vec256 |
Symmetric Encryption | Salsa20 | Portable |
Symmetric Encryption | AES 128 | AES-NI & CLMUL (x86 only) |
Symmetric Encryption | AES 256 | AES-NI & CLMUL (x86 only) |
MAC | HMAC | Portable (depends on hash) |
MAC | Poly1305 | Portable | vec128 | vec256 | x64 ASM |
Hybrid Encryption | Nacl | Portable |
Hybrid Encryption | HPKE | Portable (depends on hash, aead, dh) |
Random Generation | HMAC-DRBG | Portable (depends on hash) |