¿Cómo puedo saber qué cifrado usó python-gnupg?

5

Estoy cifrando un archivo usando el módulo python-gnupg como este. En última instancia, quiero usar el cifrado AES256 para el cifrado:

status = gpg.encrypt_file(fin, recipients=['root@frarakee'], output='foo.bin.gpg')

Cuando reviso el archivo en la CLI, me dice que es un mensaje PGP :

# file foo.bin.gpg 
foo.bin.gpg: PGP message

Si cifro el archivo usando gpg en la CLI (Ubuntu 14.04), el comando file me dice que sus datos aún gpg muestra que está usando AES256 :

# gpg --verbose -r root@frarakee --cipher-algo AES256 -e foo.bin
gpg: using PGP trust model
gpg: using subkey 1C32653F instead of primary key A7173E08
gpg: This key belongs to us
gpg: reading from 'foo.bin'
File 'foo.bin.gpg' exists. Overwrite? (y/N) y
gpg: writing to 'foo.bin.gpg'
gpg: RSA/AES256 encrypted for: "132653F root@frarakee <root@frarakee>"

# file foo.bin
foo.bin: data

Notablemente, los documentos de python indican:

  

El cipher_algo predeterminado, si no se especifica, es 'AES256'

Pero el comando file solo parece estar de acuerdo con esto cuando usé symmetric encriptación:

# gpg --cipher-algo AES256 -c /tmp/foo.bin
# file /tmp/foo.bin.gpg 
foo.bin.gpg: GPG symmetrically encrypted data (AES256 cipher)

No estoy seguro de si se trata de un error en el file magic, el módulo python-gpg , o simplemente mi entendimiento. ¿Cómo puedo saber qué cifrado está utilizando realmente el módulo gpg o el módulo python-gpg ? ¿Hay un mejor lugar para preguntar esto?

    
pregunta Koko 16.06.2017 - 18:54
fuente

1 respuesta

1

file solo busca algunos bytes mágicos para determinar el tipo de archivo, pero no analiza completamente los paquetes OpenPGP. Puede ver todos los detalles de cifrado ejecutando gpg --list-packets o pgpdump (la salida es más fácil de leer, pero debe instalarse por separado). Leer a través de RFC 4880, OpenPGP puede ayudar a comprender el resultado muy técnico.

    
respondido por el Jens Erat 16.06.2017 - 19:18
fuente

Lea otras preguntas en las etiquetas