Я могу импортировать ключ в Python с помощью оболочки gnupg CLI python-gnupg и знать, что его ответ закодирован в base64.< /p>
Код: Выделить всё
import base64
import gnupg
key_id = "..."
gpg = gnupg.GPG()
public_key = "".join(gpg.export_keys(key_id).split("\n")[2:11])
public_key = base64.b64decode(public_key)
Код: Выделить всё
import nacl
nacl.signing.VerifyKey(public_key)
- Какую обработку мне нужно выполнить, чтобы получить только открытый ключ? Я немного поигрался с gpg -a --export ... | gpg --list-packets, но я не понимаю его вывода.
Код: Выделить всё
data, passphrase = ...
signature = gpg.sign(data, keyid=key_id, passphrase=passphrase, detach=True).data
base64.b64decode(signature)
- Это чистая подпись без дополнительных метаданных?
Подробнее здесь: https://stackoverflow.com/questions/787 ... ith-pynacl