#aead #mac #hash #stream-cipher #crypto #key-exchange

不依赖std orion

可用、简单且安全的纯Rust加密库

16个版本

0.17.6 2023年9月19日
0.17.5 2023年7月4日
0.17.4 2023年3月4日
0.17.3 2022年12月7日
0.1.42 2018年3月20日

#29 in 密码学

Download history 35654/week @ 2024-04-15 39256/week @ 2024-04-22 38765/week @ 2024-04-29 36733/week @ 2024-05-06 36469/week @ 2024-05-13 35247/week @ 2024-05-20 36426/week @ 2024-05-27 38206/week @ 2024-06-03 36117/week @ 2024-06-10 36458/week @ 2024-06-17 35291/week @ 2024-06-24 34705/week @ 2024-07-01 38024/week @ 2024-07-08 38589/week @ 2024-07-15 38058/week @ 2024-07-22 40716/week @ 2024-07-29

158,642 每月下载量
用于 48 个crate (16个直接使用)

MIT 许可证

1MB
14K SLoC

orion

Tests Daily tests dudect Audit codecov Documentation Crates.io Safety Dance MSRV Matrix

关于

Orion 是一个用纯Rust编写的密码学库。它旨在提供简单易用的加密功能,同时尽量减少不安全代码的使用。您可以在 wiki 中了解更多关于 Orion 的信息。

目前支持

  • AEAD: (X)ChaCha20-Poly1305。
  • 哈希: BLAKE2b, SHA2, SHA3。
  • 密钥派生函数: HKDF, PBKDF2, Argon2i。
  • 密钥交换: X25519。
  • MAC: HMAC, Poly1305。
  • 流密码: (X)ChaCha20。
  • 密钥封装机制: DHKEM(X25519, HKDF-SHA256).

实验性支持(启用 experimental 功能)

  • 提交AEAD: (X)ChaCha20-Poly1305-BLAKE2b。

安全性

此库尚未经过任何第三方安全审计。使用存在风险。

Orion 使用由Fiat Crypto生成的形式化验证算术,用于X25519和Poly1305的实现。

有关正确使用、报告安全问题等方面的建议,请参阅 SECURITY.md。有关 Orion 的安全性信息,请参阅 wiki

最低支持的Rust版本

支持 Rust 1.70 或更高版本,但大多数测试是在最新稳定版 Rust 上进行的。

MSRV 可能随时更改,不会被视为 SemVer 破坏性更改。

crate功能

  • default/safe_api:所有功能,需要 std
  • serde:需要 allocdefault/safe_api
  • alloc:在 default/safe_api 不可用的情况下,Argon2i 在 hazardous 中。
  • no_std:表示没有堆分配的隐式功能。通过禁用默认功能和不选择任何附加功能来启用。
  • experimental:这些API可能包含在非 SemVer 破坏性 crate 版本中的破坏性更改。

关于wiki中特制的更详细说明。

文档

可以在这里查看,或者通过以下方式构建:

RUSTDOCFLAGS='--cfg docsrs' cargo +nightly doc --no-deps --all-features

测试和模糊测试

wiki中提供了关于Orion如何进行测试的详细信息。要运行所有测试

cargo test

模糊测试使用honggfuzz-rsorion-fuzz中进行。有关如何开始模糊测试Orion的说明,请参阅orion-fuzz

恒时执行测试可以在orion-dudectorion-sidefuzz中找到。

基准测试

可以在这里查看从Orion可以期望的性能概述。

可以使用Criterion进行基准测试,如下所示。所有基准测试都位于benches/

cargo bench

变更日志

请参阅CHANGELOG.md列表。

贡献

有关如何为Orion做出贡献的信息,请参阅CONTRIBUTING.md中的指南。

许可证

Orion采用MIT许可证。有关更多信息,请参阅LICENSE文件。

依赖关系

~4MB
~83K SLoC