Οι βασικές διαφορές του NeoPG είναι η σημαντική εκκαθάριση του κώδικα από υλοποιήσεις απαρχαιωμένων αλγορίθμων, η μετάβαση από τη γλώσσα C στη C++11, η επεξεργασία της δομής κειμένου προέλευσης για απλοποίηση της συντήρησης και η παροχή ενός επεκτάσιμου API για την ανάπτυξη των πρόσθετων. Όλος ο νέος κωδικός
Μεταξύ των αλλαγών, η μετάβαση στο σύστημα συναρμολόγησης cmake και η αντικατάσταση του Libgcrypt με τη βιβλιοθήκη
Η βασική λειτουργικότητα του 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