#密钥 #私钥 #公钥 #PGP #短语 #生成密钥 #种子

应用 deterministic-pgp-keys

从12词种子短语生成PGP密钥

5个不稳定版本

0.5.0 2023年7月12日
0.4.1 2023年3月10日
0.3.1 2023年3月10日
0.3.0 2022年9月25日
0.1.0 2022年9月25日

#1670 in 密码学

Download history 23/week @ 2024-06-30 58/week @ 2024-07-28

58 每月下载次数

MIT/Apache

520KB
12K SLoC

确定性PGP密钥

从12词种子短语生成PGP密钥。

安装

cargo install deterministic-pgp-keys

示例

示例:生成新的种子短语

$ deterministic-pgp-keys --name "Jeffrey Bolle" \
                         --email "[email protected]" \
                         --date "2022-09-21" \
                         --public-key public.asc \
                         --private-key private.asc \
                         --generate

Seed Phrase:

   1: design     7: bubble
   2: car        8: hospital
   3: dutch      9: muffin
   4: struggle  10: earn
   5: hello     11: half
   6: pluck     12: best

written: private.asc
written: public.asc

$ gpg --keyid-format long --show-key public.asc

pub   rsa4096/507815B996600F36 2022-09-21 [C]
      AE39CF95A4039CAEFD1C22A7507815B996600F36
uid                            Jeffrey Bolle <[email protected]>
sub   rsa4096/D92839349498B4E1 2022-09-21 [S]
sub   rsa4096/F29826BF06FF3C1C 2022-09-21 [E]
sub   rsa4096/A8A8BD8D480C88FB 2022-09-21 [A]

$ sha256sum public.asc private.asc

074722130decd18b9a1eaf1219d5bb358745c517a8af9c3d6a81ead03e25ad50  public.asc
37cf6cc556e27c35a1e9325587079d651e5ca5fd77851676b4929560460c6626  private.asc

从现有的种子短语恢复密钥

$ deterministic-pgp-keys --name "Jeffrey Bolle" \
                         --email "[email protected]" \
                         --date "2022-09-21" \
                         --public-key public.asc \
                         --private-key private.asc

Seed Phrase: design car dutch struggle hello pluck bubble hospital muffin earn half best

written: private.asc
written: public.asc

$ gpg --keyid-format long --show-key public.asc

pub   rsa4096/507815B996600F36 2022-09-21 [C]
      AE39CF95A4039CAEFD1C22A7507815B996600F36
uid                            Jeffrey Bolle <[email protected]>
sub   rsa4096/D92839349498B4E1 2022-09-21 [S]
sub   rsa4096/F29826BF06FF3C1C 2022-09-21 [E]
sub   rsa4096/A8A8BD8D480C88FB 2022-09-21 [A]

$ sha256sum public.asc private.asc

074722130decd18b9a1eaf1219d5bb358745c517a8af9c3d6a81ead03e25ad50  public.asc
37cf6cc556e27c35a1e9325587079d651e5ca5fd77851676b4929560460c6626  private.asc

密钥生成稳定性

密钥生成仅保证与相同的主要版本号(对于0.x版本为次要版本号)的稳定性。请注意您用于生成密钥的版本,以确保您可以在以后重新生成它们。具体来说,在0.3.x和0.4.x版本上生成的密钥不能在0.5.x版本上重新生成。

致谢

pgp模块下的大部分代码是从pgp crate复制并为此项目修改的。

许可

MIT或Apache 2.0

依赖

~13–25MB
~328K SLoC