3

我正在使用 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 命令与子进程一起使用,但我想知道是否有更好的解决方案。

4

1 回答 1

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>
""")
于 2013-08-06T17:35:38.570 回答