nuovo rilascio del progetto , sviluppando un fork degli strumenti GnuPG (GNU Privacy Guard) con implementazioni per la crittografia dei dati, la gestione delle firme elettroniche, la gestione delle chiavi e l'accesso ai repository pubblici di chiavi.
Le principali differenze di NeoPG includono una notevole pulizia del codice dalle implementazioni di algoritmi obsoleti, il passaggio dal linguaggio C al C++11, la riprogettazione della struttura del codice sorgente per semplificare la manutenzione e l'offerta di un'API estensibile per lo sviluppo di estensioni. Tutto il nuovo codice è sotto la licenza permissiva BSD anziché GPLv3.
Tra i cambiamenti, si evidenzia anche il passaggio a un sistema di build cmake, la sostituzione di Libgcrypt con la libreria , la sostituzione dei parser incorporati e del codice per l'interazione con il database con libcurl e SQLite. In NeoPG è stata interrotta l'esecuzione di processi in background a lungo termine come gpg-agent, dirmngr (Directory Manager) e scdaemon (Smart Card Daemon), sostituiti da handler ausiliari una tantum, che terminano immediatamente dopo l'esecuzione del compito.
La funzionalità principale di NeoPG è implementata sotto forma della libreria libneopg, che può essere utilizzata in applicazioni di terze parti. Sopra libneopg è implementata un'interfaccia a riga di comando, che unisce le utilità sparse di GnuPG (gpg, gpgsm, gpgconf, gpgv, gpgtar, ecc.) in un unico file eseguibile neopg, con un design delle sotto-comandi in stile Git e supporto per l'output a colori. Nell'ambito del comando "neopg gpg2" è implementato uno strato per garantire la compatibilità con GnuPG 2.
Nella nuova versione è stata migliorata la compatibilità con l'utilità gpg2: se gpg2 è un link rigido a neopg, viene automaticamente applicato uno strato per garantire la compatibilità dei comandi con GnuPG 2. È stato aggiunto un nuovo comando "packet dump". È fornito supporto per Ubuntu 18.04. È stata migliorata l'esecuzione degli script di build Cmake. Invece di boost::format è stata utilizzata la libreria fmtlib. È stato aggiunto un parser OpenPGP per i repository delle chiavi.
Fonte: opennet.ru
