Питон Пайм:Простая расшифровка без взаимодействия с пользователем

StackOverflow https://stackoverflow.com/questions/1288959

  •  18-09-2019
  •  | 
  •  

Вопрос

Я использую Pyme для взаимодействия с GPGME, и у меня не было проблем с подписью / шифрованием.Однако, когда я пытаюсь расшифровать, он всегда выдает запрос на ввод ключевой фразы, несмотря на то, что я установил ее через c.set_passphrase_cb обратный звонок.Я делаю что-то не так?

Это было полезно?

Решение

Добавьте "c.set_armor(1)" перед установкой обратного вызова парольной фразы.

Другие советы

У меня похожая проблема.Мой код выглядит примерно так:

def passphrase_callback(подсказка=", desc=", prev_bad="):вернуть 'пароль'

класс Криптоинжиниринг:класс NoSignKeys(Исключение):деф инициализация(self, str):Исключение.инициализация(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()

Несмотря на настройку обратного вызова парольной фразы, я по-прежнему либо получаю окно сообщения с запросом на ввод ключевой фразы , либо просто исключение, уведомляющее о неверном пароле.Решил ли кто-нибудь эту проблему и мог бы поделиться своими знаниями?Спасибо, Ян

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top