J'utilise Pyme pour interfacer avec GPGME et n'ai eu aucun problème à signer/crypter. Lorsque j'essaie de décrypter, cependant, il affiche toujours l'invite pour la phrase secrète, même si elle a été définie via un rappel c.set_passphrase_cb
. Est-ce que je fais quelque chose de mal?Pyme Python: décryptage simple sans interaction de l'utilisateur
0
A
Répondre
0
Ajoutez «c.set_armor (1)» avant de définir le rappel de phrase secrète.
1
J'ai un problème similaire. Mon code ressemble à ceci:
def passphrase_callback (indice = '', desc = '', prev_bad = ''): retour 'password'
classe CryptoEngine: NoSignKeys de classe (Exception): def init (self, str): Exception. initialisation (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()
Malgré le réglage de la fonction de rappel de mot de passe je reste soit obtenir une boîte de message demandant le mot de passe ou juste une notification d'exception d'un mauvais mot de passe. Est-ce que quelqu'un a résolu ce problème et pourrait partager ses connaissances? Merci, Yan
À quoi ressemble votre code? – hughdbrown
Je suis un idiot. Je l'ai fonctionné maintenant. – sberry
ce serait bien si vous pouviez poster votre code de signature de travail: je ne trouve aucun exemple de cela dans la documentation de pyme. – mariotomo