Как выполнить симметричное шифрование с помощью gpgme в python?

Я пытаюсь реализовать симметричное шифрование, используя оболочку python для gpgme, pygpgme. К сожалению, я использую gpg 2.0.22 и gpg-agent 2.0.22. В В этом сообщении списка рассылки говорится, что обратный вызов парольной фразы игнорируется в версии 2.0 , это проблема, с которой я сталкиваюсь.

Когда я запускаю следующий код, я всегда получаю сообщение об ошибке «Неверная фраза-пароль», но меня даже не запрашивают. В идеале, хотя я хотел бы иметь возможность указать парольную фразу от имени пользователя:

import gpgme

def passphrase_cb(uid_hint, passphrase_info, prev_was_bad, fd):
    print "Entered passphrase_cb"
    print "uid_hint=%s passphrase_info=%s" % (uid_hint, passphrase_info)

def main():
    ctx = gpgme.Context()
    ctx.armor = False
    ctx.passphrase_cb = passphrase_cb
    ctx.set_engine_info(gpgme.PROTOCOL_OpenPGP, "/usr/local/bin/gpg",
                        "/Users/me/Library/Application Support/temp/test")

    input_path = "/tmp/input.pdf"
    enc_output_path = "/tmp/output.pdf.gpg"

    with open(input_path, 'rb') as input:
        with open(enc_output_path, 'wb') as enc_output:
            res = ctx.encrypt(None,
                              gpgme.ENCRYPT_ALWAYS_TRUST,
                              input,
                              enc_output)

passphrase_cb никогда не вызывается.

Как указать парольную фразу, чтобы выполнить симметричное шифрование?


person jbrown    schedule 23.06.2014    source источник


Ответы (1)


Ну это не так важно. Я просто раскошелюсь на двоичный файл gpg для симметричного шифрования. Я нашел это ответ полезный.

person jbrown    schedule 23.06.2014