#secret-key #generate-keys #clippy #lint #public-key #plugin

app cfs_openpgp

cfs_openpgp 根据您提供的用户名、电子邮件和密钥生成有效的 OpenPGP 证书。尽管证书的 ASCII-武装表示形式可能不同,但相同的输入应该始终产生相同的密钥。显然,这非常不安全,绝不应该使用,否则独角兽和小猫会哭泣。

1 个不稳定版本

0.1.0 2021 年 4 月 4 日

#26#generate-keys

MITLGPL-2.0-or-later

18KB
317

cfs_openpgp

大多数情况下,这个软件包只是让我熟悉 Rust 的一个借口。

想象一下,你有一个安全的、现实世界的熵源,你将其用作根密钥(例如,https://dicekeys.com/)。你可能会合理地希望使用相同的根(结合盐)来生成可重复的加密密钥。这样,如果您的加密密钥遭到破坏,您可以使用安全的物理密钥和新的盐来生成新的密钥。但是,如果您的密钥丢失,您只需使用物理密钥和以前的盐来重新生成它们。

此应用程序是对 sequoia_openpgp 的一个非常薄的包装,它接受一个输入密码并生成一个有效的 pgp 证书,该证书具有主 EdDSA Edwards 曲线数字签名算法密钥和 4 个从属密钥

  • 身份验证(EdDSA Edwards 曲线数字签名算法)
  • 加密(ECDH 公钥算法)
  • 加密(RSA 4096)
  • 签名(EdDSA Edwards 曲线数字签名算法)

用途

在本地克隆代码库并按以下方式运行

cargo run -- --username "Alice" --email "[email protected]" --key-sig-time 0 --weeks-subkeys-exp-in 52 --secret "a super-secure secret phrase that's been generated from real entropy"

这将输出您的 ASCII-武装 PGP 证书、撤销签名以及每个密钥的 ID 和 ASCII-武装表示形式。

注意:请确保使用此库的完全相同的版本(以及因此相同的 NETTLE 和 SEQUOIA-OPENPGP 库),否则您可能无法生成相同的密钥。

致谢

非常感谢 Neal Walfield 在 freenode #sequoia 上的所有帮助。

依赖关系

~15–26MB
~318K SLoC