#memory #zero #secure #compiler-optimization #volatile #memset

无std zeroize

使用稳定Rust原语构建的简单特性和操作,确保内存被零化,并且不会被编译器'优化掉'。使用便携的纯Rust实现,可在任何地方工作,甚至WASM!

17个稳定版本

1.8.1 2024年5月25日
1.7.0 2023年11月16日
1.6.0 2023年3月26日
1.5.7 2022年7月20日
0.4.2 2018年11月28日

#695 in 操作系统

Download history 1165193/week @ 2024-05-03 1220764/week @ 2024-05-10 1247184/week @ 2024-05-17 1306219/week @ 2024-05-24 1427795/week @ 2024-05-31 1386798/week @ 2024-06-07 1392827/week @ 2024-06-14 1409322/week @ 2024-06-21 1382050/week @ 2024-06-28 1490338/week @ 2024-07-05 1542592/week @ 2024-07-12 1597829/week @ 2024-07-19 1642547/week @ 2024-07-26 1613260/week @ 2024-08-02 1680694/week @ 2024-08-09 1672931/week @ 2024-08-16

6,918,395 每月下载量
13,098 个crate中使用 (861个直接使用)

Apache-2.0 OR MIT

36KB
456

RustCrypto: zeroize

Crate Docs Apache 2.0/MIT Licensed MSRV Build Status

在避免编译器优化的同时,安全地清空内存(即零化)。

该crate实现了一种可移植的方法来安全地清空内存,使用的技术可以确保它们不会被编译器"优化掉"。

Zeroize 特性是该crate的主要API。

文档

关于

安全地清空内存是困难的 - 编译器优化性能,在这个过程中,它们喜欢"优化掉"不必要的清零调用。有许多记录的"技巧"试图避免这些优化并确保清零例程可靠地执行。

这个crate不涉及技巧:它使用core::ptr::write_volatilecore::sync::atomic内存栅栏来提供易于使用的、可移植的清零行为,适用于所有Rust的核心数字类型及其切片,纯Rust实现,不使用FFI或汇编。

  • 没有不安全的回退!
  • 没有依赖!
  • 没有FFI或内联汇编!WASM友好(并已测试)!
  • #![no_std]嵌入式友好
  • 除了安全地清空内存外,没有其他功能!
  • (可选)为复杂结构提供自定义derive支持

最低支持的Rust版本

Rust 1.60 或更高版本。

在将来,我们保留更改MSRV(即对于此crate的SemVer保证,MSRV不在此范围内)的权利,然而当我们这么做时,将会伴随着小版本号的提升。

许可证

根据以下任一许可证授权:

您可选择。

贡献

除非您明确声明,否则任何由您提交用于包含在作品中的贡献(根据Apache-2.0许可证定义),将如上双许可,不附加任何额外条款或条件。

依赖项

~170KB