Hacl_star.EverCrypt
This module exposes the EverCrypt cryptographic provider, which offers agile and multiplexing interfaces for HACL* primitives.
type bytes = SharedDefs.CBytes.t
bytes
is ultimately an alias for Stdlib.Bytes.t
, the type of buffers currently used throughout the library
Algorithms for AEAD (authenticated encryption with additional data)
module AEAD : sig ... end
Agile, multiplexing AEAD interface exposing AES128-GCM, AES256-GCM, and Chacha20-Poly1305
Multiplexing interface for Chacha20-Poly1305
Algorithms for digital signatures and key agreement
module Curve25519 : SharedDefs.Curve25519
Multiplexing interface for ECDH using Curve25519
module Ed25519 : SharedDefs.EdDSA
This interface does not yet support multiplexing and is identical to the one in Hacl.Ed25519
module Hash : sig ... end
Agile, multiplexing hashing interface, exposing 4 variants of SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512), 4 variants of SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512), BLAKE2 (both BLAKE2b and BLAKE2s), and 2 legacy algorithms (SHA-1, MD5). It offers both direct hashing and a streaming interface.
Message authentication codes
Portable HMAC implementations. They can use optimised assembly implementations for the underlying hash function, if such an implementation exists and Intel SHA extensions are available.
module HMAC : sig ... end
Agile, multiplexing interface for HMAC
module Poly1305 : SharedDefs.MAC
Multiplexing interface for Poly1305
HMAC-based key derivation function
Portable HKDF implementations. They can use optimised assembly implementations for the underlying hash function, if such an implementation exists and Intel SHA extensions are available.
module HKDF : sig ... end
Agile, multiplexing interface for HKDF
Deterministic random bit generator
module DRBG : sig ... end
Agile, multiplexing interface for HMAC-DRBG