ново издание на проекта , развиваващ форк инструментария GnuPG (GNU Privacy Guard) с реализация на инструменти за шифроване на данни, работа с електронни подписи, управление на ключове и достъп до публични хранилища на ключове.
Ключовите отличия на NeoPG са значителното почистване на кода от реализации на остарели алгоритми, преминаването от C на C++11, преработката на структурата на изходния код за опростяване на поддръжката и предоставянето на разширяем API за разработка на добавки. Целият нов код е под разрешителна лицензия BSD вместо GPLv3.
Сред промените се откроява преминаването към системата за строеж cmake, заменянето на Libgcrypt с библиотеката , замяната на вградените парсери и кода за работа с бази данни с libcurl и SQLite. В NeoPG е преустановено стартиране на дълготрайни фонови процеси gpg-agent, dirmngr (Directory Manager) и scdaemon (Smart Card Daemon), вместо това се изпълняват еднократни помощни обработчици, които приключват веднага след изпълнение на задачата.
Основната функционалност на NeoPG е реализирана под формата на библиотека libneopg, която може да се използва в външни приложения. Върху libneopg е реализиран интерфейс за команден ред, в който са обединени разрознените утилити, включени в GnuPG (gpg, gpgsm, gpgconf, gpgv, gpgtar и т.н.) в единен изпълним файл neopg с оформление на субкоманди в стил Git и поддръжка на цветен изход. В рамките на командата „neopg gpg2“ е реализиран слой за осигуряване на съвместимост с GnuPG 2.
В новата версия е подобрена съвместимостта с утилитата gpg2 – ако gpg2 е твърда връзка към neopg, автоматично се прилага слой за осигуряване на съвместимост на командите с GnuPG 2. Добавена е нова команда „packet dump“. Осигурена е поддръжка на Ubuntu 18.04. Подобрена е работа на сценарии за строеж Cmake. Вместо boost::format е използвана библиотеката fmtlib. Добавен е OpenPGP парсер за хранилища на ключове.
Източник: opennet.ru
