Я пытаюсь импортировать ключ publi c, предоставленный мне в python, но по какой-то причине в коде всегда написано "нет отпечатка пальца" для этого ключа. Я смог использовать тот же код для импорта другого ключа publi c gpg. Единственное отличие состоит в том, что тот, который я смог импортировать, выглядит нормально при открытии в текстовом файле
-----BEGIN PGP MESSAGE-----
hQIMA4KP8a3P3lh+ARAArIKl7NQQ2nwLrbScEXB4YwHK8PaBU/zvcO4flo9XHfhj
...
-----END PGP MESSAGE-----
, тогда как другой выглядит как набор перемешанных символов. фрагмент перемешанного файла
Вот код python, который я использую для импорта
import boto3
import os
import gnupg
from pprint import pprint
gpg = gnupg.GPG()
#commented out part where i pull file from s3 to /tmp/Public_key.txt
public_keys = gpg.list_keys()
private_keys = gpg.list_keys(True)
print ('public keys:')
pprint(public_keys)
print ('private keys:')
pprint(private_keys)
# import
key_data = open('/tmp/Public_Key.txt').read()
import_result = gpg.import_keys(key_data)
for k in import_result.results:
print("printing import results public key")
print(k)
То, что я пробовал: чтение файла в двоичном виде вместо этого, который также не работал
with open('/tmp/Public_Key.txt', mode='rb') as file: # b is important -> binary
key_data = file.read()
Еще одна вещь, которую нужно отметить, ключ может быть легко импортирован, когда я использую CLI из моего терминала, используя
gpg --import Public_Key.txt
Так же, потому что мне нужно сначала преобразовать его в строку, которая все испортила?
Результат попытки импорта в python равен
{'fingerprint': None, 'status': 'No valid data found'}