6 个版本

0.3.0 2023年7月19日
0.2.1 2023年5月3日
0.1.6 2022年10月13日
0.1.2 2022年8月25日

#397加密学

Download history 55/week @ 2024-04-21 40/week @ 2024-04-28 14/week @ 2024-05-05 65/week @ 2024-05-12 48/week @ 2024-05-19 68/week @ 2024-05-26 44/week @ 2024-06-02 40/week @ 2024-06-09 40/week @ 2024-06-16 35/week @ 2024-06-23 3/week @ 2024-06-30 29/week @ 2024-07-07 25/week @ 2024-07-14 34/week @ 2024-07-21 54/week @ 2024-07-28 36/week @ 2024-08-04

每月 153 次下载
3 个库中使用(通过 wnfs

Apache-2.0

91KB
1K SLoC

Skip Ratchet Logo

跳步螺旋

Crate Information Code Coverage Build Status License Docs Discord

此库实现了跳步螺旋论文。跳步螺旋是一种用于生成保持向后保密性的密钥的数据结构。与哈希链不同,此数据结构能够高效地在哈希计数上进行大跳跃。

大纲

使用方法

创建并推进新的螺旋。

use skip_ratchet::Ratchet;

let mut ratchet = Ratchet::new();
ratchet.inc_by(10);

println!("{:?}", ratchet.derive_key());

获取螺旋的早期版本。

use skip_ratchet::Ratchet;

let mut old_ratchet = Ratchet::new();
old_ratchet.inc_by(5);

let mut recent_ratchet = old_ratchet.clone();
recent_ratchet.inc_by(10);

for revision in recent_ratchet.previous(&old_ratchet, 10).unwrap() {
    println!("{:#?}", revision);
}

构建项目

  • 克隆仓库。

    git clone https://github.com/WebNativeFileSystem/rs-skip-ratchet.git
    
  • 更改目录

    cd rs-skip-ratchet
    
  • 构建项目

    cargo build
    

测试项目

  • 运行测试

    cargo test
    

贡献

预提交钩子

此库建议使用 pre-commit 运行预提交钩子。请在每次提交和/或推送之前运行此命令。

  • 安装后,运行 pre-commit install 以在本地设置预提交钩子。这将减少失败的 CI 构建。
  • 如果您在本地上进行中间提交,并且出于某种原因不希望预提交钩子触发,可以运行 git commit -a -m "Your message here" --no-verify

常规提交

此项目 轻微 遵循 常规提交约定,以帮助解释提交历史并与其他发布流程相结合。完整规范可在此处找到。我们建议使用 fixfeatdocscirefactor 等前缀您的提交,结构如下所示

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

获取帮助

对于使用问题、用例或问题,请通过我们的 Discord webnative-fs 频道联系我们。我们很乐意尝试回答您的问题或尝试在 Github 上创建一个新问题。

许可证

本项目采用 Apache License 2.0 许可。

依赖项

~2MB
~53K SLoC