Estoy usando el siguiente comando para cifrar una cadena en un archivo, pero siempre falla y muestra el mensaje de error "gpg --encrypt necesita entrada".
gpg.exe --batch --passphrase-fd 0 --armor --sign --recipient [email protected] --homedir "c:\gnupg" --encrypt 1 > "test.gpg"
¿Algunas ideas?
Respuesta1
GnuPG siempre espera información de un archivo o de STDIN. Para pasar una cadena a STDIN, úsela ECHO
en sistemas Windows o echo
en sistemas Unix y canalícela a gpg
:
ECHO 1 | gpg [other options] --encrypt
echo 1 | gpg [other options] --encrypt
Como ya espera la frase de contraseña del descriptor de archivo 0 (que es STDIN), tendrá que hacerlo
- proporcionar cualquier frase de contraseña y datos para firmar desde otra ubicación
- canalización en ambas cadenas separadas por un carácter de nueva línea, lo cual es fácil con
sh
/bash
en sistemas Unix (echo -e "passphrase\ndata" | gpg --sign --encrypt
), perorequiere una solución bastante hacky en Windows(No estoy muy familiarizado con el símbolo del sistema de Windows, pero probablemente tendrás que elegir una de las soluciones con un soloECHO
comando).