This module provides direct access to all HACL* implementations
bytes
is ultimately an alias for Stdlib.Bytes.t
, the type of buffers currently used throughout the library
AEAD Chacha20-Poly1305Different implementations of Chacha20-Poly1305. A multiplexing interface is also available.
Portable C implementation of Chacha20-Poly1305 that runs on any 32-bit platform
ECDH, EdDSA, and ECDSA Curve25519Different implementations of ECDH using Curve25519. A multiplexing interface is also available.
Portable C implementation that is optimized for use on 64-bit platforms that support 128-bit arithmetic, will still compile and execute on 32-bit platforms
Hybrid C/assembly implementation: the field arithmetic functions are in Intel assembly (generated by Vale) and rely on the Intel ADX and BMI2 instruction sets; the elliptic curve functions and the main API are in portable C
Ed25519EdDSA using Curve25519
P-256module P256 : sig ... end
ECDSA and ECDH functions using P-256
K-256module K256 : sig ... end
Hashing SHA-2Portable C implementations of SHA-2. Multiplexing interfaces for SHA-224 and SHA-256 are also available.
Direct hashing with SHA-224
Direct hashing with SHA-256
Direct hashing with SHA-384
Direct hashing with SHA-512
SHA-3Portable C implementations of SHA-3
Direct hashing with SHA3-224
Direct hashing with SHA3-256
Direct hashing with SHA3-384
Direct hashing with SHA3-512
SHAKE-128, SHAKE-256, and the general Keccak function
BLAKE2The BLAKE2 hash function has 2 variants:
BLAKE2b, optimised for 64-bit architectures BLAKE2s, optimised for 8- to 32-bit architectures Portable BLAKE2b implementation
Portable BLAKE2s implementation
Legacy (deprecated)Legacy algorithms, which are not suitable for cryptographic applications.
Direct hashing with SHA-1
MACsMessage authentication codes
Multiplexing interfaces for these algorithms are also available.
HMACPortable C implementation of HMAC-SHA-256
Portable C implementation of HMAC-SHA-384
Portable C implementation of HMAC-SHA-512
Portable C implementation of HMAC-BLAKE2b
Portable C implementation of HMAC-BLAKE2s
Poly1305Portable C implementation of Poly1305
NaClmodule NaCl : sig ... end
Box (public-key authenticated encryption) and Secretbox (secret-key authenticated encryption)
Key derivation HKDFHMAC-based key derivation function
Portable implementations of HKDF. Agile and multiplexing interfaces are also available.
Portable C implementation of HKDF using SHA2-256
Portable C implementation of HKDF using SHA2-512
Portable C implementation of HKDF using BLAKE2b
Portable C implementation of HKDF using BLAKE2s
Randomness (not verified)A randomness function implemented with platform-dependent code for Unix and Windows