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 コマンドを使用するのが 1 つの解決策ですが、もっと良い方法があるのではないかと思います。

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 に答える