2012-02-13 25 views
5

Estoy escribiendo una aplicación en la que sincronizo un archivo en un servidor donde quiero firmar el archivo y luego lo envío al cliente donde se puede verificar.¿Cómo firmar un archivo y luego verificarlo?

Parece que hay múltiples módulos de GnuPG para Python para Ubuntu/Debian:

python-gnupginterface - interfaz Python a GnuPG (GPG)

python-gpgme - envoltura pitón para la biblioteca GPGME

python-gpgme-dbg - envoltura pitón para la biblioteca GPGME (extensión de depuración)

pitón-pyme - interfaz Python a la biblioteca de cifrado GPGME GnuPG

python-pyme-doc - Interfaz de Python con la biblioteca de cifrado GnuPG de GPGME

¿Alguien me puede recomendar cuál debo usar para ponerme en funcionamiento rápidamente?

¿Debo pagarle a gpg en lugar de usar un módulo de Python?

Gracias!

Respuesta

1

Puede utilizar http://code.google.com/p/python-gnupg/

Se envuelve línea de comandos GnuPG. Lo uso para encriptar/firmar y descifrar/verificar archivos.

+0

Lo vi, pero parece que ese paquete no está disponible en Ubuntu. Mis opciones son: pitón-gnupginterface - interfaz de Python para GnuPG (GPG) pitón-gpgme - envoltorio de Python para la GPGME biblioteca pitón-gpgme-dbg - envoltorio de Python para la biblioteca GPGME (extensión de depuración) pitón-pyme - Interfaz de Python con la biblioteca de cifrado GnuPG de GPGME python-pyme-doc - Interfaz de Python con la biblioteca de cifrado GPGME GnuPG –

+0

@JonoBacon ¿Ha considerado realizar una instalación fácil o algo por el estilo? – jrg

+1

Oh, lo instalé simplemente descargando, desinstalando y 'python setup.py install' :-) –

2

Use python-gpgme (como beneficio adicional, probablemente conozca el mantenedor).

He aquí cómo se puede utilizar para firmar algo (consulte con jamesh si hay una mejor manera, no he utilizar este extensivamente):

import gpgme 
from io import BytesIO 

ctx = gpgme.Context() 
plain = BytesIO("Hello") 
sign = BytesIO("") 

ctx.sign(plain, sign, gpgme.SIG_MODE_CLEAR) 
print sign.getvalue() 

en caso de que no está claro, BytesIO es un archivo- como una cosa Puede darle file("/etc/passwd") como simple y sys.stdout como signo y DWYW.

+0

FYI Encontré el código original de' python-gpgme' clonado [de launchpad en github] (https://github.com/rshk/pygpgme) por [Samuele Santi] (https://github.com/rshk) con el propósito de agregar cadenas de documentos y otros lujos para los programadores. – ankostis

Cuestiones relacionadas