GnuPG 2 యొక్క ఫోర్క్ అయిన NeoPG ప్రాజెక్ట్లో ఉపయోగించే క్రిప్టోగ్రాఫిక్ లైబ్రరీ అయిన Botan 3.0.0 ఇప్పుడు అందుబాటులో ఉంది. ఈ లైబ్రరీ 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లకు మద్దతు నిలిపివేయబడింది. TLS ఇంప్లిమెంటేషన్ నుండి DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK, మరియు Camellia CBC సైఫర్ సూట్లు, అనామస్ సైఫర్లు, మరియు SHA-1 హాష్లకు మద్దతు తొలగించబడింది.
- క్వాంటం కంప్యూటర్పై జరిగే బ్రూట్-ఫోర్స్ దాడులను తట్టుకోగల కైబర్ పోస్ట్-క్వాంటం క్రిప్టోగ్రఫీ అల్గోరిథంకు మద్దతు జోడించబడింది.
- డిజిటల్ సంతకాలతో పనిచేయడానికి డైలిథియం పోస్ట్-క్వాంటం క్రిప్టోగ్రఫీ అల్గోరిథంకు మద్దతు జోడించబడింది.
- SSWU టెక్నిక్ (draft-irtf-cfrg-hash-to-curve) ఉపయోగించి ఎలిప్టిక్ కర్వ్ పాయింట్ హ్యాషింగ్ కోసం మద్దతు జోడించబడింది.
- BLAKE2b క్రిప్టోగ్రాఫిక్ హాష్ ఫంక్షన్కు మద్దతు జోడించబడింది.
- unique_ptrను తిరిగి ఇచ్చే T::new_object అనే కొత్త API ప్రతిపాదించబడింది. కేవలం "T*" సూచికకు బదులుగా.
- కొత్త ఫంక్షన్లు మరియు APIలు జోడించబడ్డాయి: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, requires_entire_message, SymmetricAlgorithm::has_keying_material. C89 కోడ్లో ఉపయోగం కోసం పెద్ద సంఖ్యలో కొత్త ఫంక్షన్లు జోడించబడ్డాయి.
- Argon2 అల్గోరిథం అమలు AVX2 సూచనలను ఉపయోగిస్తుంది.
- Camellia, ARIA, SEED, DES, మరియు Whirlpool అల్గోరిథంల అమలులలో పట్టిక పరిమాణాలు తగ్గించబడ్డాయి.
- చాలా రకాల కాష్-ఆధారిత సైడ్-ఛానల్ దాడుల నుండి సురక్షితంగా ఉండే DES/3DES యొక్క కొత్త అమలు ప్రతిపాదించబడింది.
- SHACAL2 ఇంప్లిమెంటేషన్ ARMv8 మరియు POWER ఆర్కిటెక్చర్లపై ఆధారపడిన సిస్టమ్ల కోసం ఆప్టిమైజ్ చేయబడింది.
- పారిటీ బిట్లను లెక్కించడం, బిక్రిప్ట్/బేస్64 మార్పిడి, మరియు ASN.1 స్ట్రింగ్ రకాన్ని నిర్ధారించే కోడ్ టేబుల్ లుకప్ల నుండి తొలగించబడింది మరియు ఇప్పుడు ప్రాసెస్ చేయబడుతున్న డేటాపై ఆధారపడదు (స్థిరమైన సమయంలో నడుస్తుంది).
మూలం: opennet.ru
