Crate ring

source ·
Expand description

Safe, fast, small crypto using Rust with BoringSSL’s cryptography primitives.

§Feature Flags

Feature Description
alloc (default) Enable features that require use of the heap, RSA in particular.
less-safe-getrandom-custom-or-rdrand Treat user-provided ("custom") and RDRAND-based getrandom implementations as secure random number generators (see SecureRandom). This feature only works with os = "none" targets. See register_custom_getrandom and RDRAND on x86 for additional details.
std Enable features that use libstd, in particular std::error::Error integration. Implies `alloc`.
wasm32_unknown_unknown_js When this feature is enabled, for the wasm32-unknown-unknown target, Web APIs will be used to implement features like `ring::rand` that require an operating environment of some kind. This has no effect for any other target. This enables the `getrandom` crate's `js` feature.


  • Authenticated Encryption with Associated Data (AEAD).
  • Key Agreement: ECDH, including X25519.
  • Constant-time operations.
  • SHA-2 and the legacy SHA-1 digest algorithm.
  • Error reporting.
  • HMAC-based Extract-and-Expand Key Derivation Function.
  • HMAC is specified in RFC 2104.
  • Serialization and deserialization.
  • PBKDF2 derivation and verification.
  • PKCS#8 is specified in RFC 5958.
  • Cryptographic pseudo-random number generation.
  • RSA.
  • Public key signatures: signing and verification.
  • Testing framework.