Botan 3.0.0 క్రిప్టోగ్రఫీ లైబ్రరీ ఇప్పుడు NeoPG ప్రాజెక్ట్లో ఉపయోగం కోసం అందుబాటులో ఉంది, GnuPG 2 యొక్క ఫోర్క్. TLS ప్రోటోకాల్, X.509 సర్టిఫికెట్లు, AEAD సైఫర్లు, TPM మాడ్యూల్స్లో ఉపయోగించిన రెడీమేడ్ ప్రిమిటివ్ల యొక్క పెద్ద సేకరణను లైబ్రరీ అందిస్తుంది. , PKCS#11, పాస్వర్డ్ హ్యాషింగ్ మరియు పోస్ట్-క్వాంటం క్రిప్టోగ్రఫీ (హాష్-ఆధారిత సంతకాలు మరియు McEliece-ఆధారిత కీ ఒప్పందం). లైబ్రరీ C++లో వ్రాయబడింది మరియు BSD లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.
కొత్త విడుదలలో మార్పులు:
- కోడ్ బేస్ C++20 ప్రమాణాన్ని ఉపయోగించడానికి అనుమతిస్తుంది (గతంలో C++11 ఉపయోగించబడింది); తదనుగుణంగా, కంపైలర్ల అవసరాలు పెంచబడ్డాయి - అసెంబ్లీకి ఇప్పుడు కనీసం GCC 11, క్లాంగ్ 14 లేదా MSVC 2022 అవసరం. మద్దతు HP మరియు పాత్స్కేల్ కంపైలర్ల కోసం అలాగే Google NaCL మరియు IncludeOS ప్రాజెక్ట్లు నిలిపివేయబడ్డాయి.
- వెనుకబడిన అనుకూలతను ఉల్లంఘించే మార్పులు పెద్ద భాగం చేయబడ్డాయి. చాలా కాలం చెల్లిన హెడర్ ఫైల్లు తీసివేయబడ్డాయి, ఉదాహరణకు, నిర్దిష్ట అల్గారిథమ్లకు సంబంధించినవి (aes.h, మొదలైనవి). మునుపు వాడుకలో లేనివిగా ప్రకటించబడిన విధులు మరియు అల్గారిథమ్ల అమలులు తీసివేయబడ్డాయి (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, టైగర్, NEWHOPE, CECPQ1). సూడోరాండమ్ నంబర్ జనరేటర్ కోసం ఎంట్రోపీని ఉత్పత్తి చేస్తున్నప్పుడు, మేము /proc మరియు /dev/randomని ఉపయోగించడం మానేస్తాము. API నుండి కొన్ని తరగతులు (ఉదాహరణకు, Data_Store), నిర్మాణాలు మరియు గణనలు తీసివేయబడ్డాయి. సాధ్యమైన చోట రిటర్న్లు మరియు బేర్ గుర్తుల వాడకం నిలిపివేయబడింది.
- TLS 1.3 ప్రోటోకాల్కు మద్దతు జోడించబడింది. TLS 1.0, TLS 1.1 మరియు DTLS 1.0కి మద్దతు నిలిపివేయబడింది. TLS అమలు నుండి DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK మరియు కామెల్లియా CBC సైఫర్ సూట్లు, అనామక సాంకేతికలిపిలు మరియు SHA-1 హాష్లకు మద్దతు తీసివేయబడింది.
- కైబర్ పోస్ట్-క్వాంటం క్రిప్టోగ్రఫీ అల్గారిథమ్కు మద్దతు జోడించబడింది, ఇది క్వాంటం కంప్యూటర్లో బ్రూట్ ఫోర్స్కు నిరోధకతను కలిగి ఉంటుంది.
- డిజిటల్ సంతకాలతో పని చేయడానికి డిలిథియం పోస్ట్-క్వాంటం క్రిప్టోగ్రఫీ అల్గారిథమ్కు మద్దతు జోడించబడింది.
- SSWU (draft-irtf-cfrg-hash-to-curve) సాంకేతికతను ఉపయోగించి ఎలిప్టిక్ కర్వ్ పాయింట్ ఫార్మాట్ హ్యాషింగ్కు మద్దతు జోడించబడింది.
- BLAKE2b క్రిప్టోగ్రాఫిక్ హాష్ ఫంక్షన్కు మద్దతు జోడించబడింది.
- ఒక కొత్త ప్రోగ్రామింగ్ ఇంటర్ఫేస్ T::new_object ప్రతిపాదించబడింది అది ఒక ఏకైక_ptrని అందిస్తుంది బేర్ "T*" పాయింటర్కు బదులుగా.
- కొత్త ఫంక్షన్లు మరియు API జోడించబడ్డాయి: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, Symmetric Algorithm::has_keying_material. C (C89) కోడ్లో ఉపయోగించడానికి కొత్త ఫంక్షన్ల యొక్క పెద్ద సెట్ జోడించబడింది.
- Argon2 అల్గోరిథం యొక్క అమలు AVX2 సూచనలను ఉపయోగిస్తుంది.
- Camellia, ARIA, SEED, DES మరియు వర్ల్పూల్ అల్గారిథమ్ల అమలులో టేబుల్ల పరిమాణం తగ్గించబడింది.
- DES/3DES యొక్క కొత్త అమలు ప్రతిపాదించబడింది, కాష్ స్థితిని అంచనా వేసే సైడ్-ఛానల్ దాడుల యొక్క చాలా తరగతుల నుండి రక్షించబడింది.
- SHACAL2 అమలు ARMv8 మరియు POWER ఆర్కిటెక్చర్ల ఆధారంగా సిస్టమ్ల కోసం ఆప్టిమైజ్ చేయబడింది.
- ప్యారిటీ బిట్లను గణించడం, bcrypt/base64 మార్పిడి మరియు ASN.1 స్ట్రింగ్ రకాన్ని నిర్ణయించడం కోసం కోడ్ టేబుల్ లుకప్ల నుండి విముక్తి పొందింది మరియు ఇప్పుడు ప్రాసెస్ చేయబడే డేటా నుండి స్వతంత్రంగా ఉంది (స్థిరమైన సమయంలో నడుస్తుంది)
మూలం: opennet.ru