Obtener información de un archivo de clave pública gpg blindado

21

Cuando se le da un archivo con una clave GnuPG pública blindada, es decir, un archivo ( pubkey.gpg) que se creó con:

gpg -r 0xDEADBEEF --export --armored > pubkey.gpg

¿Cuál es la mejor manera de obtener información, como la huella digital en ese archivo, sin importarla en mi llavero?

La mejor manera que encontré hasta ahora (y no estoy contento con esto) es:

gpg --dry-run --import pubkey.gpg

Naturalmente, agarré la página de manual de gpg, pero no encontré una solución obvia.

Chen Levy
fuente

Respuestas:

7

No sé si gpg tiene una opción para esto, pero aquí hay una solución más flexible para extraer información del archivo de clave:

mkdir temp-gnupg-dir
export GNUPGHOME=temp-gnupg-dir
gpg --import pubkey.gpg
gpg --list-keys
rm -r temp-gnupg-dir

En lugar de la GNUPGHOMEvariable de entorno, puede pasar --homedir=temp-gnupg-dira cada invocación gpg.

Gilles 'SO- deja de ser malvado'
fuente
Esto no es bonito, pero es útil saber qué opciones no están disponibles, y esta es una solución. Así que te agradezco por eso.
Chen Levy
1
Si bien esto funcionará, es mucho más complicado de lo necesario. A continuación publiqué cómo hacerlo sin ninguna importación o cambio de llavero.
jm3
17

Para imprimir la huella digital de una clave blindada en el disco sin importarla, solo use --with-fingerprint:

> gpg --with-fingerprint jm3.asc

pub  1024R/9112BC51 1996-02-05 john manoogian <jm3@*>
Key fingerprint = C9 DC 27 29 0E 1A DB 50  21 C8 64 08 15 29 41 86

uid                            john manoogian <jm3@foo...
uid                            john manoogian <jm3@bar...
uid                            john manoogian <jm3@baz...
uid                            john manoogian <jm3@qux...

Voilà!

jm3
fuente
Esto creará un directorio gnupg y un llavero predeterminado si no existe ninguno. La respuesta aceptada no tiene ese efecto secundario.
Etan Reisner
--with-fingerprintes opcional .
x-yuri
1
Esto ya no funciona. Mi versión gpg es 2.2.5.
Dan Milon
5

Puede consultar el visualizador de paquetes PGP de Kazu Yamamoto que muestra el formato de paquete de OpenPGP (RFC 4880) y PGP versión 2 (RFC 1991).

Para buscar y compilar:

git clone http://github.com/kazu-yamamoto/pgpdump
cd pgpdump
./configure --prefix=/usr/local/ && make && sudo make install

Usarlo es aún más simple:

pgpdump pubkey.gpg

También hay una interfaz cgi-bin disponible en este sitio: http://www.pgpdump.net/cgi-bin/pgpdump

Claudio Floreani
fuente
1
¡Esto es asombroso! Y felicitaciones a un compañero Haskeller Kazu :) Por cierto, pgpdump está empaquetado por Debian (y posiblemente otras distribuciones también), así que verifíquelo en los repositorios antes de compilarlo usted mismo.
Roman Cheplyaka
3
Hay una similar a pgpdump pero no esa salida detallada degpg --list-packets
JSmith