Ich benutze Pyme für die Schnittstelle mit GPGME und hatte keine Probleme beim Signieren/Verschlüsseln. Wenn ich versuche, zu entschlüsseln, wird jedoch immer die Eingabeaufforderung für die Passphrase angezeigt, obwohl sie über einen c.set_passphrase_cb
Callback festgelegt wurde. Mache ich etwas falsch?Python Pyme: Einfache Entschlüsselung ohne Benutzerinteraktion
0
A
Antwort
0
Fügen Sie "c.set_armor (1)" hinzu, bevor Sie den Passphrase-Rückruf festlegen.
1
Ich habe ein ähnliches Problem. Mein Code sieht wie folgt aus:
def passphrase_callback (Tip = '', desc = '', prev_bad = ''): return 'Passwort'
Klasse CryptoEngine-: Klasse NoSignKeys (Exception): def init (selbst, str): Ausnahme. 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()
Trotz des Passwortes Rückruf Einstellung entweder ich noch ein Meldungsfeld fragt nach dem Passwort oder nur eine Ausnahme anmelde ein schlechtes Passwort. Hat jemand dieses Problem gelöst und könnte sein Wissen teilen? Danke, Yan
Wie sieht Ihr Code aus? – hughdbrown
Ich bin ein Idiot. Ich habe es jetzt funktioniert. – sberry
wäre es schön, wenn Sie Ihren funktionierenden Signaturcode posten könnten: Ich kann in der pyme-Dokumentation kein Beispiel dafür finden. – mariotomo