Как мне использовать пакет openpgp от Go?

#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 помощью and Serialize(Private) ?

2. Вы не можете создавать пары ключей с помощью пакета GPG Gos в его нынешнем виде. Вы можете использовать только уже существующие ключи.

3. Вы уверены? Как насчет golang.org/pkg/crypto/openpgp/#Entity . newEntity ?

Ответ №2:

Я также довольно много боролся с этим — в конце концов, я просто узнал это на примере:

Идея, стоящая за этим, не предназначена для пользователя, но, похоже, сильно отличается от фактического способа технической реализации pgp.

Я бы предложил генерировать ключи не через пакет, а просто с помощью инструмента командной строки pgp.