graviola:为Rust提供高质量、快速、易构建的加密库
graviola 项目地址: https://gitcode.com/gh_mirrors/gr/graviola
在当今的软件开发领域,安全性已成为不可忽视的重要环节。graviola,这是一个专为Rust语言设计的加密库,以其高质量、快速的性能和易构建的特性,满足了开发者对安全性的高要求。
项目介绍
graviola是一个高质量的加密算法集合,旨在与rustls库配合使用。它集成了s2n-bignum项目的汇编程序,这些程序已经过形式化验证,确保正确执行所需的数学运算。此外,graviola在性能上与其他Rust加密库相媲美或超越,并且在构建过程中无需C编译器、汇编器或其他工具,仅需要Rust编译器即可在不到一秒的时间内完成编译。
项目技术分析
graviola的设计理念是提供高性能的加密算法,同时保持易用性。以下是该项目的一些技术亮点:
- 高质量:集成了s2n-bignum项目的汇编例程,这些例程已经过形式化验证,确保了加密运算的正确性。
- 快速:在各种加密算法的性能比较中,graviola的表现优于或与其他库相当。
- 易构建:构建过程无需额外工具,只需Rust编译器即可快速完成。
graviola目前支持的算法包括:
- 公钥签名:RSA-PSS签名验证、RSA-PKCS#1签名验证、RSA-PSS签名、RSA-PKCS#1签名、ECDSA on P256 w/ SHA2、ECDSA on P384 w/ SHA2。
- 哈希算法:SHA256、SHA384 & SHA512、HMAC、HMAC-DRBG。
- 密钥交换:X25519、P256、P384。
- AEADs:AES-GCM、chacha20-poly1305和xchacha20-poly1305。
项目技术应用场景
graviola的设计目标是提供在Web上广泛使用的算法,并通过rustls-graviola作为rustls的CryptoProvider
使用。这使得graviola非常适合于需要高强度安全性的Web应用和服务,特别是在需要快速、可靠的加密运算的场景中。
项目特点
graviola的特点如下:
- 构建速度:
cargo build
的构建时间小于一秒,且仅需Rust编译器。 - 性能竞争力:在性能上与其他加密库如ring、aws-lc-rs和rustcrypto相媲美或超越。
- 使用形式化验证的汇编程序:从其他项目中使用经形式化验证的汇编代码。
- 提供广泛使用的算法:旨在提供Web上广泛使用的算法。
- 易于使用的API:提供了供一般用途使用的公共API。
graviola目前仅支持aarch64
和x86_64
架构,并要求特定的CPU特性。对于aarch64
,需要aes
、sha2
、pmull
和neon
特性;对于x86_64
,需要aes
、ssse3
、avx
、avx2
、bmi2
和pclmulqdq
特性。
graviola的代码遵循清晰的架构分层,包括底层(low)的原始加密操作、中层(mid)的构造、协议和编码,以及高层(high)的编码和操作。这样的设计保证了代码的模块化和可维护性。
在许可证方面,graviola采用了Apache-2.0、ISC或MIT-0的混合许可证,与s2n-bignum项目保持一致。
graviola是一个值得关注的开源项目,尤其是对于那些在Rust环境中寻求高质量加密解决方案的开发者。其出色的性能和易用性,使得graviola在安全软件开发领域中具有广阔的应用前景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考