少なくとも受信メールサーバーに暗号化して保存できるように、受信後に電子メールを暗号化するプログラムに取り組んでいます(ただし、プレーンテキストで送信されます)。すでに暗号化されたメールを二重暗号化しないように設計されていますが、まだ署名済みのメールの暗号化に失敗しているようです。
この一連のコマンドをテストしましたが、失敗します。これは基本的にプログラムが行っていることです:
echo "Hello" > blah.txt
gpg --clearsign blah.txt
gpg --encrypt --armor blah.txt.asc
gpg --decrypt blah.txt.asc.asc
通常、最後のコマンドは署名を復号化し、検証します。ただし、代わりに復号化のみを行い、署名の検証には2回目の--validateパスが必要です。これは、PGPサポートが含まれている場合でも、メールクライアントがメールを誤って表示することを意味します。
1
それは私にとって普通の予想される動作のようです。どちらかといえば、プログラムは復号化されたメッセージをスキャンして、ユーザーに提示する前に署名の検証が必要かどうかを判断する必要があります。あなたのプログラムはマトリョーシカのゲームをプレイするものです。それをクリーンアップするのはGnuPGの仕事ではありません。
このプログラムは、電子メールを暗号化解除するのではなく、暗号化するものです。GnuPGを--encryptおよび--clearsignとともに一度に使用すると、-decryptが機能します。ただし、個別に実行した場合は機能しません。ただし、理論的には既に署名されたメッセージを暗号化することは可能です(受信者の電子メールアドレスが署名されていないため、これはしばしば脆弱性と見なされます)。
—
uakf.b