gpgコマンドはOpenPGP.jsのAEAD(aead_protect = true)に対する復号に対応してないみたい
どういうことか?
「OpenPGP.js: デフォルトだと復号がストリーミングされない理由と解決策」の最初の解決策として現在ドラフト段階のAEADをOpenPGP.jsで有効にするopenpgp.config.aead_protect = trueをして暗号化したものをgpgコマンドで復号しようとしたが、gpgコマンド側でエラーすることが分かった。
code:エラー内容
gpg: packet(3) with unknown version 5
(23) Failed writing body
AEADのバイナリのフォーマットがドラフトなので思うので、unknown version 5などというエラーメッセージになるのだと思う。
gpgコマンドのバージョン
gpg (GnuPG) 2.2.17
libgcrypt 1.8.5
検証に使ったコード
以下のNippを使って確認した。
Runボタンを押すしてしばらく待つと、以下の出力がNippに出るのでそれをターミナルに打てば良い。
code:Nippの出力
Please do the following.
export GPG_TTY=$(tty)
curl -sS https://ppng.ml/auh97hin | gpg --decrypt
Password: mypassword
$GPG_TTYに関しても説明は「gpgコマンドで暗号化したいデータをパイプで流し込みたいときの設定」。
上記のNipp内のopenpgp.config.aead_protect = true;を消せばgpgコマンドで復号できる。