私は 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 つの解決策ですが、もっと良い方法があるのではないかと思います。