franziskuskiefer / evercrypt-rust

Rust bindings for HACL & Evercrypt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Evercrypt & HACL Rust bindings

Maturity Level Build & Test ARM Build

This workspace holds the evercrypt-sys and high-level evercrypt crates.

Platform Supported
MacOS
MacOS Arm64
iOS
iOS Simulator x86_64
Linux x64
Linux x86
Windows x64
Arm64 Linux
Arm32 Linux

Crates

Name Crates.io Docs
evercrypt-sys crates.io Docs
evercrypt crates.io Docs

Features

By default the Evercrypt 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

You will need to:

git clone --recurse-submodules path_of_repo
cargo build

Building on Windows

To build evercrypt and evercrypt-sys on Windows ensure path for the VsDevCmd.bat called in in evercrypt-sys/hacl-build.bat is correct on your system. The build has only been tested with VisualStudio 2019.

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.

About

Rust bindings for HACL & Evercrypt


Languages

Language:Rust 99.0%Language:Batchfile 0.9%Language:C 0.1%