Я пытаюсь расшифровать сообщения, используя pyme (оболочку Python из gpgme).Это работает нормально, если я ввожу пароль, когда он запрашивает, но я не могу заставить обратный вызов парольной фразы работать.Вот код
import pyme.core
def Callback( x, y, z ):
print 'in passphrase callback'
return 'passphrase'
plain = pyme.core.Data()
cipher = pyme.core.Data(sys.stdin.read())
c = pyme.core.Context()
c.set_armor(1)
c.set_passphrase_cb(Callback)
c.op_decrypt( cipher, plain )
plain.seek(0,0)
print plain.read()
Когда я запускаю это и не предоставляю пароль в интерактивном режиме, программа затем пытается распечатать обратный вызов «в обратном вызове парольной фразы», но затем завершается ошибкой:
pyme.errors.GPGMEError: Invocation of gpgme_op_decrypt: Unspecified source: General error (0,1)
Прежде всего, почему обратный вызов парольной фразы не работает?А во-вторых, как я могу запретить программе запрашивать у пользователя пароль перед вызовом обратного вызова парольной фразы?
Это работает в Ubuntu 10.04