This is the hacl-star crate that provides Rust bindings for the HACL C package.
The FFI bindings are in the hacl-star-sys crates.
⚠️ Note: This crate is still work in progress. Don't use in production just yet.
| Platform | Supported | | :---------- | :-------: | | MacOS | ✅ | | MacOS Arm64 | ✅ | | iOS | ✅ | | Linux x64 | ✅ | | Linux x86 | ✅ | | Windows x64 | ✅ | | Arm64 Linux | ✅ | | Arm32 Linux | ✅ |
| Name | Crates.io | Docs |
| :------------ | :-------------------------------------------------------------------------------- | :--------------------------------------------------: |
| hacl-star-sys | |
|
| hacl-star |
|
|
By default the hacl-star 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.
See above for a list of supported platforms.
bash
cd ../
./mach rust
cd -
cargo build
Please see the [top level readme] for how to build.
To run benchmarks use cargo bench.
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.