مكتبة التشفير Botan 3.0.0 التي يستخدمها مشروع NeoPG ، وهي شوكة لـ GnuPG 2 ، متاحة الآن. توفر المكتبة مجموعة كبيرة من العناصر الأولية الجاهزة المستخدمة في بروتوكول TLS ، وشهادات X.509 ، و AEAD الأصفار ووحدات TPM و PKCS # 11 وتجزئة كلمة المرور والتشفير اللاحق الكمي (التوقيعات القائمة على التجزئة واتفاقية المفتاح المستندة إلى McEliece). المكتبة مكتوبة بلغة C ++ ومرخصة بموجب ترخيص BSD.
من بين التغييرات في الإصدار الجديد:
- يُسمح لقاعدة الشفرة باستخدام معيار C ++ 20 (تم استخدام C ++ 11 سابقًا) ، على التوالي ، تمت زيادة متطلبات المجمعين - على الأقل GCC 11 أو Clang 14 أو MSVC 2022 مطلوبة الآن للتجميع. تم إيقاف برامج التحويل البرمجي لـ HP و Pathscale ، بالإضافة إلى مشاريع Google NaCL و IncludeOS.
- تم إجراء جزء كبير من التغييرات التي تنتهك التوافق مع الإصدارات السابقة. تمت إزالة العديد من ملفات الرؤوس القديمة ، مثل تلك الخاصة بخوارزميات معينة (aes.h ، إلخ). تمت إزالة تطبيقات الوظائف والخوارزميات التي تم إهمالها سابقًا (CAST-256 و MISTY1 و Kasumi و DESX و XTEA و PBKDF1 و MCEIES و CBC-MAC و Tiger و NEWHOPE و CECPQ1). عند إنشاء إنتروبيا لمولد الأرقام العشوائية الزائفة ، تم إيقاف استخدام / proc و / dev / random. تمت إزالة بعض الفئات (على سبيل المثال ، Data_Store) والهياكل والتعدادات من واجهة برمجة التطبيقات. تم إيقاف عمليات الإرجاع واستخدام المؤشرات المجردة كلما أمكن ذلك.
- دعم إضافي لبروتوكول TLS 1.3. تم إسقاط دعم TLS 1.0 و TLS 1.1 و DTLS 1.0. تمت إزالة دعم مجموعات التشفير DSA و SRP و SEED و AES-128 OCB و CECPQ1 و DHE_PSK و Camellia CBC والأصفار المجهولة وتجزئة SHA-1 من تنفيذ TLS.
- دعم إضافي لخوارزمية التشفير اللاحق للكم من Kyber ، والتي تقاوم التحديد على الكمبيوتر الكمومي.
- دعم إضافي لخوارزمية Dilithium post-Quantum cryptography للعمل مع التوقيعات الرقمية.
- دعم إضافي لتجزئة منحنى نقطة على إهليلجي باستخدام تقنية SSWU (مسودة irtf-cfrg-hash-to-curve).
- دعم إضافي لوظيفة تجزئة التشفير BLAKE2b.
- تم اقتراح واجهة برمجة تطبيقات جديدة T :: new_object بإرجاع unique_ptr بدلاً من المؤشر العاري "T *".
- تمت إضافة وظائف وواجهات برمجة تطبيقات جديدة: X509_DN :: DER_encode ، Public_Key :: get_int_field ، perfect_granularity ، يتطلب_entire_message ، SymmetricAlgorithm :: has_keying_material. تمت إضافة مجموعة كبيرة من الوظائف الجديدة للاستخدام في كود C (C89).
- يستخدم تنفيذ خوارزمية Argon2 تعليمات AVX2.
- حجم طاولة مخفض في تطبيقات Camellia و ARIA و SEED و DES و Whirlpool.
- تم اقتراح تطبيق جديد لـ DES / 3DES محمي ضد معظم فئات هجمات القناة الجانبية التي تقيم حالة ذاكرة التخزين المؤقت.
- تم تحسين تنفيذ SHACAL2 للأنظمة القائمة على معماريات ARMv8 و POWER.
- رمز حساب بتات التكافؤ وتحويل bcrypt / base64 وتحديد نوع سلسلة ASN.1 خالية من عمليات البحث في الجدول وهي الآن مستقلة عن البيانات التي تتم معالجتها (يتم تنفيذ وقت ثابت)
المصدر: opennet.ru