Hacl_star.Hacl
This module provides direct access to all HACL* implementations
type bytes = SharedDefs.CBytes.t
bytes
is ultimately an alias for Stdlib.Bytes.t
, the type of buffers currently used throughout the library
Different implementations of Chacha20-Poly1305. A multiplexing interface is also available.
Portable C implementation of Chacha20-Poly1305 that runs on any 32-bit platform
128-bit vectorized C implementation of Chacha20-Poly1305 that runs on platforms with 128-bit vector support
256-bit vectorized C implementation of Chacha20-Poly1305 that runs on platforms with 256-bit vector support
Different implementations of ECDH using Curve25519. A multiplexing interface is also available.
module Curve25519_51 : SharedDefs.Curve25519
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
module Curve25519_64 : SharedDefs.Curve25519
EdDSA using Curve25519
module Ed25519 : SharedDefs.EdDSA
Portable implementation
module P256 : sig ... end
ECDSA and ECDH functions using P-256
module K256 : sig ... end
ECDSA on the K-256 curve
Portable C implementations of SHA-2. Multiplexing interfaces for SHA-224 and SHA-256 are also available.
module SHA2_224 : SharedDefs.HashFunction
Direct hashing with SHA-224
module SHA2_256 : SharedDefs.HashFunction
Direct hashing with SHA-256
module SHA2_384 : SharedDefs.HashFunction
Direct hashing with SHA-384
module SHA2_512 : SharedDefs.HashFunction
Direct hashing with SHA-512
Portable C implementations of SHA-3
module SHA3_224 : SharedDefs.HashFunction
Direct hashing with SHA3-224
module SHA3_256 : SharedDefs.HashFunction
Direct hashing with SHA3-256
module SHA3_384 : SharedDefs.HashFunction
Direct hashing with SHA3-384
module SHA3_512 : SharedDefs.HashFunction
Direct hashing with SHA3-512
module Keccak : sig ... end
SHAKE-128, SHAKE-256, and the general Keccak function
The BLAKE2 hash function has 2 variants:
module Blake2b : SharedDefs.Blake2
Portable BLAKE2b implementation
module Blake2b_Simd256 : SharedDefs.Blake2
Vectorized BLAKE2b implementation, requiring 256-bit vector support
module Blake2s : SharedDefs.Blake2
Portable BLAKE2s implementation
module Blake2s_Simd128 : SharedDefs.Blake2
Vectorized BLAKE2s implementation, requiring 128-bit vector support
Legacy algorithms, which are not suitable for cryptographic applications.
module MD5 : SharedDefs.HashFunction
Direct hashing with MD5
module SHA1 : SharedDefs.HashFunction
Direct hashing with SHA-1
Message authentication codes
Multiplexing interfaces for these algorithms are also available.
module HMAC_SHA2_256 : SharedDefs.MAC
Portable C implementation of HMAC-SHA-256
module HMAC_SHA2_384 : SharedDefs.MAC
Portable C implementation of HMAC-SHA-384
module HMAC_SHA2_512 : SharedDefs.MAC
Portable C implementation of HMAC-SHA-512
module HMAC_BLAKE2b : SharedDefs.MAC
Portable C implementation of HMAC-BLAKE2b
module HMAC_BLAKE2s : SharedDefs.MAC
Portable C implementation of HMAC-BLAKE2s
module Poly1305 : SharedDefs.MAC
Portable C implementation of Poly1305
module Poly1305_Simd128 : SharedDefs.MAC
Vectorized C implementation of Poly1305 that runs on platforms with 128-bit vector support
module Poly1305_Simd256 : SharedDefs.MAC
Vectorized C implementation of Poly1305 that runs on platforms with 256-bit vector support
module NaCl : sig ... end
Box (public-key authenticated encryption) and Secretbox (secret-key authenticated encryption)
HMAC-based key derivation function
Portable implementations of HKDF. Agile and multiplexing interfaces are also available.
module HKDF_SHA2_256 : SharedDefs.HKDF
Portable C implementation of HKDF using SHA2-256
module HKDF_SHA2_512 : SharedDefs.HKDF
Portable C implementation of HKDF using SHA2-512
module HKDF_BLAKE2b : SharedDefs.HKDF
Portable C implementation of HKDF using BLAKE2b
module HKDF_BLAKE2s : SharedDefs.HKDF
Portable C implementation of HKDF using BLAKE2s
module RandomBuffer : sig ... end
A randomness function implemented with platform-dependent code for Unix and Windows