Использование PGP в голанге

Я пытаюсь зашифровать строку с помощью пакета openPGP в golang, но пока безуспешно.

Ничто из того, что я пробовал до сих пор, не сработало, поэтому я ищу любые предложения или исправления.

Единственные требования, которые у меня есть, это то, что он должен принимать открытый/закрытый ключ и строку для расшифровки как строку, а не файлы.

Я попытался использовать примеры из этого поста: http://julianyap.com/2014/07/04/gnu-privacy-guard-gpg-examples-using-golang.html

В частности, этот пример: https://gist.github.com/jyap808/8324818

Но когда я запускаю его из коробки, он говорит следующее при попытке прочитать ключ

openpgp: invalid argument: no armored data found

И я не нашел другого хорошего примера/рабочего пакета.

У меня заканчиваются варианты, так как я изначально пытался сделать это на PHP, но и там ужасно потерпел неудачу. Было бы здорово, если бы кто-нибудь мог предложить некоторые предложения!

заранее спасибо


person user2578535    schedule 12.05.2016    source источник
comment
Насколько я помню, с помощью gpg armor указывает системе использовать специальную форму ключей ASCII. Обновите свой вопрос соответствующим кодом о том, как вы используете доспехи и как вы генерировали ключи (с опцией --armor, верно?).   -  person eduncan911    schedule 12.05.2016
comment
Я использую реальный пример, ничего в нем не меняя. Так что я предполагаю, что это должно сработать, но я попытаюсь сгенерировать ключ, используя опцию брони.   -  person user2578535    schedule 12.05.2016
comment
Итак, я успешно могу генерировать сообщения, используя свой собственный ключ, но я не могу расшифровать их с помощью любого онлайн-сервиса, который я пробовал, это просто не сработает. Я предполагаю, что это потому, что мне нужны определенные заголовки PGP, но я не уверен, что конкретно использовать для этого. Пробовал просто копировать некоторые общие, но это не сработало.   -  person user2578535    schedule 12.05.2016
comment
Используете ли вы открытый ключ для шифрования и закрытый для расшифровки?   -  person Topo    schedule 12.05.2016
comment
lol Я чувствую себя почти атакованным здесь, думая, что я нуб, хотя я понимаю, что это исключает проблемы одну за другой. Да, открытый ключ для шифрования и закрытый ключ для расшифровки, однако возвращаемая строка не имеет заголовков, поэтому я попытался вставить общие, чтобы иметь возможность расшифровать ее, но, увы, безуспешно.   -  person user2578535    schedule 13.05.2016


Ответы (1)


Вот пакет PGP для Golang, который абстрагируется от большинства сложностей и довольно прост в использовании:

https://github.com/jchavannes/go-pgp

Изучите тестовый файл для примера:

https://github.com/jchavannes/go-pgp/blob/master/pgp/encrypt_test.go

person jchavannes    schedule 15.11.2017
comment
Спасибо за ответ, пригодится! Ожидание принятия ответа, пока я не протестирую пакет - person user2578535; 23.11.2017
comment
Прохладно! Недавно я использовал его для чего-то другого, для чего он не работал. Он предполагает множество настроек по умолчанию, которые могут не применяться ко всем ситуациям. Если у вас возникнут проблемы, вы можете немного покопаться в источнике, это довольно тонкая оболочка. - person jchavannes; 25.11.2017