Botan ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžืขืœื“ื•ื ื’ 3.0.0

ื“ื™ Botan 3.0.0 ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ืื™ืฆื˜ ื‘ื ื™ืžืฆื ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ ื“ื™ NeoPG ืคึผืจื•ื™ืขืงื˜, ืึท ื’ืึธืคึผืœ ืคื•ืŸ GnuPG 2. ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื’ื™ื˜ ืึท ื’ืจื•ื™ืก ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืคืึทืจื˜ื™ืง ืคึผืจื™ืžื™ื˜ื™ื•ื•ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ 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 ืคึผืจืึทื“ื–ืฉืขืงืก.
  • ื ื’ืจื•ื™ืก ื˜ื™ื™ืœ ืคื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ื•ื•ืึธืก ืึธื ืจื™ืจืŸ ืฆื•ืจื™ืง ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™. ืคื™ืœืข ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ื›ืขื“ืขืจ ื˜ืขืงืขืก ื–ืขื ืขืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืกืคึผืขืฆื™ืคื™ืฉ ืฆื• ื–ื™ื›ืขืจ ืึทืœื’ืขืจื™ื“ืึทืžื– (ืึทืขืก.ื”, ืืื–"ื• ื•). ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทื ื– ืคื•ืŸ ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ืึทืœื’ืขืจื™ื“ืึทืžื– ื‘ื™ื– ืึทื”ืขืจ ื“ืขืจืงืœืขืจื˜ ืคืึทืจืขืœื˜ืขืจื˜ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). ื•ื•ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืขื ื˜ืจืึธืคึผื™ ืคึฟืึทืจ ื“ื™ ืคึผืกืขื•ื“ืึธืจืึทื ื“ืึธื ื ื•ืžืขืจ ื’ืขื ืขืจืึทื˜ืึธืจ, ืžื™ืจ ืคืืจืฉื˜ืืคื˜ ื ื™ืฆืŸ /proc ืื•ืŸ /dev/random. ืขื˜ืœืขื›ืข ืงืœืืกืŸ (ืœืžืฉืœ, Data_Store), ืกื˜ืจืึทืงื˜ืฉืขืจื– ืื•ืŸ ื™ื ื•ืžืขืจื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคื•ืŸ ื“ื™ ืึทืคึผื™. ืจืขื˜ื•ืจื ืก ืื•ืŸ ื ื•ืฆืŸ ืคื•ืŸ ื ืึทืงืขื˜ ื•ื•ืื•ื ื“ืขืจ ื–ืขื ืขืŸ ืกื˜ืึทืคึผื˜ ื•ื•ื• ืžืขื’ืœืขืš.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ 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.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืงื™ื‘ืขืจ ืคึผืึธืกื˜-ืงื•ื•ืึทื ื˜ื•ื ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ ืึทืœื’ืขืจื™ื“ืึทื, ื•ื•ืึธืก ืื™ื– ืงืขื’ื ืฉื˜ืขืœื™ืง ืฆื• ื‘ืจื•ื˜ ืงืจืึทืคื˜ ืื•ื™ืฃ ืึท ืงื•ื•ืึทื ื˜ื•ื ืงืึธืžืคึผื™ื•ื˜ืขืจ.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ื“ื™ืœื™ื˜ื”ื™ื•ื ืคึผืึธืกื˜-ืงื•ื•ืึทื ื˜ื•ื ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ ืึทืœื’ืขืจื™ื“ืึทื ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ื’ื™ื˜ืึทืœ ืกื™ื’ื ืึทื˜ืฉืขืจื–.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ืœื™ืคึผื˜ื™ืง ื•ื™ืกื‘ื™ื™ื’ ืคื•ื ื˜ ืคึฟืึธืจืžืึทื˜ ื›ืึทืฉื™ื ื’ ืžื™ื˜ ื“ื™ SSWU (draft-irtf-cfrg-hash-to-curve) ื˜ืขื›ื ื™ืง.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ BLAKE2b ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ื”ืึทืฉ ืคื•ื ืงืฆื™ืข.
  • ื ื ื™ื™ึทืข ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฆื•ื‘ื™ื ื“ T :: ื ื™ื™ึท_ืึธื‘ื“ื–ืฉืขืงื˜ ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ื•ื•ืึธืก ืงืขืจื˜ ืึท ื™ื™ื ืฆื™ืง_ืคึผื˜ืจ ืึธื ืฉื˜ืึธื˜ ืึท ื ืึทืงืขื˜ "ื˜ *" ื˜ื™ื™ึทื˜ืœ.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ืึทืคึผื™: X509_DN :: DER_encode, Public_Key :: get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm :: has_keying_material. ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื’ืจื•ื™ืก ื’ืึทื ื’ ืคื•ืŸ ื ื™ื™ึทืข ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ C (C89) ืงืึธื“.
  • ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ Argon2 ืึทืœื’ืขืจื™ื“ืึทื ื ื™ืฆื˜ AVX2 ื™ื ืกื˜ืจืึทืงืฉืึทื ื–.
  • ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื˜ื™ืฉืŸ ืื™ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืึทืžืขืœืœื™ืึท, ARIA, SEED, DES ืื•ืŸ ื•ื•ื”ื™ืจืœืคึผืึธืึธืœ ืึทืœื’ืขืจื™ื“ืึทืžื– ืื™ื– ืจื™ื“ื•ืกื˜.
  • ื ื ื™ื™ึทืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ DES/3DES ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜, ืคึผืจืึธื˜ืขืงื˜ืขื“ ืงืขื’ืŸ ืจื•ื‘ึฟ ืงืœืืกืŸ ืคื•ืŸ ื–ื™ื™ึทื˜-ืงืึทื ืึทืœ ืื ืคืืœืŸ ื•ื•ืึธืก ืึธืคึผืฉืึทืฆืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืงืึทืฉ.
  • ื“ื™ SHACAL2 ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ืึธืคึผื˜ื™ืžื™ื–ืขื“ ืคึฟืึทืจ ืกื™ืกื˜ืขืžืขืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ARMv8 ืื•ืŸ POWER ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–.
  • ื“ืขืจ ืงืึธื“ ืคึฟืึทืจ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ืคึผืึทืจื™ื˜ืขื˜ ื‘ื™ื˜ืŸ, bcrypt/base64 ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืื•ืŸ ื“ื™ื˜ืขืจืžืึทื ื™ื ื’ ื“ื™ ASN.1 ืฉื˜ืจื™ืงืœ ื˜ื™ืคึผ ืื™ื– ื‘ืืคืจื™ื™ื˜ ืคื•ืŸ ื˜ื™ืฉ ืœื•ืงืึทืคึผืก ืื•ืŸ ืื™ื– ืื™ืฆื˜ ืคืจื™ื™ึท ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื˜ (ืœื•ื™ืคื˜ ืื™ืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืฆื™ื™ื˜)

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’