#ecc #rsa #rand #random #crypto

sys no-std ring

使用 Rust 的安全、快速、小巧的加密

58 个版本

0.17.8 2024年2月17日
0.17.7 2023年12月5日
0.17.6 2023年11月28日
0.17.0-alpha.112021年12月16日
0.6.0-alpha 2016年11月15日

密码学 中排名 21

Download history 1852689/week @ 2024-04-23 1715848/week @ 2024-04-30 1713178/week @ 2024-05-07 1850523/week @ 2024-05-14 1790156/week @ 2024-05-21 1950476/week @ 2024-05-28 2027858/week @ 2024-06-04 2002048/week @ 2024-06-11 1933148/week @ 2024-06-18 2009612/week @ 2024-06-25 1814464/week @ 2024-07-02 1936553/week @ 2024-07-09 2016729/week @ 2024-07-16 2036426/week @ 2024-07-23 2065928/week @ 2024-07-30 2064417/week @ 2024-08-06

每月下载量 8,524,254
8,426 个 crate 中使用(直接使用 839 个)

自定义许可协议

5.5MB
193K SLoC

GNU Style Assembly 109K SLoC // 0.0% comments Perl 34K SLoC // 0.1% comments Assembly 32K SLoC // 0.0% comments Rust 13K SLoC // 0.2% comments C 4.5K SLoC // 0.2% comments Bitbake 236 SLoC

本软件按“原样”提供,Brian Smith 和作者放弃与此软件相关的所有保证,包括所有默示的适销性和适用性的保证。在任何情况下,Brian Smith 或作者均不对任何特殊、直接、间接或后果性损害或任何因使用或性能而导致的损害(无论是否因合同行为、疏忽或其他侵权行为而引起)承担责任。

ring

ring 致力于通过易于使用(且难以误用)的 API 暴露一组核心加密操作的实现、测试和优化。 ring 提供了一个 Rust API,并使用 Rust、C 和汇编语言混合编写。

特别关注使其易于构建和集成 ring 到应用程序和高级框架中,并确保 ring 在小型设备上以及最终在微控制器上运行优化,以支持物联网 (IoT) 应用。

ring 中的大部分 C 和汇编语言代码来自 BoringSSL,BoringSSL 是从 OpenSSL 衍生而来的。 ring 定期合并 BoringSSL 的更改。此外,为 ring 开发的几个更改已贡献给并集成到 BoringSSL。

文档

请参阅https://docs.rs/ring/latest/ring/中的文档。

有关构建说明,请参阅BUILDING.md。这些说明对于交叉编译以及在不是从 crates.io 构建时在 Windows 上构建尤为重要,因为需要安装一些构建先决条件。

基准测试

ring 的基准测试位于本存储库的 bench 文件夹中。由于 ring 中有大量与平台相关的代码,并且由于 ring 在运行时动态选择每个加密原语的最佳实现,因此很难发布一组有用的基准测试;相反,强烈鼓励您在自己的目标硬件上运行基准测试。

贡献

最重要的贡献是 ring 的应用。也就是说,我们对在 ring 之上构建有用事物非常感兴趣,例如 TLS、SSH、Noise 协议等的实现。

ring 项目乐意接受 pull request。修改现有文件的 pull request 部分,必须以与被修改文件相同的条款许可。pull request 中的新文件,特别是所有 Rust 代码,必须以 ISC 风格许可。请在 pull request 的提交信息中表明您同意以以下方式许可您的贡献,将其放在提交信息底部:


I agree to license my contributions to each file under the terms given
at the top of each file I changed.

最低支持的 Rust 版本 (MSRV)

ring 在最新稳定版、Beta 版和 Nightly 版本的 Rust 上进行了测试,以及根据 CI 中运行的测试已知的最早版本。已知可工作的最早版本在 Cargo.toml 中记录为 MSRV。

错误报告

有关报告安全漏洞的帮助,请参阅 SECURITY.md

请将不是安全漏洞的错误报告为 pull request 或 问题跟踪器 中的问题。

许可

请参阅 LICENSE

依赖项

~0.2–9MB
~70K SLoC