Die wesentlichen Unterschiede von NeoPG sind die deutliche Bereinigung des Codes von Implementierungen veralteter Algorithmen, der Übergang von der C-Sprache zu C++11, die Verarbeitung der Quelltextstruktur zur Vereinfachung der Wartung und die Bereitstellung einer erweiterbaren API für die Entwicklung von Add-ons. Völlig neuer Code
Zu den Änderungen zählen der Übergang zum cmake-Assemblersystem und der Ersatz von Libgcrypt durch die Bibliothek
Die Kernfunktionalität von NeoPG ist in Form der libneopg-Bibliothek implementiert, die in Anwendungen von Drittanbietern verwendet werden kann. Auf libneopg ist eine Befehlszeilenschnittstelle implementiert, die die verschiedenen in GnuPG enthaltenen Dienstprogramme (gpg, gpgsm, gpgconf, gpgv, gpgtar usw.) in einer einzigen ausführbaren neopg-Datei mit Unterbefehlen im Git-Stil und Unterstützung für die Farbausgabe kombiniert. Um die Kompatibilität mit GnuPG 2 sicherzustellen, wurde im Befehl „neopg gpg2“ eine Ebene implementiert.
Die neue Version hat die Kompatibilität mit dem gpg2-Dienstprogramm verbessert – wenn gpg2 eine feste Verbindung zu neopg ist, wird automatisch eine Ebene angewendet, um die Befehlskompatibilität mit GnuPG 2 sicherzustellen. Ein neuer „Packet Dump“-Befehl wurde hinzugefügt. Unterstützung für Ubuntu 18.04 wird bereitgestellt. Verbesserte Leistung von Cmake-Build-Skripten. Anstelle von boost::format wird die Bibliothek fmtlib verwendet. OpenPGP-Parser für Keystores hinzugefügt.
Source: opennet.ru