Expand description
§HACL Rust bindings
This is the hacl
crate that provides Rust bindings for the HACL C package.
The FFI bindings are in the hacl-sys crates.
Please see the top level readme for more information about the underlying code.
Platform | Supported |
---|---|
MacOS | ✅ |
MacOS Arm64 | ✅ |
iOS | ✅ |
Linux x64 | ✅ |
Linux x86 | ✅ |
Windows x64 | ✅ |
Windows x86 | ✅ |
Arm64 Linux | ✅ |
Arm32 Linux | ✅ |
§Features
By default the hacl crate includes the random
feature that allows generating random values (keys, nonces, etc.).
But this is not verified code and uses the rand crate. It can be disabled with --no-default-features
.
Please bring your own randomness if you want to be safe.
§Platforms
See above for a list of supported platforms.
§Building
cargo build
§Benchmarks
To run benchmarks use cargo bench
.
§Tests
All primitives are tested against the Wycheproof test vectors.
They can be run with cargo test
.
This will also run automatically generated binding tests from bindgen.
Modules§
- Authenticated Encryption with Associated Data (AEAD)
- Hashing
- ECDH
- Ed25519
- Low-level HACL APIs
- HKDF
- HMAC
- Prelude for hacl-rust.
- Utilities that provide randomness. Note that this currently uses the rand crate and should be moved to a more secure alternative.
- x25519