ความแตกต่างที่สำคัญของ 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