Ошибка шифрования файла gnupg ENCRYPTION_COMPLIANCE_MODE - PullRequest
0 голосов
/ 30 января 2020

Я использую Python 3.7.6, gnupg 2.3.1, я пытался зашифровать файл, но не смог, вот мой код:

gpg = gnupg.GPG()
key_data=open("/path-to-public-key", "rb").read()
import_result=gpg.import_keys(key_data)
pprint(import_result.results)

with open("/my_data_00000.dat", "rb") as f:
  gpg.encrypt(f, <finger print from import_result.results>, output="/my_data_00000.dat.gpg")

не удалось: ValueError: Неизвестное сообщение о состоянии : 'ENCRYPTION_COMPLIANCE_MODE'

одна вещь, которую я запутался, это ключ, если я запустил этот код:

gpg = gnupg.GPG()
key_data=open("/path-to-public-key", "rb").read()
import_result=gpg.import_keys(key_data)
pprint(import_result.results)

он показал результат как:

[{'fingerprint': 'finger-print-1',
  'status': 'Not actually changed\n'},
 {'status': 'key considered'}]

если я запустил этот код:

pubkeys = gpg.list_keys()
print("pubkeys: ")
pprint(pubkeys)

он показал результат как:

pubkeys: 
[{'algo': '1',
  'date': '1523494796',
  'dummy': '',
  'expires': '',
  'fingerprint': 'finger-print-2',
  'keyid': '38MOQQBD63C93BE4',
  'length': '2048',
  'ownertrust': '-',
  'rev': {},
  'sigs': {'filetrans <test@test.com>': []},
  'subkeys': [['xxx', 'e'], ['xxxxx', 'es']],
  'trust': '-',
  'type': 'pub',
  'uids': ['filetrans <test@test.com>']}]

Я заметил, что finger-print-1 и finger-print-2 разные, какой из них мне следует использовать зашифровать файл?

если я запускаю напрямую из командной строки с тем же ключом publi c, то он успешно шифруется:

gpg --output /my_data_00000.dat.gpg --encrypt --recipient <test@test.com> /my_data_00000.dat

, пожалуйста, помогите.

1 Ответ

0 голосов
/ 08 мая 2020

Рассматривали ли вы вместо этого python-gnupg? Я столкнулся с той же проблемой. Я удалил gnupg и установил python-gnupg. Это, похоже, помогло мне.

...