En version av det kryptografiska biblioteket Botan 3.0.0, som anvÀnds i projektet NeoPG, en förgrening av GnuPG 2, Àr nu tillgÀnglig. Biblioteket erbjuder en stor samling av fÀrdiga primitiva som anvÀnds i TLS-protokollet, X.509-certifikat, AEAD-krypteringar, TPM-moduler, PKCS#11, hashning av lösenord och postkvantkryptografi (hash-baserade signaturer och nyckelutbyte baserat pÄ McEliece). Biblioteket Àr skrivet i C++ och distribueras under BSD-licens.
Bland förÀndringarna i den nya versionen:
- Det Ă€r nu tillĂ„tet att anvĂ€nda C++20-standarden i kodbasen (tidigare anvĂ€ndes C++11), vilket stĂ€ller högre krav pĂ„ kompilatorerna â för att bygga krĂ€vs minst GCC 11, Clang 14 eller MSVC 2022. Stöd för kompilatorerna HP och Pathscale, samt projekten Google NaCL och IncludeOS har upphört.
- Ett stort antal Àndringar som bryter bakÄtkompatibiliteten har införts. MÄnga förÄldrade header-filer har tagits bort, till exempel som Àr specifika för vissa algoritmer (aes.h, etc.). Implementationer av funktioner och algoritmer som tidigare har förklarats som förÄldrade har avlÀgsnats (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). AnvÀndningen av /proc och /dev/random för entropigenerering har upphört. Vissa klasser (t.ex. Data_Store), strukturer och upprÀkningar har tagits bort frÄn API:t. à terlÀmningen och anvÀndningen av rÄpekare har i möjligaste mÄn upphört.
- Stöd för TLS 1.3-protokollet har lagts till. Stöd för TLS 1.0, TLS 1.1 och DTLS 1.0 har upphört. Stöd för DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK och Camellia CBC-krypteringsuppsÀttningar, anonyma krypteringar och SHA-1-hashar har tagits bort frÄn TLS-implementationen.
- Stöd för den postkvantkryptografiska algoritmen Kyber, som Àr motstÄndskraftig mot kvantdatorattacker, har lagts till.
- Stöd för den postkvantkryptografiska algoritmen Dilithium för hantering av digitala signaturer har lagts till.
- Stöd för hashning i punktformat pÄ elliptiska kurvor, som anvÀnder SSWU-tekniken (draft-irtf-cfrg-hash-to-curve), har lagts till.
- Stöd för den kryptografiska hash-funktionen BLAKE2b har lagts till.
- Ett nytt programmeringsgrÀnssnitt T::new_object, som returnerar unique_ptr i stÀllet för den rÄa pekaren "T*", har föreslagits.
- Nya funktioner och API:er har lagts till: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. En stor uppsÀttning nya funktioner för anvÀndning i C-kod (C89) har lagts till.
- Inom implementationen av Argon2-algoritmen har AVX2-instruktioner anvÀnts.
- Minskad storlek pÄ tabellerna i implementeringarna av algoritmerna Camellia, ARIA, SEED, DES och Whirlpool.
- En ny implementation av DES/3DES har föreslagits, skyddad mot de flesta klasser av attacker via sidokanaler som utvÀrderar cachetillstÄnd.
- Implementeringen av SHACAL2 Àr optimerad för system baserade pÄ ARMv8- och POWER-arkitekturer.
- Koden för berÀkning av paritetsbitar, bcrypt/base64-konvertering och identifiering av ASN.1-strÀngtyp har tagits bort frÄn tabellsökning och beror nu inte pÄ de behandlade uppgifterna (utförs pÄ konstant tid).
KĂ€lla: opennet.ru
