Come posso sapere quale codice è stato utilizzato da python-gnupg?

5

Sto crittografando un file usando il modulo python-gnupg come questo. In definitiva, voglio usare il cifrario AES256 per la crittografia:

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

Quando controllo il file sulla CLI, mi dice che è un messaggio PGP :

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

Se crittografo il file utilizzando gpg sulla CLI (Ubuntu 14.04), il comando file mi dice che i suoi dati eppure gpg mostra che sta 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

In particolare, lo stato python doc :

The default cipher_algo, if unspecified, is 'AES256'

Ma il comando file sembra essere d'accordo con questo quando ho usato symmetric encryption:

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

Non sono sicuro che si tratti di un bug nella magia file , del modulo python-gpg o solo della mia comprensione. Come posso sapere quale codice viene effettivamente utilizzato da gpg o dal modulo python-gpg ? C'è un posto migliore per chiederlo?

    
posta Koko 16.06.2017 - 18:54
fonte

1 risposta

1

file cerca solo alcuni byte magici per determinare il tipo di file, ma non analizza completamente i pacchetti OpenPGP. Puoi visualizzare tutti i dettagli della crittografia eseguendo gpg --list-packets o pgpdump (l'output è più facile da leggere, ma deve essere installato separatamente). La lettura di RFC 4880, OpenPGP potrebbe aiutare a comprendere l'output molto tecnico.

    
risposta data 16.06.2017 - 19:18
fonte

Leggi altre domande sui tag