#data-encoding #constant-time #hex #bech32 #base64 #security #binary-data

无std subtle-encoding

为常见数据编码(base64、bech32、hex)提供编码器和解码器,避免数据依赖分支/表查找,因此提供“尽力而为”的恒定时间。适用于编码/解码诸如加密密钥之类的秘密值。

12个版本

0.5.1 2020年2月8日
0.5.0 2019年10月14日
0.4.1 2019年10月7日
0.3.7 2019年6月5日
0.3.0 2018年11月25日

#90 in 编码

Download history 17268/week @ 2023-12-10 12568/week @ 2023-12-17 7441/week @ 2023-12-24 15872/week @ 2023-12-31 20589/week @ 2024-01-07 16175/week @ 2024-01-14 18535/week @ 2024-01-21 27221/week @ 2024-01-28 20181/week @ 2024-02-04 22608/week @ 2024-02-11 17474/week @ 2024-02-18 15106/week @ 2024-02-25 18195/week @ 2024-03-03 23973/week @ 2024-03-10 22095/week @ 2024-03-17 17436/week @ 2024-03-24

82,447 每月下载量
用于 274 个crate (54 直接)

Apache-2.0 OR MIT

51KB
1K SLoC

subtle-encoding iqlusion

Crate Docs Apache 2.0/MIT Licensed MSRV Safety Dance Build Status Gitter Chat

Rust crate,用于将二进制数据编码/解码为 base64hex 编码,同时避免数据依赖分支/表查找,因此提供“尽力而为”的恒定时间操作。

还包括一个非恒定时间的Bech32编码器/解码器,通过bech32-preview Cargo功能控制(目标是将它变成恒定时间)。

适用于编码/解码诸如加密密钥之类的秘密值。

文档

最低支持的Rust版本

  • Rust 1.39

安全通知

虽然这个crate注意避免数据依赖分支,但这实际上并不使它成为“恒定时间”,这是一个与架构相关的属性。

这个crate是提供恒定时间编码库的“尽力而为”尝试,然而它目前不提供任何保证,也没有被独立审计以检查安全漏洞。

自行承担风险。

许可证

版权所有 © 2018-2020 iqlusion

subtle-encoding根据MIT许可证或Apache许可证(版本2.0)的条款分发,由您选择。

请参阅此存储库顶层目录中的iqlusioninc/crates目录下的LICENSE(Apache许可证,版本2.0)文件或LICENSE-MIT以获取详细信息。

依赖项