Python GNUPG - 信任导入的密钥?

Posted

技术标签:

【中文标题】Python GNUPG - 信任导入的密钥?【英文标题】:Python GNUPG - Trust Imported Key? 【发布时间】:2021-08-14 14:15:39 【问题描述】:

与此类似: gnupg: There is no assurance this key belongs to the named user

但我想在 Python 中设置导入密钥对的信任级别。这可能吗?如果有,怎么做?

在尝试使用公钥加密文件后,我收到了以下消息:

"There is no assurance this key belongs to the named user\r\n[GNUPG:] INV_RECP 10 TestUser@Company.Com\r\n[GNUPG:] FAILURE sign-encrypt 53\r\ngpg: [stdin]: sign+encrypt failed: Unusable public key\r\n"

这是在运行以下命令之后:

with open('Test.txt', 'rb') as f:
                status = gpg.encrypt_file(
                    f,sign=public_key_fingerprint,
                    recipients=private_key_recipient,
                    output = output_file
                )

status.status 返回:

'invalid recipient'

编辑:

private_key_recipient = 'TestUser@Company.Com'

【问题讨论】:

我们能看看你是怎么得到private_key_recipient的吗? @DashWinterson - 这实际上是从 GCP 机密 JSON 中获得的。这是一个字符串:'TestUser@Company.Com'。 private_key_recipient 应该是公共 GPG 密钥 iirc @DashWinterson - 我经过:gist.github.com/ryantuck/56c5aaa8f9124422ac964629f4c8deb0 和:saltycrane.com/blog/2011/10/python-gnupg-gpg-example 在这两个文档中,他们都使用了收件人列表,其中只有一个。我尝试将我的单个字符串更改为单个收件人的列表,结果仍然相同。 只看模块似乎有一个trust_keys 方法。这样做是你想要的吗? 【参考方案1】:

看着pydoc gnupg我明白了:

trust_keys(self, fingerprints, trustlevel) 

它没有记录,但听起来像你想要的。

【讨论】:

以上是关于Python GNUPG - 信任导入的密钥?的主要内容,如果未能解决你的问题,请参考以下文章

信任库和密钥库定义

由于 ascii 转换,无法导入 gnupg 密钥?

Spring SAML 握手失败 - 无法针对受信任的密钥验证不受信任的凭据

信任存储与密钥存储 - 使用 keytool 创建

如何使用自签名证书创建密钥库和信任库?

使用签名中包含的密钥正确验证了签名,但该密钥不受信任