Если файл зашифрован и подписан за один проход, вы также можете расшифровать и проверить его за один проход. В этом случае сообщение OpenPGP состоит из пакетов OpenPGP, которые обеспечивают уровень шифрования, а внутри контейнера шифрования сообщение подписывается:
gpg --recipient alice@example.org -o file.gpg --sign --encrypt file
Но, конечно, можно сначала подписать сообщение (например, запустив gpg --clearsign file
), а затем зашифровать вывод вручную (обратите внимание, что gpg
называется twize):
gpg --clearsign file | gpg --recipient alice@example.org --encrypt -o file.gpg
В этом случае очищенный подписанный файл (в котором подпись и сообщение помещаются в один файл вместо предоставления отдельного файла подписи) зашифровывается при втором запуске, и все заголовки OpenPGP повторяются.
Вы можете проанализировать структуру сообщения OpenPGP, запустив gpg --list-packets <filename>
, который предоставляет очень техническое описание сообщений OpenPGP, включая все отдельные пакеты OpenPGP и заголовки. Чтение RFC 4880, OpenPGP поможет понять вывод.