В 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 выводит сжатые сообщения.