40 releases

new 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.17.0-alpha.1 Feb 11, 2020
0.6.0-alpha Nov 15, 2016

#20 in Cryptography

Download history 90104/week @ 2020-08-13 89045/week @ 2020-08-20 87486/week @ 2020-08-27 84047/week @ 2020-09-03 93918/week @ 2020-09-10 92169/week @ 2020-09-17 92593/week @ 2020-09-24 91061/week @ 2020-10-01 94313/week @ 2020-10-08 99426/week @ 2020-10-15 103778/week @ 2020-10-22 103071/week @ 2020-10-29 103881/week @ 2020-11-05 109723/week @ 2020-11-12 123184/week @ 2020-11-19 101875/week @ 2020-11-26

422,523 downloads per month
Used in 2,024 crates (310 directly)

Custom license

5MB
154K SLoC

GNU Style Assembly 84K SLoC // 0.0% comments Perl 29K SLoC // 0.1% comments Assembly 24K SLoC // 0.0% 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.
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