Crate for AES256 - which one to choose? Questions about block cipher modes and AEAD too.

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • block-ciphers

    Collection of block cipher algorithms written in pure Rust

  • aes (GitHub: RustCrypto / block-ciphers / aes) good: still maintained as of now - last commit on GitHub is from October 2021 good: examples look easy to use good: has received an audit by NCC Group bad: seems a bit too low level - the example provided only shows usage with data that is exactly block sized - seems there is no padding handling for real world use cases

  • rust-crypto

    A (mostly) pure-Rust implementation of various cryptographic algorithms.

  • rust-crypto (GitHub: DaGenix / rust-crypto) good: support for different algorithms I wanna use for enrypting hashing (the latter is for another project) good: seems easy to use according to the example bad: no audit yet bad: don't know if still maintained, last commit on GitHub is from September 2016

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • ring

    Safe, fast, small crypto using Rust (by briansmith)

  • ring (GitHub: briansmith / ring) good: praised by many and used in other big crates good: still maintained as of now - last commit on GitHub is from October 2021 bad: no audit yet - at least I couldn't find any statement bad: I have absolutely no clue how to use this, can't find any examples on the GitHub readme and nothing in the source tree that would give it away

  • RustCrypto

    Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers

  • Use RustCrypto's aes with one of its block modes (https://docs.rs/block-modes/latest/block_modes/) or AEAD algorithms (https://github.com/RustCrypto/AEADs). There's a lot of modular stuff in RustCrypto, just need to browse a little 😉.

  • rustls

    A modern TLS library in Rust

  • consul-template

    Template rendering, notifier, and supervisor for @HashiCorp Consul and Vault data.

  • I would really suggest avoiding implementing your own stuff and either running Hashicorp Vault or seeing if your hosting provider has some secrets manager service.

  • paddingoracle

    Ruby framework for exploiting padding oracle vulnerabilities

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • utils

    Utility crates used in RustCrypto

  • I have seen that RustCrypto also offers a create for securely zeroing memory with: zeroize

  • RCIG_Coordination_Repo

    A Coordination repo for all things Rust Cryptography oriented

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts