介绍

Sandwich 加密算法元库为开发人员提供了一个简单的、统一的且不容易误用的 API,供其在应用程序中使用自己选择的加密算法和协议。Sandwich 是用 Rust 编写的,提供了一个 C API,并绑定了 Python 和 Go。该 API 通过各种加密库(OpenSSL 和 BoringSSL)实现,尤其支持 libOQS,这意味着 Sandwich 支持后量子加密技术。

该库的一个目标是实现动态加密灵活性,而不必重新编译或重新部署更新的软件。

介绍 - 图1

抽象的隧道

Sandwich 提供了一个安全的隧道抽象。例如,TLS 就是这样一种隧道。Sandwich 将隧道的概念切片成两个不同的维度:

握手平面,其中生成两个对等体之间的共享密钥 记录平面,其中交换实际受保护的数据 有关更多详细信息,请参阅文档。

运行时加密灵活性

利用 Sandwich,软件可以实现动态加密灵活性,即在运行时可以选择使用哪个加密库后端。例如见 TODO 所示。

Sandwich 使用现有的加密库(即 OpenSSL 或 BoringSSL)来实现其底层的加密功能。

安全修复

Sandwich 非常注重底层库的性能和安全修复。