Frigivelse af Botan kryptografisk bibliotek 3.0.0

Botan 3.0.0 kryptografibiblioteket er nu tilgængeligt til brug i NeoPG-projektet, en forgrening af GnuPG 2. Biblioteket tilbyder en stor samling af færdige primitiver, der bruges i TLS-protokollen, X.509-certifikater, AEAD-cifre, TPM-moduler , PKCS#11, hashing af adgangskoder og post-kvantekryptering (hash-baserede signaturer og McEliece-baseret nøgleaftale). Biblioteket er skrevet i C++ og distribueres under BSD-licensen.

Blandt ændringerne i den nye udgivelse:

  • Kodebasen tillader brugen af ​​C++20-standarden (tidligere blev C++11 brugt), og kravene til compilere er derfor blevet øget - mindst GCC 11, Clang 14 eller MSVC 2022 er nu påkrævet til montering. til HP- og Pathscale-kompilere er afbrudt, samt Google NaCL- og IncludeOS-projekter.
  • En stor del af ændringer er blevet foretaget, der krænker bagudkompatibilitet. Mange forældede header-filer er blevet fjernet, for eksempel dem, der er specifikke for visse algoritmer (aes.h, osv.). Implementeringer af funktioner og algoritmer, der tidligere er erklæret forældede, er blevet fjernet (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Da vi genererede entropi til pseudorandom-talgeneratoren, stoppede vi med at bruge /proc og /dev/random. Nogle klasser (for eksempel Data_Store), strukturer og opregninger er blevet fjernet fra API'et. Returnering og brug af nøgne skilte er ophørt, hvor det er muligt.
  • Tilføjet understøttelse af TLS 1.3-protokollen. Support til TLS 1.0, TLS 1.1 og DTLS 1.0 er afbrudt. Understøttelse af DSA-, SRP-, SEED-, AES-128 OCB-, CECPQ1-, DHE_PSK- og Camellia CBC-chifferpakker, anonyme ciphers og SHA-1-hashes er blevet fjernet fra TLS-implementeringen.
  • Tilføjet understøttelse af Kybers post-kvantekryptografialgoritme, som er modstandsdygtig over for brute force på en kvantecomputer.
  • Tilføjet understøttelse af Dilithium post-kvantekryptografialgoritmen til at arbejde med digitale signaturer.
  • Tilføjet understøttelse af hashing i elliptisk kurvepunktsformat ved hjælp af SSWU-teknikken (draft-irtf-cfrg-hash-to-curve).
  • Tilføjet understøttelse af BLAKE2b kryptografiske hash-funktion.
  • En ny programmeringsgrænseflade T::new_object er blevet foreslået, der returnerer en unik_ptr i stedet for en blottet "T*"-markør.
  • Tilføjet nye funktioner og API: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. Tilføjet et stort sæt af nye funktioner til brug i C (C89) kode.
  • Implementeringen af ​​Argon2-algoritmen bruger AVX2-instruktioner.
  • Størrelsen af ​​tabeller i implementeringer af Camellia, ARIA, SEED, DES og Whirlpool algoritmerne er blevet reduceret.
  • En ny implementering af DES/3DES er foreslået, beskyttet mod de fleste klasser af sidekanalangreb, der evaluerer cachens tilstand.
  • SHACAL2-implementeringen er optimeret til systemer baseret på ARMv8- og POWER-arkitekturer.
  • Koden til beregning af paritetsbit, bcrypt/base64-konvertering og bestemmelse af ASN.1-strengtypen er frigjort fra tabelopslag og er nu uafhængig af de data, der behandles (kører i konstant tid)

Kilde: opennet.ru

Tilføj en kommentar