ספריית ההצפנה 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), מבנים וספירות הוסרו מה-API. ההחזרות והשימוש בשלטים חשופים הופסקו במידת האפשר.
- נוספה תמיכה בפרוטוקול 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 לעבודה עם חתימות דיגיטליות.
- נוספה תמיכה ב-hash בפורמט של עקומה אליפטית באמצעות טכניקת SSWU (draft-irtf-cfrg-hash-to-curve).
- נוספה תמיכה בפונקציית הגיבוב ההצפנה BLAKE2b.
- הוצע ממשק תכנות חדש T::new_object שמחזיר את ה-Unique_ptr במקום מצביע "T*" חשוף.
- נוספו פונקציות חדשות וממשק API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_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
