Skip to content

raphaelrobert/evercrypt-rust

 
 

Repository files navigation

Evercrypt & HACL Rust bindings

Maturity Level

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

Platform Supported Status
MacOS Build & Test
Linux x64 Build & Test
Linux x86 Build & Test
Windows x64 Build & Test
Arm64 Linux Build Status
Arm32 Linux Build Status

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.

RustCrypto AES

Evecrypt currently implements AES only for x64 CPUs with a certain set of CPU instructions. To provide AES for other platforms the Evercrypt crate uses the RustCrypto AES implementation when using --features rust-crypto-aes.

Platforms

See above for a list of supported platforms.

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.5%
  • Other 0.5%