#go #pgp #openpgp
#Вперед #pgp #openpgp
Вопрос:
Я просматривал документацию для openpgp
пакета Go, и я думаю, что я, должно быть, упускаю некоторые очевидные моменты. Например, есть ReadKeyRing
функция, но ее нет WriteKeyRing
. С другой стороны, я могу Serialize
Entity
использовать an , но у меня нет возможности прочитать его обратно. Что здесь происходит? Кто-нибудь действительно использует этот пакет?
Комментарии:
1. Camlistore (camlistore.org ) является основным пользователем (и мотивацией) этого пакета.
Ответ №1:
Объект представляет общедоступную закрытую информацию о ключе GPG. ReadKeyRing
Функция позволяет считывать список ключей GPG.
Сущность.В документации по сериализации функций указано:
Serialize записывает общедоступную часть данного объекта в w. (Материал закрытого ключа выводиться не будет).
Поскольку это только общедоступная часть объекта, вы можете создать новый объект с сериализованными данными в качестве открытого ключа.
A WriteKeyRing
действительно не существует. Он будет проходить по списку объектов и извлекать открытые ключи в массив.
Комментарии:
1. Все, что вы сказали, есть в документации, но я все еще не понимаю, как использовать пакет. Например, скажем, мне нужна программа, которая при передаче одного флага создаст пару ключей и запишет ее в файл; при передаче другого флага она должна прочитать эту пару ключей и использовать ее для подписи чего-либо. Как я могу сделать это только с
ReadKeyRing
помощью andSerialize(Private)
?2. Вы не можете создавать пары ключей с помощью пакета GPG Gos в его нынешнем виде. Вы можете использовать только уже существующие ключи.
3. Вы уверены? Как насчет golang.org/pkg/crypto/openpgp/#Entity . newEntity ?
Ответ №2:
Я также довольно много боролся с этим — в конце концов, я просто узнал это на примере:
- Пример шифрования и дешифрования: https://gist.github.com/jyap808/8250124
- Пример расшифровки: https://gist.github.com/jyap808/8250067
Идея, стоящая за этим, не предназначена для пользователя, но, похоже, сильно отличается от фактического способа технической реализации pgp.
Я бы предложил генерировать ключи не через пакет, а просто с помощью инструмента командной строки pgp.