#seed #phrase #generate #numbers #validate #generated #secret-shared

bin+lib harpo

harpo 包提供秘密共享种子短语的功能

6 个版本

0.7.0 2021 年 12 月 17 日
0.6.4 2021 年 12 月 14 日
0.6.2 2021 年 11 月 30 日
0.6.0 2021 年 10 月 29 日

#5 in #phrase

GPL-3.0-or-later

130KB
2K SLoC

harpo

harpo 是一个工具和库,提供了以下功能

  • 它可以生成一个 种子短语
  • 它可以验证给定的种子短语。
  • 给定一个有效的种子短语,它可以生成任意数量的 秘密共享 种子短语。
  • 给定足够多的生成种子短语,它可以重建原始种子短语。

harpo 包的名称来自 Harpocrates,这位古代沉默、秘密和机密的神。

虽然 harpo 经过了合理的测试,但使用它 请自行承担风险

编译

请确保已安装 Rust

在克隆仓库并切换到 harpo 目录后,运行以下命令

cargo build --release

二进制文件可以在 target/release 下找到(或者在没有 --release 标志的情况下运行命令时,在 target/debug 下)。

用法

生成种子短语

可以通过运行以下命令生成种子短语

harpo generate --length [L]

长度 [L] 必须是 12、15、18、21 或 24。生成的种子短语将被写入标准输出。

验证种子短语

可以通过运行以下命令验证种子短语,即检查其是否符合 BIP-0039 规范

harpo validate (--file [F]))

输入以两种方式之一提供

  • 默认情况下,种子短语通过命令行输入。
  • 当使用 --file (-f) 选项时,从路径 [F] 的文件中读取以空格分隔的种子短语。

例如,文件内容或交互式输入可能是

cat swing flag economy stadium alone churn speed unique patch report train

创建秘密共享种子短语

为了创建秘密共享种子短语,请运行以下命令

harpo create --num-shares [N] --threshold [T] (--file [F])

输入再次以两种方式之一提供,通过命令行或使用 --file (-f) 选项,在这种情况下,从路径 [F] 的文件中读取以空格分隔的种子短语。

注意,输入的种子短语必须通过验证,否则执行将因错误信息而终止。

除了指定输入源之外,还需要两个其他参数

  • --num-shares (-n) [N]:必须提供所需的秘密共享种子短语的数量[N]。请注意,除非使用选项--no-embedding,否则份额的数量最多为16(请参阅附加参数)。
  • --threshold (-t) [T]:必须提供所需的阈值[T],即重构原始种子短语所需的最小秘密共享种子短语数量。阈值不得超过份额数量。

创建的种子短语将写入标准输出。

秘密共享种子短语的重构

为了重构原始种子短语,请运行以下命令

harpo reconstruct (--file [F] | --interactive)

再次,输入可以通过两种方式之一提供

  • 默认情况下,种子短语在命令行中依次输入。
  • 当使用--file (-f)选项时,空格分隔的种子短语将从路径[F]的文件中读取,每行一个种子短语。

重构的种子短语将写入标准输出。如果提供了至少[T]个秘密共享种子短语,输出将匹配原始种子短语。否则,输出无法与随机种子短语区分。

附加参数

可以在输入子命令之前指定以下附加参数

  • --verbose (-v):添加此标志以激活详细输出。
  • --word-list (-w) [W]:可以提供不同的单词列表(除标准英语单词列表之外)。它必须是一个包含2048个不同单词的列表,每个单词一行。

create子命令有一个可选参数

  • --no-embedding (-N):默认情况下,秘密共享种子短语不遵循BIP-0039标准,因为它们编码了用于重构所需的索引。为了获得BIP-0039兼容的种子短语,可以使用此标志关闭嵌入。在这种情况下,当使用reconstruct命令时,必须显式提供索引。格式为[INDEX]: [SEED PHRASE]

可以使用每个子命令的--help (-h)标志打印所有可用参数。

依赖关系

~2.5MB
~38K SLoC