这个项目能做什么

tc_rust 是一个基于 Bouncy Castle C# 库的纯 Rust 密码学工作区,由个人创建,用于学习 Rust、密码学算法和 API 设计。该项目明确表示是独立、非官方的重新实现,与 Bouncy Castle Inc. 无关,也不受其认可。由于是正在进行中的项目,API 不稳定,且未经过安全审计,因此不适合生产或实际安全应用。 该库提供了全面的密码学原语,分为模块化 crate。块密码支持 28 个公共引擎,包括 AES、ARIA、Camellia、DES 和 SM4,并附带已知答案测试。流密码引擎包括 RC4、ChaCha、Salsa20 和 HC-128/256。此外,还实现了 8 个块密码模式族,如 ECB、CBC、CTR 和 GCTR,尽管不提供填充或认证。摘要支持非常广泛,包含 45 个导出类型,包括 SHA-2/3、BLAKE2/3、MD5 和 RIPEMD 系列。 数学基础包括任意精度整数、二进制域算术和椭圆曲线操作,支持 SEC 和 SM2 曲线。还支持 X25519/X448 密钥交换和 Ed25519/Ed448 签名,并具有严格的验证模式。密钥包装实现遵循 RFC 3394、RFC 5649 和 DSTU 7624 标准。架构强调 `no_std` 兼容性,crate 从仅核心到需要 `alloc` 或 `std` 的性能优化(如 AES-NI 和 AVX2 加速)不等。依赖图设计为无环,允许用户仅选择所需的层。项目采用 MIT 或 Apache-2.0 许可证。