Kluczowe różnice w NeoPG to znaczne oczyszczenie kodu z implementacji przestarzałych algorytmów, przejście z języka C na C++ 11, przetwarzanie struktury tekstu źródłowego w celu uproszczenia konserwacji oraz zapewnienie rozszerzalnego API do programowania dodatków. Cały nowy kod
Wśród zmian znalazło się przejście na system asemblera cmake oraz zastąpienie Libgcrypt biblioteką
Podstawowa funkcjonalność NeoPG jest zaimplementowana w postaci biblioteki libneopg, której można używać w aplikacjach innych firm. Interfejs wiersza poleceń jest zaimplementowany na bazie biblioteki libneopg, która łączy różne narzędzia zawarte w GnuPG (gpg, gpgsm, gpgconf, gpgv, gpgtar itp.) w jeden plik wykonywalny neopg z podpoleceniami w stylu Git i obsługą wyjścia w kolorze. W poleceniu „neopg gpg2” zaimplementowano warstwę zapewniającą kompatybilność z GnuPG 2.
W nowej wersji poprawiono kompatybilność z narzędziem gpg2 - jeśli gpg2 jest twardym łączem do neopg, automatycznie stosowana jest warstwa, aby zapewnić zgodność polecenia z GnuPG 2. Dodano nowe polecenie „packet dump”. Zapewniona jest obsługa systemu Ubuntu 18.04. Poprawiona wydajność skryptów kompilacji Cmake. Zamiast boost::format używana jest biblioteka fmtlib. Dodano parser OpenPGP dla magazynów kluczy.
Źródło: opennet.ru