
पूर्ण-विशेषताओं वाला ओपन-सोर्स टूलकिट जो SSL/TLS प्रोटोकॉल और एक सामान्य-उद्देश्य क्रिप्टोग्राफी लाइब्रेरी को लागू करता है, जिसमें सिफर, डाइजेस्ट, पब्लिक की एल्गोरिदम और X.509 प्रमाणपत्र हैंडलिंग शामिल हैं।
OpenSSL 1.0.1g 7 अप्रैल 2014
कॉपीराइट (c) 1998-2011 द ओपनएसएसएल प्रोजेक्ट कॉपीराइट (c) 1995-1998 एरिक ए. यंग, टिम जे. हडसन सर्वाधिकार सुरक्षित।
द ओपनएसएसएल प्रोजेक्ट एक सहयोगात्मक प्रयास है जो एक मजबूत, व्यावसायिक-स्तर, पूर्ण रूप से सुसज्जित और ओपन सोर्स टूलकिट विकसित करने के लिए है जो सिक्योर सॉकेट्स लेयर (एसएसएल v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस 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, एक तेज़ crypt(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 एब्स्ट्रक्शन है। वर्तमान समर्थित विधियाँ फ़ाइल डिस्क्रिप्टर,
सॉकेट, सॉकेट स्वीकार, सॉकेट कनेक्ट, मेमोरी बफर, बफरिंग, एसएसएल
क्लाइंट/सर्वर, फ़ाइल पॉइंटर, एन्क्रिप्शन, डाइजेस्ट, नॉन-ब्लॉकिंग परीक्षण
और नल हैं।
डेटा संरचनाएं
एक गतिशील रूप से बढ़ने वाली हैशिंग प्रणाली
एक सरल स्टैक।
एक कॉन्फ़िगरेशन लोडर जो 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 और मित्सुबिशी के पास Camellia एल्गोरिदम पर पेटेंट और लंबित पेटेंट हैं, लेकिन स्पष्ट लाइसेंसिंग समझौते की आवश्यकता के बिना मुफ्त उपयोग की अनुमति देते हैं: 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" आउटपुट है। आप इसे इस तरह उत्पन्न कर सकते हैं: