
OpenSSL 1.0.1g स्रोत कोड, CVE-2015-1791 पैच के साथ, सुरक्षित संचार के लिए SSL/TLS और क्रिप्टोग्राफ़िक लाइब्रेरी प्रदान करता है।
OpenSSL 1.0.1g 7 Apr 2014
कॉपीराइट (c) 1998-2011 ओपनएसएसएल प्रोजेक्ट कॉपीराइट (c) 1995-1998 एरिक ए. यंग, टिम जे. हडसन सर्वाधिकार सुरक्षित।
ओपनएसएसएल प्रोजेक्ट एक सहयोगात्मक प्रयास है जो सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS v1) प्रोटोकॉल के साथ-साथ एक पूर्ण-शक्ति वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी को लागू करने वाला एक मजबूत, व्यावसायिक-ग्रेड, पूरी तरह से सुसज्जित और ओपन सोर्स टूलकिट विकसित करने के लिए है। इस प्रोजेक्ट का प्रबंधन दुनिया भर के स्वयंसेवकों के एक समुदाय द्वारा किया जाता है जो ओपनएसएसएल टूलकिट और इससे संबंधित दस्तावेज़ीकरण को संप्रेषित करने, योजना बनाने और विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
ओपनएसएसएल एरिक ए. यंग और टिम जे. हडसन द्वारा विकसित उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है। ओपनएसएसएल टूलकिट एक दोहरे-लाइसेंस (ओपनएसएसएल लाइसेंस और SSLeay लाइसेंस) की स्थिति के तहत लाइसेंस प्राप्त है, जिसका मूल रूप से मतलब है कि आप इसे वाणिज्यिक और गैर-वाणिज्यिक दोनों उद्देश्यों के लिए प्राप्त करने और उपयोग करने के लिए स्वतंत्र हैं, जब तक आप दोनों लाइसेंसों की शर्तों को पूरा करते हैं।
ओपनएसएसएल टूलकिट में शामिल हैं:
libssl.a: SSLv2, SSLv3, TLSv1 का कार्यान्वयन और एक सर्वर और क्लाइंट में SSLv2, SSLv3 और TLSv1 दोनों को समर्थन देने के लिए आवश्यक कोड।
libcrypto.a: SSL/TLS के लिए आवश्यक लेकिन तार्किक रूप से इसका हिस्सा नहीं होने वाली सामान्य एन्क्रिप्शन और X.509 v1/v3 सामग्री। इसमें निम्नलिखित के लिए रूटीन शामिल हैं:
सिफ़र
libdes - EAY's libdes DES एन्क्रिप्शन पैकेज जो कुछ वर्षों तक नेट पर प्रसारित था, और फिर उनके द्वारा SSLeay के भाग के रूप में पुनः लाइसेंस प्राप्त किया गया। इसमें DES के 15 'मोड/वेरिएशन' शामिल हैं (ecb, cbc, cfb और ofb के 1, 2 और 3 कुंजी संस्करण; pcbc और cfb तथा ofb का एक अधिक सामान्य रूप) जिसमें cbc मोड में desx, एक तेज़ crypt(3), और कीबोर्ड से पासवर्ड पढ़ने के रूटीन शामिल हैं।
RC4 एन्क्रिप्शन,
RC2 एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
ब्लोफ़िश एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
आइडिया एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
डाइजेस्ट
MD5 और MD2 मैसेज डाइजेस्ट एल्गोरिदम, तेज़ कार्यान्वयन,
SHA (SHA-0) और SHA-1 मैसेज डाइजेस्ट एल्गोरिदम,
MDC2 मैसेज डाइजेस्ट। एक DES-आधारित हैश जो स्मार्ट कार्ड पर लोकप्रिय है।
पब्लिक की
RSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
DSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
डिफी-हेलमैन की-एक्सचेंज/की जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
X.509v3 प्रमाणपत्र
बाइनरी ASN1 और एक PEM-आधारित ASCII-बाइनरी एन्कोडिंग में X509 एन्कोडिंग/डिकोडिंग जो एक प्राइवेट की के साथ एन्क्रिप्शन का समर्थन करता है। RSA और DSA प्रमाणपत्र अनुरोध उत्पन्न करने और RSA और DSA प्रमाणपत्र उत्पन्न करने का प्रोग्राम।
सिस्टम
सामान्य डिजिटल एनवेलप रूटीन और बेस64 एन्कोडिंग। नाम से सिफ़र और डाइजेस्ट तक उच्च स्तरीय पहुंच। रन टाइम पर नए सिफ़र लोड किए जा सकते हैं। BIO IO प्रणाली जो एक सरल नॉन-ब्लॉकिंग IO एब्सट्रैक्शन है। समर्थित वर्तमान विधियाँ हैं: फ़ाइल डिस्क्रिप्टर, सॉकेट, सॉकेट स्वीकार, सॉकेट कनेक्ट, मेमोरी बफ़र, बफ़रिंग, SSL क्लाइंट/सर्वर, फ़ाइल पॉइंटर, एन्क्रिप्शन, डाइजेस्ट, नॉन-ब्लॉकिंग टेस्टिंग और नल।
डेटा संरचनाएँ
एक गतिशील रूप से बढ़ने वाली हैशिंग प्रणाली
एक सरल स्टैक।
एक कॉन्फ़िगरेशन लोडर जो MS .ini फ़ाइलों के समान प्रारूप का उपयोग करता है।
openssl: एक कमांड लाइन उपकरण जिसका उपयोग निम्न के लिए किया जा सकता है: RSA, DH और DSA की पैरामीटर्स का निर्माण X.509 प्रमाणपत्र, CSR और CRL का निर्माण मैसेज डाइजेस्ट की गणना सिफ़र के साथ एन्क्रिप्शन और डिक्रिप्शन SSL/TLS क्लाइंट और सर्वर परीक्षण S/MIME हस्ताक्षरित या एन्क्रिप्टेड मेल का संचालन
दुनिया भर के विभिन्न स्थानों में विभिन्न कंपनियों के पास विभिन्न एल्गोरिदम के लिए विभिन्न पेटेंट हैं। आप यह सुनिश्चित करने के लिए जिम्मेदार हैं कि आपके द्वारा किसी भी एल्गोरिदम का उपयोग कानूनी है, यह जाँच कर कि आपके देश में कोई पेटेंट है या नहीं। फ़ाइल में कुछ पेटेंट शामिल हैं जिनके बारे में हम जानते हैं या जिनके अस्तित्व की अफवाह है। यह एक निश्चित सूची नहीं है।
RSA सिक्योरिटी के पास RC5 एल्गोरिदम पर सॉफ़्टवेयर पेटेंट हैं। यदि आप इस सिफ़र का उपयोग करने का इरादा रखते हैं, तो आपको लाइसेंसिंग शर्तों के लिए RSA सिक्योरिटी से संपर्क करना होगा। उनका वेब पेज http://www.rsasecurity.com/ है।
RC4 RSA सिक्योरिटी का एक ट्रेडमार्क है, इसलिए इस लेबल का उपयोग संभवतः केवल RSA सिक्योरिटी की अनुमति से ही किया जाना चाहिए।
IDEA एल्गोरिदम ऑस्ट्रिया, फ्रांस, जर्मनी, इटली, जापान, नीदरलैंड्स, स्पेन, स्वीडन, स्विट्जरलैंड, यूके और यूएसए में Ascom द्वारा पेटेंट है। यदि उस एल्गोरिदम का उपयोग किया जाना है तो उनसे संपर्क किया जाना चाहिए; उनका वेब पेज http://www.ascom.ch/ है।
NTT और मित्सुबिशी के पास कैमेलिया एल्गोरिदम पर पेटेंट और लंबित पेटेंट हैं, लेकिन एक स्पष्ट लाइसेंसिंग समझौते की आवश्यकता के बिना मुफ्त उपयोग की अनुमति देते हैं: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
किसी यूनिक्स व्युत्पन्न के तहत इस पैकेज को स्थापित करने के लिए, INSTALL फ़ाइल पढ़ें। Win32 प्लेटफ़ॉर्म के लिए, INSTALL.W32 फ़ाइल पढ़ें। OpenVMS सिस्टम के लिए, INSTALL.VMS पढ़ें।
doc/ निर्देशिका में दस्तावेज़ीकरण पढ़ें। यह काफी कच्चा है, लेकिन यह फ़ंक्शन को सूचीबद्ध करता है; संभवतः आपको उनका उपयोग करने का तरीका जानने के लिए कोड देखना होगा। उदाहरण प्रोग्राम देखें।
कुछ प्लेटफ़ॉर्म के लिए, कुछ ज्ञात समस्याएँ हैं जो उपयोगकर्ता या एप्लिकेशन लेखक को प्रभावित कर सकती हैं। हम उन्हें doc/PROBLEMS में एकत्र करने का प्रयास करते हैं, साथ ही इस बारे में वर्तमान विचार भी रखते हैं कि उन्हें OpenSSL के भविष्य में कैसे हल किया जाना चाहिए।
वाणिज्यिक तकनीकी सहायता प्राप्त करने के विवरण के लिए OpenSSL वेबसाइट www.openssl.org देखें।
यदि आपको OpenSSL के साथ कोई समस्या है, तो कृपया पहले निम्नलिखित कदम उठाएँ:
- यह देखने के लिए ftp://ftp.openssl.org/snapshot/ से वर्तमान स्नैपशॉट डाउनलोड करें कि क्या समस्या पहले ही हल हो गई है
- ASM संस्करणों की लाइब्रेरी हटाएँ
- कंपाइलर ऑप्टिमाइज़ेशन फ़्लैग हटाएँ
यदि आप कोई बग रिपोर्ट करना चाहते हैं, तो कृपया बग रिपोर्ट में निम्नलिखित जानकारी शामिल करें:
- यूनिक्स सिस्टम पर:
'make report' द्वारा उत्पन्न स्व-परीक्षण रिपोर्ट
- अन्य सिस्टम पर:
OpenSSL संस्करण: 'openssl version -a' का आउटपुट
OS नाम, संस्करण, हार्डवेयर प्लेटफ़ॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (वे चरण जो समस्या को पुन: उत्पन्न करेंगे, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को OpenSSL प्रोजेक्ट को रिक्वेस्ट ट्रैकर (http://www.openssl.org/support/rt.html) के माध्यम से मेल द्वारा रिपोर्ट करें:
ध्यान दें कि रिक्वेस्ट ट्रैकर का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए। किसी चीज़ का आपकी अपेक्षा के अनुसार काम न करने का मतलब यह नहीं है कि वह OpenSSL में आवश्यक रूप से बग है।
ध्यान दें कि [email protected] पर मेल सार्वजनिक रूप से पढ़ी जा सकने वाली रिक्वेस्ट ट्रैकर डेटाबेस में दर्ज की जाती है और एक सार्वजनिक मेलिंग सूची को अग्रेषित की जाती है। गोपनीय मेल [email protected] पर भेजी जा सकती है (कुंजी सर्वर से PGP कुंजी उपलब्ध है)।
विकास openssl-dev मेलिंग सूची पर समन्वित किया जाता है (सदस्यता लेने की जानकारी के लिए http://www.openssl.org देखें)। यदि आप एक पैच सबमिट करना चाहते हैं, तो इसे [email protected] को विषय में "[PATCH]" स्ट्रिंग के साथ भेजें। कृपया अपने पैच के बारे में एक पाठ्य व्याख्या शामिल करना सुनिश्चित करें।
यदि आप अनिश्चित हैं कि कोई सुविधा सामान्य OpenSSL समुदाय के लिए उपयोगी होगी या नहीं, तो कृपया पहले openssl-dev मेलिंग सूची पर इस पर चर्चा करें। हो सकता है कि कोई पहले से ही उसी चीज़ पर काम कर रहा हो या इस बात का अच्छा कारण हो कि वह सुविधा लागू क्यों नहीं की गई है।
पैच यथासंभव अद्यतित होने चाहिए, अधिमानतः वर्तमान Git या अंतिम स्नैपशॉट के सापेक्ष। उन्हें OpenSSL की कोडिंग शैली का पालन करना चाहिए और बिना चेतावनी के संकलित होना चाहिए। कोर टीम के कुछ डेवलपर लक्ष्यों का उपयोग परीक्षण उद्देश्यों के लिए किया जा सकता है, (debug-steve64, debug-geoff आदि)। OpenSSL कई विविध प्लेटफ़ॉर्म पर संकलित होता है: सुनिश्चित करें कि आप केवल पोर्टेबल सुविधाओं का उपयोग करें।
नोट: कानूनी कारणों से, US से योगदान केवल तभी स्वीकार किया जा सकता है जब TSU अधिसूचना और पैच की एक प्रति [email protected] (पूर्व में BXA) को ENC एन्क्रिप्शन अनुरोध समन्वयक की एक प्रति के साथ भेजी जाए; कृपया विवरण के लिए कुछ समय निकालकर देखें: http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] और http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR धारा 740.13(e)) यदि "आपका एन्क्रिप्शन स्रोत कोड ईमेल अटैचमेंट के रूप में भेजने के लिए बहुत बड़ा है", तो वे इसे फैक्स के माध्यम से प्राप्त करने में प्रसन्न हैं; उम्मीद है कि आपके पास एक सस्ती लंबी दूरी की योजना है।
परिवर्तनों के लिए हमारा पसंदीदा प्रारूप "diff -u" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: