As principais diferenças do NeoPG são a limpeza significativa do código de implementações de algoritmos desatualizados, a transição da linguagem C para C++11, o processamento da estrutura do texto fonte para simplificar a manutenção e o fornecimento de uma API extensível para o desenvolvimento. de complementos. Todo o novo código
Entre as mudanças, a transição para o sistema assembly cmake e a substituição do Libgcrypt pela biblioteca
A funcionalidade principal do NeoPG é implementada na forma da biblioteca libneopg, que pode ser usada em aplicativos de terceiros. Uma interface de linha de comando é implementada sobre libneopg, que combina os diversos utilitários incluídos no GnuPG (gpg, gpgsm, gpgconf, gpgv, gpgtar, etc.) em um único arquivo executável neopg com subcomandos no estilo Git e suporte para saída colorida. Como parte do comando "neopg gpg2", uma camada foi implementada para garantir a compatibilidade com o GnuPG 2.
A nova versão melhorou a compatibilidade com o utilitário gpg2 - se o gpg2 for um link físico para o neopg, uma camada é aplicada automaticamente para garantir a compatibilidade do comando com o GnuPG 2. Um novo comando "packet dump" foi adicionado. É fornecido suporte para Ubuntu 18.04. Desempenho aprimorado de scripts de construção Cmake. Em vez de boost::format, a biblioteca fmtlib é usada. Adicionado analisador OpenPGP para armazenamentos de chaves.
Fonte: opennet.ru