一款轻量、安全、易于使用的加密库,适用于受限环境。
============== Hydrogen 库是一个小巧、易于使用、难以滥用的加密库。
特点: - 采用了与 libsodium 相同的高级 API,而不是低级原语,它提供了简单的函数来解决加密学可以解决的常见问题。 - 100% 使用了仅两个加密构件: Curve25519 椭圆曲线和 Gimli 置换。 - 体积小,易于审计。每一组操作都实现为一个小文件,只需在项目中添加一个.c文件即可在项目中使用 libhydrogen。 - 整个代码以单一的非常宽松的许可证(ISC)发布。 - 没有动态内存分配,堆栈要求低(中位数: 32 字节,最大: 128 字节)。这使其可用于受限的环境,例如微控制器。 - 可移植: 使用标准 C99 编写。支持 Linux、BSD、MacOS、Windows 和 Arduino IDE。 - 可以在 Arduino 板上生成加密学上安全的随机数。 - 尝试减轻意外滥用的影响,即使在不可靠的 PRG 和/或无时钟的系统中也是如此。
非目标: - 具有多个用于同一目的的原语,甚至为了与其他库兼容。 - 网络 - 但基于 Noise 协议的简单密钥交换 API 已经可用,并且将实现基于 STROBE 的传输 API。 - 与其他库的互操作性。 - 替换 libsodium。 Libhydrogen 试图将 API 数量和代码大小降至最低。
这个项目的存在得益于所有贡献者。[贡献
暂无开放 Issues,或尚未同步最近议题。