Botan Cryptographic Library Release 3.0.0

Botan 3.0.0 криптографийн номын санг GnuPG 2-ын салаа NeoPG төсөлд ашиглах боломжтой боллоо. Номын сан нь 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-ийн квантын дараах криптографийн алгоритмын дэмжлэгийг нэмсэн.
  • Дижитал гарын үсэгтэй ажиллахад зориулсан квантын дараах криптографийн алгоритмын дэмжлэгийг нэмсэн.
  • SSWU (draft-irtf-cfrg-hash-to-curve) техникийг ашиглан эллипс муруй цэгийн форматыг хэшлэх дэмжлэг нэмэгдсэн.
  • BLAKE2b криптограф хэш функцийн дэмжлэгийг нэмсэн.
  • Өвөрмөц_ptr-г буцаадаг T::new_object програмчлалын шинэ интерфейсийг санал болгосон нүцгэн "T*" заагчийн оронд.
  • Шинэ функцууд болон API нэмэгдсэн: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, шаардлагатай_бүхэлдээ, SymmetricAlgorithm::has_keying_material. C (C89) кодонд ашиглах олон тооны шинэ функцийг нэмсэн.
  • Argon2 алгоритмыг хэрэгжүүлэхэд AVX2 зааврыг ашигладаг.
  • Camellia, ARIA, SEED, DES, Whirlpool алгоритмуудын хэрэгжилтийн хүснэгтийн хэмжээг багасгасан.
  • Кэшийн төлөвийг үнэлдэг ихэнх төрлийн хажуугийн сувгийн халдлагаас хамгаалагдсан DES/3DES-ийн шинэ хувилбарыг санал болгож байна.
  • SHACAL2 хэрэгжүүлэлт нь ARMv8 болон POWER архитектурт суурилсан системүүдэд оновчтой болсон.
  • Паритет битийг тооцоолох, bcrypt/base64 хувиргах, ASN.1 мөрийн төрлийг тодорхойлох код нь хүснэгтийн хайлтаас чөлөөлөгдөж, боловсруулагдаж буй өгөгдлөөс хамааралгүй болсон (тогтмол хугацаанд ажилладаг)

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх