используя python-gnupg v0.3.5 в Windows 7 с Python 2.7 и GPG4Win v2.2.0
test_gnupg.py приводит к 2 ошибкам:
Проверить, работает ли поиск ключей... FAIL
Доктест: gnupg.GPG.recv_keys ... FAIL
В каждом из этих мест существует 2 брелка (защита и публикация в каждом):
в каталоге GPGHome (C:\Program Files (x86)\GNU\GnuPG)
под профилем пользователя (C:\Users\\AppData\Roaming\gnupg)
Если я создаю экземпляр GPG и устанавливаю путь к файлу набора ключей для профиля пользователя pubring.pgp, я получаю результат от GPG.list_keys(). Если я позволю ему использовать каталог gpghome pubring.pgp, я не получу результатов от list_keys(), потому что этот набор ключей пуст.
Итак, учитывая, что я указываю связку ключей профиля пользователя, и у меня есть ключ для использования, вот что происходит:
>>>data = '1234 abcd 56678'
>>>fingerprint = u'<fingerprint>'
>>>enc = gpg.encrypt(data,fingerprint)
>>>enc.data
''
encrypt_file() дает те же результаты, ничего не происходит, никаких ошибок. Я не особенно сообразителен во всем этом, но кажется, что если у меня есть данные и открытый ключ, это должно быть очень просто. У меня ужасное время, пытаясь определить, что не так, учитывая, что я нигде не вижу файлов журнала, и у меня нет ошибок при попытке это сделать.
Как я могу определить, что здесь происходит не так? Я прочитал практически все, что смог найти здесь, на StackOverflow, http://pythonhosted.org/python-gnupg/#getting-started и группу google для python-gnupg.
Кроме того, почему у меня вообще 2 отдельных набора брелоков?
редактировать: уточнено, что есть 2 отдельных набора публикаций и секретов
редактировать 2: ответ ниже сыграл важную роль в возникновении реальной проблемы. конструктор gnupg.GPG() устанавливает параметры командной строки gpg, которые включают «no-tty», вызов gnupg.GPG(options='') решает проблему и успешно шифрует как данные, так и файлы.