Eu acho que você está usando o programa errado; pgpsm
é usado para assinar, verificar, criptografar ou descriptografar usando o protocolo S / MIME .
Eu não tenho pgp4win
disponível, mas de acordo com a página de manual , isso deve exportar sua chave pública e secreta:
gpg -o XXXXXXX_private.p12 --export [key id] --export-format pkcs12 --cert
A informação sobre pkcs12
é a seguinte,
pkcs12
Only binary blocks are output; the default file extension is .p12; a signed key must be paired; and input must match exactly one key. In this case, --cert is required.
então incluí a opção --cert
, sem refletir sobre essa opção:
--cert
This option is the X.509 issuer long name or the 32-bit or 64-bit key ID, if the signing key is available.
Eu fiz mais alguns testes (agora com gpg4win), e parcialmente tenho que me contradizer. A ferramenta gpgsm
em gpg4win descreve a si mesma como
gpgsm is a tool similar to gpg to provide digital encryption and sign- ing services on X.509 certificates and the CMS protocol. It is mainly used as a backend for S/MIME mail processing.
que, de fato, parece correto.
Então, seu comando postado na pergunta parece totalmente sensato, eu só tenho mais duas dicas:
- Você pode tentar usar uma saída blindada ASCII por meio da opção
-a
- E há uma opção referente ao conjunto de caracteres da chave exportada, que geralmente é um problema com programas do Windows (especialmente antigos):
--p12-charset name
gpgsm uses the UTF-8 encoding when encoding passphrases for PKCS#12 files. This option may be used to force the passphrase to be encoded in the specified encoding name. This is useful if the application used to import the key uses a different encoding and thus will not be able to import a file generated by gpgsm. Commonly used values for name are Latin1 and CP850. Note that gpgsm itself automagically imports any file with a passphrase encoded to the most commonly used encodings.