9个版本 (4个破坏性更新)
0.5.0 | 2022年1月7日 |
---|---|
0.4.0 | 2021年12月27日 |
0.3.1 | 2021年12月26日 |
0.2.2 | 2021年11月29日 |
0.1.1 | 2021年6月26日 |
#2116 in 加密
每月25次下载
59KB
634 行
Hard - Rust的强化缓冲区
存储敏感数据(加密密钥、密码、明文等)可能会遇到问题。数据可能从未初始化的内存中恢复,从核心转储/崩溃报告中恢复,或意外地通过缓冲区溢出泄露。
Hard试图提供对这些错误具有强化功能的缓冲区类型。基于libsodium加密库,我们使用其安全内存实用程序来分配和管理缓冲区类型背后的内存。使用hard分配的内存直接放置在页面末尾,然后是保护页面,因此任何缓冲区溢出都会立即导致程序终止。在分配的内存之前放置一个canary,以检测释放时的修改,并在其前面放置另一个保护页面。建议操作系统不要将内存交换到磁盘,或将其包含在崩溃报告/核心转储中。最后,当释放内存时,首先安全地清除,以便编译器不会尝试优化掉该操作。
有关更多信息,请参阅文档。
安全/漏洞披露
如果您发现hard中的漏洞,请立即联系tom25519@pm.me
并提供详细信息。
我的age公钥(首选)是
age1gglesedq4m2z9kc7urjhq3zlpc6qewcwpcna7s0lwh8k2c4e6fxqf3kdvq
我的PGP公钥指纹为0x4712EC7C9F404B14
,可以从keyserver.ubuntu.com、pgp.mit.edu或Github获取。
许可
在以下任一项许可下发布:
- Apache许可证2.0版本(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的,旨在包含在工作中的任何贡献,都应双重许可,如上所述,没有任何附加条款或条件。
依赖项
~2.3–4.5MB
~45K SLoC