#openpgp #pgp #command-line-interface #sop #stateless-openpgp

bin+lib sequoia-sop

使用 Sequoia 实现的无状态 OpenPGP 接口。

25 个版本 (重大变更)

0.35.0 2024年7月11日
0.33.0 2024年5月17日
0.32.0 2024年3月20日
0.31.0 2023年10月27日
0.18.0 2020年7月31日

加密学 中排名 1757

GPL-2.0-or-later

79KB
2K SLoC

使用 Sequoia 实现的无状态 OpenPGP 接口。

此实现使用 Sequoia OpenPGP 实现了无状态 OpenPGP 命令行接口(SOP)。此包实现了 Rust SOP 接口,并提供了一个命令行前端。

SOP 实现具有广泛的兼容性,请参阅 OpenPGP 互操作性测试套件

SOP 命令行入门

要构建命令行前端,启用 "cli" 功能,例如使用 cargo build --features=clicargo install sequoia-sop --features=cli.

要构建仅限于 SOP 验证子集 的命令行前端,启用 "cliv" 功能,例如使用 cargo build --features=clivcargo install sequoia-sop --features=cliv.

为了演示 SOP,让我们生成一个密钥,并加密和解密一条消息

$ sqop generate-key [email protected] > julia.secret.pgp
$ sqop extract-cert < julia.secret.pgp > julia.public.pgp

首先,我们为 julia@example.org 生成一个密钥。接下来,我们提取证书,即不带密钥材料的密钥。

$ echo "a message" | sqop encrypt julia.public.pgp > message.pgp
$ sqop decrypt julia.secret.pgp < message.pgp
a message

这里,我们使用 Julia 的证书加密一条消息,并用她的密钥解密它。

选择不同的加密后端

Sequoia PGP 支持许多 不同的加密库。为了使用此包选择一个后端,请禁用默认功能并明确选择一个后端。

要构建时选择替代加密后端(例如 OpenSSL 后端),请执行以下操作

$ cargo build --no-default-features --features cli,sequoia-openpgp/compression,sequoia-openpgp/crypto-openssl

或者从 crates.io 安装它

$ cargo install sequoia-sop --no-default-features --features cli,sequoia-openpgp/compression,sequoia-openpgp/crypto-openssl

要从 Rust 使用它,请依赖 sequoia-openpgp 并选择一个后端,如下所示

[dependencies]
sop = { version = "*", default-features = false }
sequoia-openpgp = { version = "*", default-features = false, features = ["compression", "crypto-openssl"] }

Shell自动补全

默认情况下,shell自动补全会被放置到cargo目标目录中,但具体位置无法预测。要将资产写入可预测的位置,请将环境变量ASSET_OUT_DIR设置为一个合适的位置。

依赖

~12–23MB
~311K SLoC