0.1.2 |
|
---|---|
0.1.1 |
|
0.1.0 |
|
#78 in #ssl
每月26次下载
9MB
愿景
RustySSL通过提供与Rust的核心库完全兼容的API,旨在实现Rust语言的自主性,尽管不仅限于它。RustySSL旨在提供可靠、用户友好、标准兼容和平台无关的加密工具套件。
如何使用
请参阅实现文档以获取示例。
针对NIST测试向量的测试
RustySSL中实现的所有经NIST批准和发布的算法都经过彻底的NIST测试向量测试。这种严格测试确保了我们的实现的正确性和可靠性,为使用RustySSL构建的任何应用程序提供了强大的安全基础。
路线图
- RustySSL的初始目标是把所有OpenSSL算法移植到Rust生态系统。
- 移植之后,RustySSL将继续扩展并纳入更多的加密算法。
- 尽管当前的实现不是最快的,但仍有很大的改进空间。一旦SIMD模块稳定,可能会获得有竞争力的性能提升;
之后计划实现一些加密货币哈希算法,如Equihash、以太坊的Keccak-256和其他算法。
为什么是这个项目?
RustySSL的益处包括
- 最小依赖和供应链安全:通过仅依赖Rust的核心库,RustySSL最大限度地减少了依赖相关问题的风险,并提供了一个更高的供应链安全级别。只需要信任Rust核心库团队;
- 无
alloc
外部包和平台无关:RustySSL避免了alloc
包,使其能够在没有假设宿主具有堆分配器的情况下运行,并使其适用于更多的嵌入式应用程序和内核级用途。此外,利用Rust的libcore确保了跨平台的可靠性,减少了最终用户的复杂性; - 统一的设计模式:通过遵循Rust核心库中的
Hash
、Hasher
和BuildHasher
设计模式,用户可以使用对这些特性有基本了解的任何算法。 - 生态系统自给自足:该项目通过依赖自身的实现来增强Rust生态系统的自给自足,通过FFI调用减少对外部变量的依赖。
哲学
受到Unix哲学的启发,但适应了本项目的目的
- 一事一终:每个实现应该专注于单一责任。如果责任分散,应该创建一个新的crate。
- 避免依赖中断:更改实现不应破坏依赖。如果需要新的特性,它们应该对所有项目实现有益。
- 自给自足:实现应该能够仅使用Rust的libcore独立运行,并且与其向后兼容。
- 清晰胜于效率:清晰易懂的代码优于高度优化但晦涩难懂的解决方案。
支持算法
加密算法 | 散列函数 | 公钥 |
---|---|---|
AES - 即将推出 |
BLAKE2 - 即将推出 |
DSA - 即将推出 |
Blowfish - 即将推出 |
通用Keccak {200, 400, 800, 1600} - rs_keccak_nbits |
Diffie-Hellman密钥交换 - 即将推出 |
Camellia - 即将推出 |
GOST R 34.11-94 - 即将推出 |
Ed25519 - 即将推出 |
CAST-128 - 即将推出 |
HMAC - rs_hmac |
Ed448 - 即将推出 |
Chacha20 - 即将推出 |
MD2 - 即将推出 |
椭圆曲线 - 即将推出 |
DES - 即将推出 |
MD4 - 即将推出 |
GOST R 34.10-2001 - 即将推出 |
GOST 28147-89 - 即将推出 |
MD5 - 即将推出 |
RSA - 即将推出 |
IDEA - 即将推出 |
MDC-2 - 即将推出 |
SM2 - 即将推出 |
Poly1305 - 即将推出 |
RIPEMD-160 - 即将推出 |
X25519 - 即将推出 |
RC2 - 即将推出 |
SHA-1 - rs_sha1 |
X448 - 即将推出 |
RC4 - 即将推出 |
SHA-224 - rs_sha224 |
|
RC5 - 即将推出 |
SHA-256 - rs_sha256 |
|
SEED - 即将推出 |
SHA-384 - rs_sha384 |
|
SM4 - 即将推出 |
SHA-512 - rs_sha512 |
|
三重DES - 即将推出 |
SHA-512/224 - rs_sha512_224 |
|
SHA-512/256 - rs_sha512_256 |
||
SHA3-224 - rs_sha3_224 |
||
SHA3-256 - rs_sha3_256 |
||
SHA3-384 - rs_sha3_384 |
||
SHA3-512 - rs_sha3_512 |
||
SHAKE128 - rs_shake128 |
||
SHAKE256 - rs_shake256 |
||
SM3 - 即将推出 |
||
Whirlpool - 即将推出 |
贡献
欢迎每个人的贡献。
如果您建议将某种算法包含在此项目中,请提出一个issue。
要贡献,请遵循贡献指南。
行为准则
每个Rust社区成员的参与都很有价值,每个人都期待有一个愉快和充实的体验。因此,所有参与者、维护者和贡献者都必须遵守行为准则。
许可
RustySSL采用GPL-2.0-only许可。
简单来说,这意味着您可以自由使用、修改和分发软件,但任何修改也必须以GPL-2.0-only许可。或者,如果更方便的话,对于改进并符合贡献指南的修改,将其纳入项目中。