Я использую 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
, пожалуйста, помогите.