Estoy usando gpg
para cifrar y descifrar un archivo. Aquí están los pasos que estoy haciendo tomando referencia de esta pregunta :
# Sender
gpg --encrypt --recipient [email protected] --output confidential.pgp confidential.txt
gpg -–sign –-local-user [email protected] --output signed.pgp confidential.pgp
# Recipient
gpg --decrypt –output confidential.pgp signed.pgp
gpg --decrypt –output confidential.txt confidential.gpg
Funciona, pero ¿es esta la forma correcta de cifrar, firmar y descifrar un archivo si la verificación de la firma debe ser obligatoria al final del destinatario? Especialmente, descifrar dos veces parece un poco extraño. ¿Se puede hacer esto en un comando sencillo ?
Intenté usar --sign
directamente en el comando de cifrado, pero solo advierte y descifra el archivo que no cumple con el requisito de firma obligatorio . Aquí está el manual oficial , pero no habla de hacer todo en un solo paso.
# Sender
gpg -–sign –-local-user [email protected] --encrypt --recipient [email protected] --output signed.pgp confidential.txt
# Recipient
gpg --decrypt –output confidential.txt signed.pgp
Actualización 1
Después de algunas investigaciones, encontré un pregunta que parece indicar que gnupg --sign --encrypt
primero firma y luego encrypts
un documento. Así que tendremos que decrypt
it primero de todos modos para ver el documento. Opcionalmente, puede generar el estado usando --status-fd
, que puede usarse para verificar si la firma está bien usando un script simple. Entonces el código se vería así:
# Sender
gpg -–sign –-local-user [email protected] --encrypt --recipient [email protected] --output signed.pgp confidential.txt
# Recipient
gpg --decrypt --status-fd –output confidential.txt signed.pgp | verify
donde verify
es un script de shell que comprueba los registros de estado y cancela si es necesario.