Hola a todos
Tengo una clase para cifrar un string con gnupg la clase funciona bien con mi propia key pero cuando
importo otra key e intento cifrar una mensaje con esa key la clase falla, el error es el siguiente
Código Python:
Ver originalgpg: B7BB02D9: No hay seguridad de que esta clave pertenezca realmente
al usuario que se nombra
[GNUPG:] INV_RECP 10 user@dominio.com
gpg: [stdin]: encryption failed: Unusable public key
La clase que utilizo es la siguiente
Código Python:
Ver originalclass EncryptedString():
def __init__(self,homegpg,user,set_result):
self.homegpg = homegpg
self.user = user
self.set_result = set_result
def encrypt_string(self,input_string):
#Encrypt a string
self.input_string = input_string
gpg = gnupg.GPG(gnupghome = self.homegpg)
unencrypted_string = self.input_string
encrypted_data = gpg.encrypt(unencrypted_string, self.user)
encrypted_string = str(encrypted_data)
ok = encrypted_data.ok
status = encrypted_data.status
stderr = encrypted_data.stderr
result = [ok,status,stderr,unencrypted_string,encrypted_string]
return result[self.set_result]
# instantiate
if __name__ == "__main__":
print "Is not shown if import"
homegpg = '../home/gpg/'
input_string = 'string en texto plano'
set_result = 2
encryptstring = EncryptedString(homegpg,user,set_result)
print encryptstring.encrypt_string(input_string)
print " enjoy "
Buscando en google encontré que hay que firmar la clave importada con mi propia clave para que funcione correctamente,
pero no se como hacer eso.
La forma que uso para importar la calve es la siguiente
Código Python:
Ver originalclass ImportKey():
def __init__(self,homegpg,keyfile):
self.homegpg=homegpg
self.keyfile=keyfile
def import_key(self):
#Import keys
gpg = gnupg.GPG(gnupghome=self.homegpg)
key_data = open(self.keyfile).read()
import_result = gpg.import_keys(key_data)
pprint(import_result.results)
# instantiate
if __name__ == "__main__":
print "Is not shown if import"
homegpg='../home/gpg'
keyfile='../home/gpg/publickeyfile.asc'
importkey=ImportKey(homegpg,keyfile)
importkey.import_key()
print " enjoy "
Pese a haber leído la documentación[0] no me entero como firmar la clave importada. ¿ alguien tiene idea de como resolver esto ?
python 2.7
[0]
http://packages.python.org/python-gnupg/
Gracias por leerme y si faltan datos pregunten