В рамках проекта NeoPG развивается форк GnuPG 2

Материал из Викиновостей, свободного источника новостей

19 января 2018 года

Маркус Бринкман ( Marcus Brinkmann), немецкий математик, известный своим участием в разработке GNU/Hurd, основал форк инструментария GnuPG (GNU Privacy Guard), предоставляющего совместимые со стандартом OpenPGP (RFC-4880) инструменты для шифрования данных, работы с электронными подписями, управления ключами и доступа к публичным хранилищам ключей. Новый проект получил название NeoPG и позиционируется в качестве современной замены 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 и вообще избавиться от необходимости запуска дополнительных процессов.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «В рамках проекта NeoPG развивается форк GnuPG 2», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.