An experiment.
  • C 34.9%
  • Assembly 32.4%
  • Rust 29.1%
  • Perl 2.1%
  • Python 0.7%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-17 10:39:38 +02:00
bench Use Rust 2024 style edition. 2026-03-09 01:52:05 -07:00
build Fix building asm for Cygwin 2026-03-23 14:02:37 -07:00
cavp Use Rust 2024 edition with 2021 style edition. 2026-03-09 01:07:19 -07:00
crypto curve25519 internals: Move x25519_ge_scalarmult_base_adx_wrapper to Rust. 2026-03-17 13:10:52 -07:00
doc Remove doc/link-to-readme.md. 2023-10-05 22:45:41 -07:00
include/ring-core Take a step towards getting Cygwin builds working. 2026-03-19 09:22:23 -07:00
mk build: Default to clang-cl and have cc-rs find it, on aarch64-pc-windows-msvc. 2026-03-16 15:53:46 -07:00
src Bypass building .S files for Cygwin 2026-03-23 14:02:37 -07:00
tests build: Only replace backslashes with forward slashe in Paths on Windows. 2026-03-21 11:31:39 -07:00
third_party/fiat Merge BoringSSL 33d1049: Switch the license to Apache 2.0, matching OpenSSL upstream 2025-02-18 11:47:46 -08:00
.clang-format Switch clang-format IncludeBlocks to Preserve. 2020-07-23 21:55:26 +00:00
.gitattributes Clean up and fix .gitattributes files. 2020-11-10 20:57:26 -08:00
.gitignore Clean up .gitignore 2025-08-01 13:17:56 -07:00
AUTHORS Start maintaining an AUTHORS file 2024-12-11 13:52:41 -08:00
Cargo.lock build: Default to clang-cl and have cc-rs find it, on aarch64-pc-windows-msvc. 2026-03-16 15:53:46 -07:00
Cargo.toml chore: sync dependencies (monorepo) 2026-04-17 10:39:38 +02:00
codecov.yml Clarify code test coverage for stable vs unstable polyfills. 2025-08-02 13:39:48 -07:00
deny.toml Merge BoringSSL 33d1049: Switch the license to Apache 2.0, matching OpenSSL upstream 2025-02-18 11:47:46 -08:00
LICENSE Further clarify some licensing. 2025-02-20 10:01:23 -08:00
LICENSE-BoringSSL Merge BoringSSL 33d1049: Switch the license to Apache 2.0, matching OpenSSL upstream 2025-02-18 11:47:46 -08:00
LICENSE-other-bits Further clarify some licensing. 2025-02-19 10:19:48 -08:00
README.md Update README.md. 2025-03-10 13:58:34 -07:00
rustfmt.toml Use Rust 2024 style edition. 2026-03-09 01:52:05 -07:00

THE SOFTWARE IS PROVIDED "AS IS" AND BRIAN SMITH AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL BRIAN SMITH OR THE AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Most of the C and assembly language code in ring comes from BoringSSL. BoringSSL is a fork of OpenSSL. This quote from the BoringSSL README.md discouraging you from using it applies to this project:

BoringSSL is a fork of OpenSSL that is designed to meet Google's needs.

Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is. We don't recommend that third parties depend upon it.

This project was originally shared on GitHub in 2015 as an experiment. It was put on crates.io shortly to help other people with their experiments. It is an experiment.

Side Channels

See SIDE-CHANNELS.md for important information regarding the limitations of the side channel mitigations in this project.

Toolchains & Targets

Be especially weary about using toolchains (C compilers, etc.) or targets that aren't supported by other projects, especially BoringSSL. The further you are from using the same version of Clang that Chrome uses, the more weary you should be.

Bug Reporting

For security vulnerabilities, see https://github.com/briansmith/ring/security/policy.

Please report bugs that aren't security vulnerabilities either as pull requests or as issues in the issue tracker.

Release Notes

It is recommended that you review every commit in this project. Some particularly noteworthy changes are noted in the RELEASES.md. We could use some help in making this better.