Python Pyme: descriptografia simples, sem interação do usuário
Pergunta
Eu estou usando Pyme para interface com gpgme e não tiveram problemas de assinar / criptografar. Quando tento decifrar, no entanto, ele sempre traz o prompt para a senha apesar de ter set-lo através de uma chamada de retorno c.set_passphrase_cb
. Estou fazendo algo errado?
Solução
Adicionar "c.set_armor (1)" antes de definir o callback senha.
Outras dicas
Eu tenho um problema semelhante. Meus olhares código como este:
def passphrase_callback (dica = '', desc = '', prev_bad = ''): retorno 'password'
classe CryptoEngine: NoSignKeys classe (exceção): def init (self, str): Exceção. init (self, str)
def __init__(self, user_id, passphrase):
"Initialize with ID (e-mail)"
self.user_id = user_id
self.passphrase = passphrase
def verify(self, data):
c = core.Context()
sig = core.Data(string = data)
file = None
plain = core.Data()
c.op_verify(sig, file, plain)
result = c.op_verify_result()
plain.seek(0, 0)
plaintext = plain.read()
sig = result.signatures
status = False
for s in sig:
status = (s.status == 0)
return status, plaintext
def sign(self, data):
c = core.Context()
for sigkey in c.op_keylist_all(self.user_id, 1):
if sigkey.can_sign:
c.signers_add(sigkey)
if not c.signers_enum(0):
raise CryptoEngine.NoSignKeys("No secret %s's keys suitable for signing" % self.user_id)
plain = core.Data(data)
sig = core.Data()
c.set_passphrase_cb(passphrase_callback)
c.op_sign(plain, sig, mode.CLEAR)
sig.seek(0, 0)
return sig.read()
Apesar de definir o callback senha Eu ainda quer obter uma caixa de mensagem pedindo a senha ou apenas uma exceção notificando de uma senha incorreta. Será que alguém resolver este problema e poderia compartilhar o seu conhecimento? Obrigado, Yan