Se um arquivo é criptografado e assinado em uma única passagem, você também pode descriptografar e verificar em uma única passagem. Nesse caso, a mensagem OpenPGP é construída de pacotes OpenPGP que fornecem a camada de criptografia e, dentro do contêiner de criptografia, a mensagem é assinada:
gpg --recipient [email protected] -o file.gpg --sign --encrypt file
Mas é claro, primeiro é possível assinar uma mensagem (por exemplo, executando gpg --clearsign file
) e criptografar a saída manualmente (observe que gpg
é chamado twize):
gpg --clearsign file | gpg --recipient [email protected] --encrypt -o file.gpg
Nesse caso, o arquivo clearsigned (isso envolve a assinatura e a mensagem em um único arquivo, em vez de fornecer um arquivo de assinatura separado) é criptografado em uma segunda execução e todos os cabeçalhos OpenPGP são repetidos.
Você pode analisar a estrutura de uma mensagem do OpenPGP executando gpg --list-packets <filename>
, que fornece uma descrição muito técnica das mensagens do OpenPGP, incluindo todos os pacotes e cabeçalhos OpenPGP individuais. Ler o RFC 4880, OpenPGP ajudará a entender o resultado.