
पूर्ण-विशेषताओं वाला ओपन-सोर्स टूलकिट जो SSL/TLS प्रोटोकॉल को लागू करता है और सिफर, डाइजेस्ट, पब्लिक की एल्गोरिदम और X.509 प्रमाणपत्र प्रबंधन के समर्थन के साथ एक सामान्य-उद्देश्य क्रिप्टोग्राफी लाइब्रेरी प्रदान करता है।
OpenSSL 1.0.1g 7 अप्रैल 2014
कॉपीराइट (c) 1998-2011 द ओपनएसएसएल प्रोजेक्ट कॉपीराइट (c) 1995-1998 एरिक ए. यंग, टिम जे. हडसन सर्वाधिकार सुरक्षित।
ओपनएसएसएल प्रोजेक्ट एक सहयोगात्मक प्रयास है जो एक मजबूत, व्यावसायिक-ग्रेड, पूर्ण विशेषताओं वाला और ओपन सोर्स टूलकिट विकसित करता है जो सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS v1) प्रोटोकॉल के साथ-साथ एक पूर्ण-शक्ति वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी को लागू करता है। यह प्रोजेक्ट दुनिया भर के स्वयंसेवकों के एक समुदाय द्वारा प्रबंधित किया जाता है जो ओपनएसएसएल टूलकिट और उससे संबंधित दस्तावेज़ीकरण को विकसित करने, योजना बनाने और संवाद करने के लिए इंटरनेट का उपयोग करते हैं।
ओपनएसएसएल एरिक ए. यंग और टिम जे. हडसन द्वारा विकसित उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है। ओपनएसएसएल टूलकिट दोहरे लाइसेंस (ओपनएसएसएल लाइसेंस प्लस SSLeay लाइसेंस) के अंतर्गत लाइसेंस प्राप्त है, जिसका मूलतः अर्थ है कि आप इसे वाणिज्यिक और गैर-वाणिज्यिक दोनों उद्देश्यों के लिए प्राप्त करने और उपयोग करने के लिए स्वतंत्र हैं, बशर्ते आप दोनों लाइसेंसों की शर्तों को पूरा करते हों।
ओपनएसएसएल टूलकिट में शामिल हैं:
libssl.a: SSLv2, SSLv3, TLSv1 का कार्यान्वयन और एक ही सर्वर और क्लाइंट में SSLv2, SSLv3 और TLSv1 दोनों को समर्थन देने के लिए आवश्यक कोड।
libcrypto.a: सामान्य एन्क्रिप्शन और X.509 v1/v3 सामग्री जो SSL/TLS के लिए आवश्यक है लेकिन वास्तव में इसका तार्किक हिस्सा नहीं है। इसमें निम्नलिखित के लिए रूटीन शामिल हैं:
सिफ़र
libdes - EAY का libdes DES एन्क्रिप्शन पैकेज जो कुछ वर्षों तक नेट पर प्रचलित था, और फिर उनके द्वारा SSLeay के भाग के रूप में पुनः लाइसेंस प्राप्त किया गया। इसमें DES के 15 'मोड/विविधताएँ' शामिल हैं (ecb, cbc, cfb और ofb के 1, 2 और 3 कुंजी संस्करण; pcbc और cfb और ofb का अधिक सामान्य रूप) जिसमें cbc मोड में desx, एक तेज़ क्रिप्ट(3), और कीबोर्ड से पासवर्ड पढ़ने के रूटीन शामिल हैं।
RC4 एन्क्रिप्शन,
RC2 एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
ब्लोफिश एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
IDEA एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
डाइजेस्ट
MD5 और MD2 संदेश डाइजेस्ट एल्गोरिदम, तेज़ कार्यान्वयन,
SHA (SHA-0) और SHA-1 संदेश डाइजेस्ट एल्गोरिदम,
MDC2 संदेश डाइजेस्ट। स्मार्ट कार्ड पर लोकप्रिय एक DES-आधारित हैश।
सार्वजनिक कुंजी
RSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या पर कोई सीमा नहीं है।
DSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या पर कोई सीमा नहीं है।
डिफी-हेलमैन कुंजी-विनिमय/कुंजी जनरेशन।
बिट्स की संख्या पर कोई सीमा नहीं है।
X.509v3 प्रमाणपत्र
X509 बाइनरी ASN1 और एक PEM-आधारित ASCII-बाइनरी एन्कोडिंग में/से एन्कोडिंग/डिकोडिंग जो निजी कुंजी के साथ एन्क्रिप्शन का समर्थन करती है। RSA और DSA प्रमाणपत्र अनुरोध उत्पन्न करने और RSA और DSA प्रमाणपत्र उत्पन्न करने का प्रोग्राम।
सिस्टम
सामान्य डिजिटल लिफाफा रूटीन और बेस64 एन्कोडिंग। नाम से सिफ़र और डाइजेस्ट तक उच्च-स्तरीय पहुंच। रन टाइम पर नए सिफ़र लोड किए जा सकते हैं। BIO io सिस्टम जो एक सरल नॉन-ब्लॉकिंग IO एब्स्ट्रैक्शन है। वर्तमान में समर्थित विधियाँ हैं: फ़ाइल डिस्क्रिप्टर, सॉकेट, सॉकेट स्वीकार, सॉकेट कनेक्ट, मेमोरी बफ़र, बफ़रिंग, SSL क्लाइंट/सर्वर, फ़ाइल पॉइंटर, एन्क्रिप्शन, डाइजेस्ट, नॉन-ब्लॉकिंग परीक्षण और शून्य।
डेटा संरचनाएँ
एक गतिशील रूप से बढ़ने वाली हैशिंग प्रणाली
एक सरल स्टैक।
एक कॉन्फ़िगरेशन लोडर जो MS .ini फ़ाइलों के समान प्रारूप का उपयोग करता है।
openssl: एक कमांड लाइन उपकरण जिसका उपयोग इसके लिए किया जा सकता है: RSA, DH और DSA कुंजी पैरामीटर निर्माण X.509 प्रमाणपत्र, CSR और CRL निर्माण संदेश डाइजेस्ट की गणना सिफ़र के साथ एन्क्रिप्शन और डिक्रिप्शन SSL/TLS क्लाइंट और सर्वर परीक्षण S/MIME हस्ताक्षरित या एन्क्रिप्टेड मेल को संभालना
दुनिया भर में विभिन्न स्थानों पर विभिन्न कंपनियाँ विभिन्न एल्गोरिदम के लिए विभिन्न पेटेंट रखती हैं। आप यह सुनिश्चित करने के लिए जिम्मेदार हैं कि आपके द्वारा किसी भी एल्गोरिदम का उपयोग कानूनी है, यह जाँच कर कि आपके देश में कोई पेटेंट है या नहीं। फ़ाइल में कुछ ऐसे पेटेंट शामिल हैं जिनके बारे में हम जानते हैं या जिनके अस्तित्व की अफवाह है। यह कोई निश्चित सूची नहीं है।
RSA Security के पास RC5 एल्गोरिदम पर सॉफ्टवेयर पेटेंट हैं। यदि आप इस सिफ़र का उपयोग करना चाहते हैं, तो आपको लाइसेंसिंग शर्तों के लिए RSA Security से संपर्क करना होगा। उनका वेब पेज http://www.rsasecurity.com/ है।
RC4 RSA Security का एक ट्रेडमार्क है, इसलिए इस लेबल का उपयोग शायद केवल RSA Security की अनुमति से ही किया जाना चाहिए।
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 नाम, संस्करण, हार्डवेयर प्लेटफ़ॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (वे चरण जो समस्या को पुन: उत्पन्न करेंगे, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को रिक्वेस्ट ट्रैकर (http://www.openssl.org/support/rt.html) के माध्यम से OpenSSL प्रोजेक्ट को मेल द्वारा रिपोर्ट करें:
ध्यान दें कि रिक्वेस्ट ट्रैकर का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए। केवल इसलिए कि कुछ आपकी अपेक्षा के अनुसार काम नहीं करता है, इसका मतलब यह नहीं है कि यह OpenSSL में आवश्यक रूप से एक बग है।
ध्यान दें कि [email protected] पर मेल सार्वजनिक रूप से पठनीय रिक्वेस्ट ट्रैकर डेटाबेस में दर्ज किया जाता है और एक सार्वजनिक मेलिंग सूची में अग्रेषित किया जाता है। गोपनीय मेल [email protected] पर भेजा जा सकता है (PGP कुंजी कुंजी सर्वर पर उपलब्ध है)।
विकास openssl-dev मेलिंग सूची (सदस्यता के बारे में जानकारी के लिए http://www.openssl.org देखें) पर समन्वित किया जाता है। यदि आप एक पैच सबमिट करना चाहते हैं, तो इसे विषय में "[PATCH]" स्ट्रिंग के साथ [email protected] पर भेजें। कृपया अपने पैच का एक पाठ्य विवरण शामिल करना सुनिश्चित करें।
यदि आप अनिश्चित हैं कि कोई सुविधा सामान्य OpenSSL समुदाय के लिए उपयोगी होगी या नहीं, तो कृपया पहले openssl-dev मेलिंग सूची पर इस पर चर्चा करें। हो सकता है कि कोई पहले से ही उसी चीज़ पर काम कर रहा हो या इस बात का कोई अच्छा कारण हो कि वह सुविधा लागू क्यों नहीं की गई है।
पैच यथासंभव अद्यतित होने चाहिए, अधिमानतः वर्तमान Git या अंतिम स्नैपशॉट के सापेक्ष। उन्हें OpenSSL की कोडिंग शैली का पालन करना चाहिए और चेतावनियों के बिना संकलित होना चाहिए। कुछ कोर टीम डेवलपर लक्ष्यों का उपयोग परीक्षण उद्देश्यों के लिए किया जा सकता है, (debug-steve64, debug-geoff आदि)। OpenSSL कई विविध प्लेटफ़ॉर्म पर संकलित होता है: सुनिश्चित करें कि आप केवल पोर्टेबल सुविधाओं का उपयोग करें।
नोट: कानूनी कारणों से, यूएस से योगदान केवल तभी स्वीकार किया जा सकता है यदि एक 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" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: