web-dev-qa-db-ja.com

PGPバージョン番号は必要ですか?

ASCIIアーマードGnuPGデータには通常Versionヘッダーがあります。

-----BEGIN PGP MESSAGE-----
Version: GnuPG v2.0.22 (GNU/Linux)

hQIMAxfkjOs8YMF+AQ//e9yWfwKBddUX/1YfghKfF/xJhuirYmAdxhsLaO5Fj0QJ
yYZUQ6mtBH6L9J0hxfvsfLvH0+28jw//HTd4iAvczW99Qo0jH/BYfZLeMeh3B42J
Ws7iS5WUdhgXrT/EkBO2OkEPjuRbolU7p8XnX6tD/bazeI5FViwyfLb1EBffKYXG
...
-----END PGP MESSAGE-----

バージョン行を削除しても、データは正常に復号化されますが、次のエラーメッセージで始まります。

gpg: invalid armor header: hQIMAxfkjOs8YMF+AQ/8CZO9fuB8CImJN7Kl7O0n18Uvk+B9wgCBiS0E2ZIr4sjJ\n

Version文字列が含まれているのはなぜですか?この余分な情報は誰にとっても有益ですか、それともどこでも必要ですか?

3
IQAndreas

Versionヘッダーは純粋に有益です。私の推測では、互換性のバグを発見しやすくするために含まれていると思います(たとえば、クライアントが10個のメッセージを復号化できず、10個すべてが同じバージョンで作成された場合)。

ただし、表示されるエラーメッセージは、Versionがないためではなく、ヘッダーと本文を区切る空の行がないために発生します。 OpenPGP装甲メッセージの構文によると、ヘッダーがゼロの場合でも、パーサーがhQIMAxfkjOs8...が実際には本文であり、単なる奇妙なヘッダーではないことを認識できるように、区切り文字が必要です。

3
user1686