3 个版本
0.1.2 | 2023年12月17日 |
---|---|
0.1.1 | 2023年12月17日 |
0.1.0 | 2023年12月17日 |
#484 in 加密学
150,473 每月下载量
在 13 个 库中使用 (直接使用 2 个)
200KB
816 行
为 Rust 加密实现提供的 Boring(SSL) 兼容 API 抽象层。
什么是 Superboring?
Superboring 在 Rust 中实现了 boring
API 的模拟,从而隐藏了加密实现(Rust 对 BoringSSL 的优秀包装)的复杂性、多样性和不稳定性。
这允许使用 boring
API 编写的应用程序也能使用纯 Rust 实现,而不必维护两个代码库。
为什么使用模拟而不是始终使用 boring
?
以下是一些使用 boring
有时可能不是选择的有效原因。
这些都是尚未在 boring
库中实现的功能,而且 boring
维护者可能更愿意得到帮助,而不是让人们找到解决方案。
WebAssembly
虽然 BoringSSL 本身 可以编译成 WebAssembly,但 boring
库目前不支持此功能。
静态构建
boring
库(实际上 boring-sys
)目前没有创建静态构建的能力。
尽管默认情况下,musl 使得 Rust 代码变慢,但纯 Rust 代码通常支持默认的静态构建。
与 OpenSSL 的符号冲突
OpenSSL 和 BoringSSL 共享大量符号,这可能导致冲突。
BoringSSL 有能力在符号前加前缀以避免这种情况。但 boring
库目前不支持此功能。
目前实现了什么?
Superboring 目前实现了处理 RSA 签名的几乎所有所需功能。
依赖项
~0–1MB
~18K SLoC