#rsa #ecc #rand #random #crypto

sys no-std ringpcx

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

1 个不稳定版本

0.17.8 2024 年 5 月 9 日

#1036密码学

自定义许可

4.5MB
150K SLoC

GNU Style Assembly 95K SLoC // 0.0% comments Perl 34K SLoC // 0.1% comments Rust 14K SLoC // 0.2% comments C 4.5K SLoC // 0.2% comments Assembly 2.5K SLoC // 0.0% 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》项目愉快地接受拉取请求。修改现有文件的拉取请求部分必须以与被修改文件相同的条款进行许可。拉取请求中的新文件,特别是所有Rust代码,必须以ISC风格许可。请在您的提交消息底部添加以下内容,以表明您同意在拉取请求的提交消息中许可您的贡献:


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

最低支持的Rust版本(MSRV)

《ring》已在Rust的最新稳定版、测试版和夜间版上进行了测试,以及根据CI中运行的测试已知能够正常工作的最旧版本。该已知能够正常工作的最旧版本被记录为Cargo.toml中的MSRV。

错误报告

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

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

许可

请参阅LICENSE

依赖

~0.2–9MB
~71K SLoC