我正在编写软件来检索加密文件,解密它们并定期使用其中包含的信息填充 AWS S3 上的数据湖。这些文件使用 GPG 密钥加密,我们使用pygpgme
( https://launchpad.net/pygpgme ) 包进行加密。我在 Mac 上,我安装了 GPG 2.2.16 和pygpgme
0.3。
我们用来解密文件的私钥有一个密码。
我尝试了多种在网上找到的技术/建议,包括:
- http://www.topdog.za.net/2012/05/23/python-modules-you-should-know:-pygpgme/
- 试图更改
Context().pinentry_mode
参数,这在我的版本中似乎不存在pygpgme
- 尝试将参数添加到
{GNUPGHOME}/gpg.conf
:- 批
- 使用代理
无禁用提示。
这是我用于分配密码回调的代码:
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
尽管如此,每次我运行该服务时,都会在命令行中提示输入密码。如何让软件使用我提供的回调?