Las diferencias clave de NeoPG son la limpieza significativa del código de implementaciones de algoritmos obsoletos, la transición del lenguaje C a C++11, el procesamiento de la estructura del texto fuente para simplificar el mantenimiento y la provisión de una API extensible para el desarrollo. de complementos. Todo el código nuevo
Entre los cambios, la transición al sistema ensamblador cmake y el reemplazo de Libgcrypt por la biblioteca.
La funcionalidad principal de NeoPG se implementa en forma de biblioteca libneopg, que se puede utilizar en aplicaciones de terceros. Se implementa una interfaz de línea de comandos sobre libneopg, que combina las distintas utilidades incluidas en GnuPG (gpg, gpgsm, gpgconf, gpgv, gpgtar, etc.) en un único archivo ejecutable neopg con subcomandos estilo Git y soporte para salida de color. Se ha implementado una capa dentro del comando "neopg gpg2" para garantizar la compatibilidad con GnuPG 2.
La nueva versión ha mejorado la compatibilidad con la utilidad gpg2: si gpg2 es un enlace físico a neopg, se aplica automáticamente una capa para garantizar la compatibilidad del comando con GnuPG 2. Se ha agregado un nuevo comando de "volcado de paquetes". Se proporciona soporte para Ubuntu 18.04. Rendimiento mejorado de los scripts de compilación de Cmake. En lugar de boost::format, se utiliza la biblioteca fmtlib. Se agregó el analizador OpenPGP para almacenes de claves.
Fuente: opennet.ru