3 unstable releases

0.16.15 Sep 16, 2020
0.16.9 Aug 30, 2019
0.14.6 Mar 29, 2019

#1269 in Algorithms

32 downloads per month

Custom license

5.5MB
169K SLoC

GNU Style Assembly 91K SLoC // 0.0% comments Perl 34K SLoC // 0.1% comments Assembly 27K SLoC // 0.0% comments Rust 13K SLoC // 0.1% comments C 3K SLoC // 0.2% comments Python 161 SLoC // 0.2% comments

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

git clone https://github.com/briansmith/ring

Feature Flags

Feature Description
alloc (default) Enable features that require use of the heap, RSA in particular.
dev_urandom_fallback (default) This is only applicable to Linux. On Linux, by default, ring::rand::SystemRandom will fall back to reading from /dev/urandom if the getrandom() syscall isn't supported at runtime. When the dev_urandom_fallback feature is disabled, such fallbacks will not occur. See the documentation for rand::SystemRandom for more details.
std Enable features that use libstd, in particular `std::error::Error` integration.
wasm32_c Enables features that require a C compiler on wasm32 targets, such as the constant_time module, HMAC verification, and PBKDF2 verification. Without this feature, only a subset of functionality is provided to wasm32 targets so that a C compiler isn't needed. A typical invocation would be: TARGET_AR=llvm-ar cargo test --target=wasm32-unknown-unknown --features=wasm32_c with llvm-ar and clang in $PATH. (Going forward more functionality should be enabled by default, without requiring these hacks, and without requiring a C compiler.)

Dependencies