Neue Ausgabe des Projekts , das das Fork-Tool GnuPG (GNU Privacy Guard) mit Implementierungen zur Datenverschlüsselung, zur Arbeit mit elektronischen Signaturen, zur Schlüsselverwaltung und zum Zugriff auf öffentliche Schlüsselverzeichnisse entwickelt.
Die Hauptunterschiede von NeoPG umfassen eine erhebliche Bereinigung des Codes durch Entfernen veralteter Algorithmen, den Wechsel von C zu C++11, die Überarbeitung der Struktur des Quelltexts zur Vereinfachung der Wartung sowie die Bereitstellung einer erweiterbaren API für die Entwicklung von Erweiterungen. Der gesamte neue Code steht unter der permissiven BSD-Lizenz anstelle von GPLv3.
Zu den Änderungen gehört auch der Übergang zu dem Build-System cmake, der Austausch von Libgcrypt durch die Bibliothek , der Austausch von eingebetteten Parsern und Datenbank-Code gegen libcurl und SQLite. In NeoPG wurde der Start von langfristig laufenden Hintergrundprozessen gpg-agent, dirmngr (Directory Manager) und scdaemon (Smart Card Daemon) eingestellt, stattdessen werden einmalige Hilfsprogramme ausgeführt, die sofort nach der Ausführung der Aufgabe beendet werden.
Die Hauptfunktionalität von NeoPG wird in Form der Bibliothek libneopg bereitgestellt, die in Drittanbieteranwendungen verwendet werden kann. Über libneopg wird eine Befehlszeilenoberfläche bereitgestellt, in der die in GnuPG verstreuten Dienstprogramme (gpg, gpgsm, gpgconf, gpgv, gpgtar usw.) in eine einzige ausführbare Datei neopg zusammengeführt werden, die eine Subkommandostruktur im Git-Stil und Unterstützung für farbige Ausgaben bietet. Im Rahmen des Befehls „neopg gpg2“ wurde eine Schicht zur Gewährleistung der Kompatibilität mit GnuPG 2 implementiert.
In der neuen Version wurde die Kompatibilität mit dem Dienstprogramm gpg2 verbessert — wenn gpg2 ein harter Link zu neopg ist, wird automatisch eine Schicht zur Gewährleistung der Kompatibilität der Befehle mit GnuPG 2 angewendet. Ein neuer Befehl „packet dump“ wurde hinzugefügt. Unterstützung für Ubuntu 18.04 wurde bereitgestellt. Die Funktionalität der Build-Skripte von Cmake wurde verbessert. Anstelle von boost::format wird die Bibliothek fmtlib verwendet. Ein OpenPGP-Parser für Schlüsselverzeichnisse wurde hinzugefügt.
Quelle: opennet.ru
