Je k dispozícii vydanie kryptografickej knižnice Botan 3.0.0, používané v projekte NeoPG, forku GnuPG 2. Knižnica poskytuje rozsiahlu kolekciu pripravených primitív, používaných v protokole TLS, certifikátoch X.509, šifrách AEAD, moduloch TPM, PKCS#11, hašovaní hesiel a postkvantovej kryptografii (podpisy založené na hašovaní a akordovanie kľúčov na báze McEliece). Knižnica je napísaná v jazyku C++ a je licencovaná pod licenciou BSD.
Medzi zmenami v novom vydaní:
- V kódovej báze je povolené použitie štandardu C++20 (predtým sa používal C++11), a preto sa zvýšili požiadavky na kompilátory — na zostavenie je teraz potrebný aspoň GCC 11, Clang 14 alebo MSVC 2022. Podpora kompilátorov HP a Pathscale, ako aj projektov Google NaCL a IncludeOS bola ukončená.
- Došlo k veľkej porcii zmien, ktoré narušujú spätnú kompatibilitu. Odstránené boli mnohé zastarané hlavičkové súbory, napríklad špecifické pre určité algoritmy (aes.h atď.). Odstránené sú implementácie funkcií a algoritmov, ktoré boli predtým vyhlásené za zastarané (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Pri vytváraní entropie pre generátor pseudonáhodných čísel sa prestalo používať /proc a /dev/random. Z API boli odstránené niektoré triedy (napríklad Data_Store), štruktúry a enumy. Ak je to možné, bola obmedzená návratnosť a používanie holých ukazovateľov.
- Pridaná podpora protokolu TLS 1.3. Podpora TLS 1.0, TLS 1.1 a DTLS 1.0 bola ukončená. Z implementácie TLS bola odstránená podpora súborov šifrov DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK a Camellia CBC, anonymných šifier a hašov SHA-1.
- Pridaná podpora algoritmu postkvantovej kryptografie Kyber, odolného voči útokom na kvantových počítačoch.
- Pridaná podpora algoritmu postkvantovej kryptografie Dilithium pre prácu s digitálnymi podpismi.
- Pridaná podpora hašovania v formáte bodu na eliptickej krivke, využívajúca techniku SSWU (draft-irtf-cfrg-hash-to-curve).
- Pridaná podpora kryptografickej hašovacej funkcie BLAKE2b.
- Návrhnutý nový programový rozhranie T::new_object, ktoré vracia unique_ptr namiesto holého ukazovateľa 'T*'.
- Pridané nové funkcie a API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. Pridaná veľká sada nových funkcií na použitie v kóde v jazyku C (C89).
- V implementácii algoritmu Argon2 sú využívané inštrukcie AVX2.
- Zmenšená veľkosť tabuliek v implementáciách algoritmov Camellia, ARIA, SEED, DES a Whirlpool.
- Navrhnutá nová implementácia DES/3DES, chránená pred väčšinou tried útokov cez stranové kanály, hodnotiacich stav cache.
- Implementácia SHACAL2 je optimalizovaná pre systémy založené na architektúrach ARMv8 a POWER.
- Kód na výpočet parity bitov, transformáciu bcrypt/base64 a určenie typu reťazca ASN.1 bol zbavený vyhľadávania v tabuľkách a teraz nezávisí od spracovávaných údajov (vykonáva sa v konštantnom čase).
Zdroj: opennet.ru
