ĂshtĂ« nĂ« dispozitĂ« njĂ« version i bibliotekĂ«s kriptografike Botan 3.0.0, e cila pĂ«rdoret nĂ« projektin NeoPG, njĂ« fork i GnuPG 2. Biblioteka ofron njĂ« koleksion tĂ« madh tĂ« primitiveve tĂ« gatshme qĂ« pĂ«rdoren nĂ« protokollin TLS, nĂ« certifikatat X.509, nĂ« algoritmet AEAD, nĂ« modulat TPM, PKCS#11, nĂ« hashimin e fjalĂ«kalimeve dhe nĂ« kriptografinĂ« post-kvante (nĂ«nshkrime bazuar nĂ« hash dhe negociata çelĂ«sish tĂ« bazuara nĂ« McEliece). Biblioteka Ă«shtĂ« shkruar nĂ« gjuhĂ«n C++ dhe ofrohet nĂ«n licencĂ«n BSD.
Ndryshimet në publikimin e ri përfshijnë:
- NĂ« bazĂ«n e kodit Ă«shtĂ« lejuar pĂ«rdorimi i standardit C++20 (mĂ« parĂ« Ă«shtĂ« pĂ«rdorur C++11), pĂ«rkatĂ«sisht, kĂ«rkesat pĂ«r kompilatorĂ«t janĂ« rritur - tani pĂ«r ndĂ«rtimin Ă«shtĂ« e nevojshme tĂ« ketĂ« sĂ« paku GCC 11, Clang 14 ose MSVC 2022. ĂshtĂ« ndĂ«rprerĂ« mbĂ«shtetja pĂ«r kompilerĂ«t HP dhe Pathscale, si dhe pĂ«r projektet Google NaCL dhe IncludeOS.
- Janë implementuar shumë ndryshime që dëmtojnë përputhshmërinë prapa. Janë përjashtuar shumë skedarë të vjetër, siç janë ato specifike për disa algoritme (aes.h etj.). Janë përjashtuar implementimet e funksioneve dhe algoritmeve që ishin shpallur më parë të vjetra (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Gjatë formimit të entropisë për gjeneratorin e numrave të rastit e bëhet ndalimi i përdorimit të /proc dhe /dev/random. Janë përjashtuar disa klasë (p.sh., Data_Store), struktura dhe enumeracione nga API. Sa më shumë që është e mundur, është ndaluar kthimi dhe përdorimi i treguesve të pastër.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r protokollin TLS 1.3. ĂshtĂ« ndalur mbĂ«shtetje pĂ«r TLS 1.0, TLS 1.1 dhe DTLS 1.0. JanĂ« hequr nga implementimi i TLS mbĂ«shtetje pĂ«r grupet e çelĂ«sve DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK dhe Camellia CBC, enkriptim anonim, hash SHA-1.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r algoritmin e kriptografisĂ« post-kvantike Kyber, i qĂ«ndrueshĂ«m ndaj sulmeve nga kompjuterĂ«t kuantikĂ«.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r algoritmin e kriptografisĂ« post-kvantike Dilithium pĂ«r punĂ«n me nĂ«nshkrime digjitale.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r hashing nĂ« formĂ«n e pikĂ«s mbi kurbĂ«n eliptike, duke pĂ«rdorur teknikĂ«n SSWU (draft-irtf-cfrg-hash-to-curve).
- Shtuar mbështetje për funksionin hash kriptografik BLAKE2b.
- ĂshtĂ« propozuar njĂ« ndĂ«rfaqe e re programuese T::new_object, e cila kthen unique_ptr nĂ« vend tĂ« njĂ« treguesi tĂ« pastĂ«r "T*".
- Shtuar funksione dhe API të reja: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. Shtuar një grup të madh funksionesh për përdorim në kodin në gjuhën C (C89).
- Implementimi i algoritmit Argon2 përdor instrukcione AVX2.
- Reduktuar madhësia e tabllave në implementimet e algoritmeve Camellia, ARIA, SEED, DES dhe Whirlpool.
- Propozohet një implementim i ri i DES/3DES, i mbrojtur nga shumicë klasash sulmesh përmes kanaleve të jashtme, që vlerësojnë gjendjen e caches.
- Implementimi i SHACAL2 është optimizuar për sisteme të bazuara në arkitekturat ARMv8 dhe POWER.
- Kodi për llogaritjen e bitëve të paritetit, transformimin bcrypt/base64 dhe përcaktimin e llojit të vargut ASN.1 është liruar nga kërkimi në tabela dhe tani nuk varet nga të dhënat e përpunuara (kryhet në kohë të konstantë).
Burimi: opennet.ru
