nueva versión del proyecto , desarrollando un fork de la herramienta GnuPG (GNU Privacy Guard) con implementaciones para el cifrado de datos, trabajo con firmas electrónicas, gestión de claves y acceso a repositorios públicos de claves.
Entre las principales diferencias de NeoPG se encuentra una limpieza significativa del código, la eliminación de implementaciones de algoritmos obsoletos, la migración de C a C++11, la reestructuración del código fuente para simplificar el mantenimiento y la provisión de una API extensible para el desarrollo de extensiones. Todo el nuevo código bajo la licencia permisiva BSD en lugar de GPLv3.
Entre los cambios también se destaca la transición a un sistema de compilación cmake, el reemplazo de Libgcrypt por la biblioteca , el reemplazo de los analizadores integrados y el código para trabajar con bases de datos por libcurl y SQLite. En NeoPG se ha dejado de ejecutar procesos en segundo plano de larga duración como gpg-agent, dirmngr (Gestor de Directorios) y scdaemon (Daemon de Tarjeta Inteligente), en su lugar se ejecutan manejadores auxiliares de un solo uso que se completan inmediatamente después de realizar la tarea.
La funcionalidad principal de NeoPG se implementa en forma de la biblioteca libneopg, que se puede utilizar en aplicaciones de terceros. Sobre libneopg se implementa una interfaz de línea de comandos, en la que se han combinado utilidades dispersas de GnuPG (gpg, gpgsm, gpgconf, gpgv, gpgtar, etc.) en un solo archivo ejecutable neopg con subcomandos al estilo de Git y soporte de salida en color. En el marco del comando “neopg gpg2” se implementa una capa para garantizar la compatibilidad con GnuPG 2.
En esta nueva versión se ha mejorado la compatibilidad con la utilidad gpg2: si gpg2 es un enlace duro a neopg, se aplica automáticamente una capa para garantizar la compatibilidad de los comandos con GnuPG 2. Se ha añadido un nuevo comando “packet dump”. Se ha asegurado el soporte para Ubuntu 18.04. Se ha mejorado el funcionamiento de los scripts de construcción de Cmake. En lugar de boost::format se ha utilizado la biblioteca fmtlib. Se ha añadido un analizador OpenPGP para repositorios de claves.
Fuente: opennet.ru
