4个版本 (破坏性)

0.4.0 2024年6月20日
0.3.0 2024年5月17日
0.2.0 2024年3月1日
0.1.0 2024年2月16日

#480 in 加密学

Download history 84/week @ 2024-04-25 91/week @ 2024-05-02 126/week @ 2024-05-09 197/week @ 2024-05-16 104/week @ 2024-05-23 160/week @ 2024-05-30 163/week @ 2024-06-06 186/week @ 2024-06-13 238/week @ 2024-06-20 18/week @ 2024-06-27 139/week @ 2024-07-04 55/week @ 2024-07-11 79/week @ 2024-07-18 93/week @ 2024-07-25 35/week @ 2024-08-01 7/week @ 2024-08-08

220 每月下载
用于 3 crates

MIT/Apache

29KB
436 代码行

SLIP-10:确定性密钥生成

SLIP10 是一个实现HD钱包的规范。它旨在支持许多曲线,同时与 BIP32 兼容。

实现基于提供通用椭圆曲线算术的 generic-ec 库。该crate支持无std和无分配。

曲线支持

当前实现不支持ed25519曲线。所有其他曲线都受支持:包括secp256k1和secp256r1。实际上,实现可能与任何曲线一起工作,但只有那些被SLIP10规范所覆盖。

该crate还重新导出支持的曲线在supported_curves模块中(需要启用功能),但任何其他曲线实现都将与该crate一起工作。

功能

  • std:启用std库支持(主要,它只是为错误类型实现Error trait)
  • curve-secp256k1curve-secp256r1将曲线实现添加到crate支持的_curves模块中

示例

从种子派生主密钥,然后派生子密钥m/1H/10

use slip_10::supported_curves::Secp256k1;

let seed = b"16-64 bytes of high entropy".as_slice();
let master_key = slip_10::derive_master_key::<Secp256k1>(seed)?;
let master_key_pair = slip_10::ExtendedKeyPair::from(master_key);

let child_key_pair = slip_10::derive_child_key_pair_with_path(
    &master_key_pair,
    [1 + slip_10::H, 10],
);

依赖项

~1.6–2.8MB
~53K SLoC