#密钥派生 #现代 # #加密

cryptoxide

纯Rust实现的各种现代加密算法,WASM兼容

18个版本

0.4.4 2023年2月17日
0.4.2 2022年1月31日
0.3.6 2021年11月3日
0.3.3 2021年5月18日
0.1.0 2018年9月18日

#45 in 密码学

Download history 4713/week @ 2024-03-14 5632/week @ 2024-03-21 4969/week @ 2024-03-28 4684/week @ 2024-04-04 5217/week @ 2024-04-11 5792/week @ 2024-04-18 4143/week @ 2024-04-25 4012/week @ 2024-05-02 3559/week @ 2024-05-09 5860/week @ 2024-05-16 11742/week @ 2024-05-23 9696/week @ 2024-05-30 5075/week @ 2024-06-06 4985/week @ 2024-06-13 4724/week @ 2024-06-20 3537/week @ 2024-06-27

19,458每月下载量
122个crate中使用 (41个直接使用)

MIT/Apache

755KB
15K SLoC

Cryptoxide

Crates.io MIT licensed APACHE-2 licensed Build Status

API文档

Cryptoxide是一个纯Rust实现的现代加密算法库,无依赖,无外部代码(尤其是C或汇编代码)。它兼容WASM和嵌入式设备。

该crate包旨在以尽可能少的依赖支持尽可能多的架构。

免责声明:由于所有内容都与密码学相关,因此使用时没有任何保证

概述

Cryptoxide是一个密码学crate,旨在提供高质量和高效的纯Rust实现的各种流行加密算法。

它提供以下类别中的各种常见算法

  • 密码学摘要:SHA1,SHA2,SHA3,KECCAK,BLAKE2,RIPEMD160
  • 消息认证码 (MAC):HMAC,Poly1305
  • 对称加密:Salsa,Chacha
  • 认证加密 (AE):ChachaPoly1305
  • 密钥派生函数 (KDF):Pbkdf2,HKDF,Scrypt

我们的主要目标是提供一个在多种环境中可用的库,通过支持许多平台,但仅通过提供接近Rust核心API的简单API。

cryptoxide无依赖,并且将保持无依赖状态。尽可能多地依赖Rust原语,仅使用core API,并在少数地方使用alloc来获取动态内存功能,直到我们可以移除它们(当const-generic稳定时)。

分支信息

这是DaGenix的Rust-Crypto的一个分支,我们对其为各种加密算法提供高质量的纯Rust实现表示感激。

与原始源代码的显著差异

  • 维护中。
  • 扩展ED25519支持,支持扩展密钥(64字节)。
  • 正确实现ChaChaPoly1305(根据规范)。
  • 删除了许多加密算法:AES,Blowfish,Fortuna,RC4,RIPEMD160,Whirlpool,MD5。

运行基准测试

通常

cargo +nightly bench --features with-bench

或启用所有CPU能力

RUSTFLAGS="-C target_cpu=native" cargo +nightly bench --features with-bench

支持的编译器版本

Rust 测试
稳定
beta
nightly

我们始终会至少支持当前稳定版本。然而,很可能也支持较旧的Rust编译器版本。

许可证

本项目采用以下任一许可证授权:

无运行时依赖

功能