3

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 ? Является ли эта дополнительная линия информации полезной для кого-либо или даже необходима где-либо?

1 ответ1

3

Заголовок Version является чисто информативным; Я предполагаю, что он включен, чтобы облегчить обнаружение ошибок совместимости (например, если клиент не может расшифровать 10 сообщений, и все 10 были сделаны одной и той же версией).

Однако сообщение об ошибке вызвано не отсутствием Version , а отсутствием пустой строки, разделяющей заголовки и тело. В соответствии с синтаксисом защищенных сообщений OpenPGP, даже если у вас нулевые заголовки, вам все равно нужен разделитель, чтобы синтаксические анализаторы знали, что hQIMAxfkjOs8... фактически является телом, а не просто странным заголовком.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .