0

我正在编写软件来检索加密文件,解密它们并定期使用其中包含的信息填充 AWS S3 上的数据湖。这些文件使用 GPG 密钥加密,我们使用pygpgme( https://launchpad.net/pygpgme ) 包进行加密。我在 Mac 上,我安装了 GPG 2.2.16 和pygpgme0.3。

我们用来解密文件的私钥有一个密码。

我尝试了多种在网上找到的技术/建议,包括:

无禁用提示。

这是我用于分配密码回调的代码:

ctx.passphrase_cb = \
        lambda uid_hint, passphrase_info, prev_was_bad, fd: os.write(
            fd, b'{}\\n'.format(EQF_PASSPHRASE)
        )

这是我的gpg.conf

# don't prompt for a password!
batch

# Try to use the GnuPG-Agent. With this option, GnuPG first tries to connect to
# the agent before it asks for a passphrase.
use-agent

尽管如此,每次我运行该服务时,都会在命令行中提示输入密码。如何让软件使用我提供的回调?

4

1 回答 1

0

经过几个小时的修补,我已经使用以下配置使其工作{GNUPGHOME}/gpg.conf

batch
pinentry-mode loopback

我可以passphrase_cb按预期在 Python 代码中使用。

希望这可以帮助!

于 2019-08-05T16:57:52.337 回答