氢库是一个小的,易于使用的,难以介绍的加密库。
特征:
- 一致的高级API,灵感来自libsodium。它不再是低级原语,而是揭示了简单的功能来解决密码学可以解决的常见问题。
- 100%仅使用两个加密构件构建:曲线25519椭圆曲线和gimli置换。
- 小而易于审核。在每组操作中实现为一个小
.c ,并在项目中使用libhydrygen所需的全部。 - 整个代码是根据一个非常自由的许可(ISC)发布的。
- 零动态内存分配和低堆栈要求(中位数:32字节,最大:128字节)。这使其可在受约束环境(例如微控制器)中使用。
- 便携式:用标准C99编写。支持Linux, *BSD,MacOS,Windows和Arduino Ide开箱即用。
- 即使在Arduino板上,也可以生成密码确定的随机数。
- 尝试减轻意外滥用的含义,即使在具有不可靠的PRG和/或没有时钟的系统上。
非目标:
- 具有多个原语的服务,甚至可以与其他库提供兼容性。
- 网络 - 但是可以使用基于噪声协议的简单密钥交换API,并且将实现基于频闪的传输API。
- 与其他库的互操作性。
- 替换libsodium。诽谤试图将API的数量和代码大小降低到最低。
利布尔德文件
该文档维持在富裕的Wiki中。
V0分支中,遗产性富有二氢代码(利用Xchacha20,Siphashx,Blake2SX,Curve25519)仍然可用。
贡献者
代码贡献者
由于所有贡献的人,该项目的存在。 [贡献]。