我正在使用pygpgme生成密钥,工作正常,但我必须像这样提供密码到gpgme:
key_params = dedent("""
<GnupgKeyParms format="internal">
Key-Type: RSA
Key-Length: 2048
Name-Real: Jim Joe
Passphrase: secret passphrase
Expire-Date: 0
</GnupgKeyParms>
""")
ctx = gpgme.Context()
result = ctx.genkey(key_params)
出于安全原因,我宁愿永远不知道密码短语,让gpg-agent为用户提供一个对话框。
当我使用pygpgme进行解密或使用gpg命令行工具生成密钥时,密码对话框会按预期弹出。
一种解决方案是将gpg命令与子进程一起使用,但我想知道是否有更好的命令。
答案 0 :(得分:2)
终于明白了。该请求需要'%ask-passphrase'控制语句。
key_params = dedent("""
<GnupgKeyParms format="internal">
%%ask-passphrase
Key-Type: RSA
Key-Length: 2048
Name-Real: Jim Joe
Expire-Date: 0
</GnupgKeyParms>
""")