NeoPG

0
Ваша оценка: Нет

NeoPG - это форк инструментария GnuPG (GNU Privacy Guard), предоставляющего совместимые со стандартом OpenPGP (RFC-4880) инструменты для шифрования данных, работы с электронными подписями, управления ключами и доступа к публичным хранилищам ключей.

Новый проект создан немецким математиком Маркусом Бринкманом (Marcus Brinkmann), известным своим участием в разработке GNU/Hurd, и позиционируется в качестве современной замены GnuPG 2.

GnuPG критикуется как излишне раздутый проект: 490 тысяч строк кода на языке Си, около 400 опций, два парсера OpenPGP, свой HTTP-клиент и DNS-резолвер. Привязка к стандарту OpenPGP тянет за собой необходимость поддержки многих устаревших алгоритмов, потерявших актуальность в современных условиях (MD5, IDEA, DSA, 3DES, SHA-1, 64-разрядные ключи). Первичной задачей NeoPG называется проведение чистки кода и его адаптации для упрощения дальнейшей разработки, в том числе предоставление расширяемого стабильного API для разработчиков приложений.

Для достижения поставленной цели было решено удалить всю неактуальную функциональность, а для исключения некоторых видов ошибок и упрощения дальнейшей разработки перевести кодовую базу с языка Cи на C++11. Для упрощения интеграции с другими проектами весь новый код поставляется под разрешительной лицензией BSD вместо GPLv3. Предложен новый интерфейс командной строки, в котором произведено объединение входящих в GnuPG разрозненных утилит (gpg, gpgsm, gpgconf, gpgv, gpgtar и т.п.) в единый исполняемый файл neopg с оформлением субкоманд в стиле Git и поддержкой цветного вывода. В рамках команды "neopg gpg2" реализована прослойка для обеспечения совместимости с GnuPG 2.

За три месяца разработки NeoPG удалено 240 тысяч строк кода, добавлено около двух тысяч строк, прекращена поддержка 120 опций командной строки, осуществлён переход на систему сборки cmake. Вместо собственной реализации криптографических функций (Libgcrypt), задействована библиотека Botan, написанная на C++11 и поставляемая под лицензией BSD. Часть встроенных возможностей заменена на libcurl и SQLite. Вся базовая функциональность выделена в отдельную библиотеку libneopg, которую можно использовать в приложениях. Поверх libneopg реализована обвязка с CLI-интерфейсом.

В NeoPG также решено отказаться от запуска длительно работающих фоновых процессов gpg-agent, dirmngr (Directory Manager) и scdaemon (Smart Card Daemon). Вместо фоновых процессов обеспечен запуск одноразовых вспомогательных helper-процессов, которые завершают работу сразу после выполнения задания. В будущем планируется интегрировать функциональность данных helper-процессов в библиотеку libneopg и вообще избавиться от необходимости запуска дополнительных процессов.

Сайт разработчика: https://neopg.io/
Что почитать?


Разместил: vikos 21 Январь 2018 в 11:19


Здесь
Одноразовая посуда, бокалы, рюмки, тарелки, миски, столовые приборы
salda.ru