¿Es posible usar una clave privada OpenPGP para firmar un archivo a través de OpenSSL?

1

¿Es posible usar una clave privada exportada de OpenPGP para firmar un archivo a través de OpenSSL?

He intentado esto:

$ gpg2 --export-secret-keys --no-armor 84E2C2E5 > secret.key
$ openssl rsautl -sign -in testfile -inkey secret.key -out test.sign

Pero eso me da este error:

  

no se puede cargar la clave privada 140543167485592: error: 0906D06C: PEM   rutinas: PEM_read_bio: no hay línea de inicio: pem_lib.c: 701: Esperando: CUALQUIER   LLAVE PRIVADA

¿Qué estoy haciendo mal?

    
pregunta user1511417 13.11.2017 - 15:27
fuente

2 respuestas

2

Si bien OpenPGP y X.509 comparten en su mayoría los mismos algoritmos criptográficos, tienen representaciones completamente diferentes del material clave. GnuPG (o para ser más específico, gpg ; gpgsm implementa S / MIME y X.509 pero no OpenPGP y también es parte de GnuPG) no "habla" X.509, OpenSSL no admite OpenPGP.

Si bien podría extraer los números que forman las claves y luego construir una nueva clave del otro formato, aún parecerían claves diferentes: debido a los diferentes protocolos, no puede leer los mensajes cifrados en el otro sistema, no puede verificar Firmas emitidas por este. Incluso las claves no son obviamente comparables, los identificadores de claves se construyen de manera diferente y, finalmente, los dos sistemas comparten diferentes sistemas de confianza.

Para finalizar: en teoría, se podría construir una nueva clave (no convertirla realmente, ya que la metainformación se pierde y falta otra información). No hay un uso real para hacerlo, por lo tanto, a nadie le importó escribir las herramientas adecuadas para el proceso.

    
respondido por el Jens Erat 17.11.2017 - 20:42
fuente
0

Debe convertir la clave al formato correcto -

gpg2 --export-secret-keys
     --export-options export-reset-subkey-passwd,export-minimal,no-export-attributes 
     --no-armor 84E2C2E5 | openpgp2ssh 84E2C2E5 > id_rsa

¿Por qué estás tratando de hacer esto? ¿Por qué no solo firmar el documento con gpg?

gpg2 --sign document.doc
    
respondido por el Hector 13.11.2017 - 15:32
fuente

Lea otras preguntas en las etiquetas