42 releases

new 0.17.0-alpha.10 May 4, 2021
0.17.0-alpha.8 Dec 2, 2020
0.17.0-alpha.7 Nov 18, 2020
0.17.0-alpha.4 Jul 27, 2020
0.6.0-alpha Nov 15, 2016

#16 in Cryptography

Download history 125275/week @ 2021-01-15 132562/week @ 2021-01-22 138142/week @ 2021-01-29 143432/week @ 2021-02-05 155158/week @ 2021-02-12 162921/week @ 2021-02-19 162904/week @ 2021-02-26 154681/week @ 2021-03-05 154165/week @ 2021-03-12 151980/week @ 2021-03-19 166029/week @ 2021-03-26 153001/week @ 2021-04-02 163700/week @ 2021-04-09 159198/week @ 2021-04-16 166925/week @ 2021-04-23 158926/week @ 2021-04-30

673,082 downloads per month
Used in 2,869 crates (381 directly)

Custom license

5MB
162K SLoC

GNU Style Assembly 83K SLoC // 0.0% comments Assembly 31K SLoC // 0.0% comments Perl 29K SLoC // 0.1% comments Rust 13K SLoC // 0.1% comments C 4.5K SLoC // 0.2% comments Python 161 SLoC // 0.2% comments

See https://github.com/briansmith/ring.


lib.rs:

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.
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. Implies `alloc`.
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_CC=clang-10 TARGET_AR=llvm-ar-10 cargo test --target=wasm32-unknown-unknown --features=wasm32_c with llvm-ar-10 and clang-10 in $PATH. (Going forward more functionality should be enabled by default, without requiring these hacks, and without requiring a C compiler.)

Dependencies