2

В RFC 4880 есть раздел 11.3, в котором указаны различные форматы, которые может иметь блок сообщений OpenPGP:

11.3.  OpenPGP Messages

   An OpenPGP message is a packet or sequence of packets that
   corresponds to the following grammatical rules (comma represents
   sequential composition, and vertical bar separates alternatives):

   OpenPGP Message :- Encrypted Message | Signed Message |
                      Compressed Message | Literal Message.

   Compressed Message :- Compressed Data Packet.

   Literal Message :- Literal Data Packet.

   ESK :- Public-Key Encrypted Session Key Packet |
          Symmetric-Key Encrypted Session Key Packet.

   ESK Sequence :- ESK | ESK Sequence, ESK.

   Encrypted Data :- Symmetrically Encrypted Data Packet |
         Symmetrically Encrypted Integrity Protected Data Packet

   Encrypted Message :- Encrypted Data | ESK Sequence, Encrypted Data.

   One-Pass Signed Message :- One-Pass Signature Packet,
               OpenPGP Message, Corresponding Signature Packet.

   Signed Message :- Signature Packet, OpenPGP Message |
               One-Pass Signed Message.

   In addition, decrypting a Symmetrically Encrypted Data packet or a
   Symmetrically Encrypted Integrity Protected Data packet as well as
   decompressing a Compressed Data packet must yield a valid OpenPGP
   Message.

Есть ли способ с помощью аргументов командной строки для создания Signed Message с использованием GPG? Обратите внимание, что Signed Message не относится к типу, показанному в XKCD. Это Cleartext Signature , описанная в разделе 7 RFC. Бронированное Signed Message будет иметь заголовок -----BEGIN PGP MESSAGE----- .

Самое близкое, что я могу получить, это использовать gpg -s , который генерирует сжатый пакет данных, который инкапсулирует однопроходный пакет подписи, буквенный пакет данных, пакет подписи. Однако я не верю, что он должен быть сжат, поэтому кажется, что либо GPG сжимает, когда не следует, либо GPG выводит сжатые сообщения.

1 ответ1

2

GnuPG сжимает (по крайней мере, простой текст) сообщения по умолчанию. Если вы не хотите, чтобы он сжимал сообщения, установите уровень сжатия на 0, используя опцию --compress-level 0 . От man gpg:

--compress-level n

[...] A value of 0 for n disables compression.

Использование -s вместе с уровнем сжатия 0 приведет к выводу несжатого подписанного сообщения, фактически однопроходного подписанного сообщения.

Сжатие сообщения - ожидаемое поведение. RFC 4880, глава 2.3 гласит:

компрессия

Реализации OpenPGP ДОЛЖНЫ сжимать сообщение после применения подписи, но перед шифрованием. [...]

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