
उद्योग-मानक ओपन-सोर्स टूलकिट जो SSL/TLS प्रोटोकॉल लागू करता है तथा एन्क्रिप्शन, डिक्रिप्शन, हैशिंग, डिजिटल हस्ताक्षर और प्रमाणपत्र प्रबंधन के लिए एक व्यापक क्रिप्टोग्राफी लाइब्रेरी प्रदान करता है।
OpenSSL 1.0.1g 7 Apr 2014
कॉपीराइट (c) 1998-2011 The OpenSSL Project कॉपीराइट (c) 1995-1998 Eric A. Young, Tim J. Hudson सर्वाधिकार सुरक्षित.
OpenSSL परियोजना एक सहयोगात्मक प्रयास है, जो एक मजबूत, व्यावसायिक-ग्रेड, पूर्ण विशेषताओं वाला, और मुक्त स्रोत टूलकिट विकसित करने के लिए है जो सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS v1) प्रोटोकॉल के साथ-साथ एक पूर्ण-शक्ति वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी लागू करता है। यह परियोजना दुनिया भर के स्वयंसेवकों के समुदाय द्वारा प्रबंधित की जाती है, जो OpenSSL टूलकिट और उससे संबंधित दस्तावेज़ीकरण को संवाद, योजना और विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
OpenSSL उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है, जिसे Eric A. Young और Tim J. Hudson ने विकसित किया था। OpenSSL टूलकिट दोहरे-लाइसेंस (OpenSSL लाइसेंस और SSLeay लाइसेंस) स्थिति के अंतर्गत लाइसेंस प्राप्त है, जिसका मूल रूप से अर्थ है कि आप इसे व्यावसायिक और गैर-व्यावसायिक उद्देश्यों के लिए प्राप्त करने और उपयोग करने के लिए स्वतंत्र हैं, जब तक आप दोनों लाइसेंसों की शर्तों को पूरा करते हैं।
OpenSSL टूलकिट में निम्नलिखित शामिल हैं:
libssl.a: SSLv2, SSLv3, TLSv1 का कार्यान्वयन और समर्थन करने के लिए आवश्यक कोड जो एक ही सर्वर और क्लाइंट में SSLv2, SSLv3 और TLSv1 दोनों का समर्थन करता है।
libcrypto.a: SSL/TLS के लिए आवश्यक सामान्य एन्क्रिप्शन और X.509 v1/v3 सामग्री, लेकिन वास्तव में तार्किक रूप से इसका हिस्सा नहीं है। इसमें निम्नलिखित के लिए रूटीन शामिल हैं:
साइफर
libdes - EAY का libdes DES एन्क्रिप्शन पैकेज जो कुछ वर्षों तक
नेट पर उपलब्ध था, और फिर उसके द्वारा SSLeay के भाग के रूप में
पुनः लाइसेंस प्राप्त किया गया। इसमें DES के 15 'मोड/विविधताएँ'
शामिल हैं (ecb, cbc, cfb और ofb के 1, 2 और 3 कुंजी संस्करण;
pcbc और cfb व ofb का अधिक सामान्य रूप) जिसमें desx
cbc मोड में, एक तेज़ crypt(3), और पासवर्ड पढ़ने के रूटीन
कीबोर्ड से।
RC4 एन्क्रिप्शन,
RC2 एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb.
Blowfish एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb.
IDEA एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb.
डाइजेस्ट
MD5 और MD2 मैसेज डाइजेस्ट एल्गोरिदम, तेज़ कार्यान्वयन,
SHA (SHA-0) और SHA-1 मैसेज डाइजेस्ट एल्गोरिदम,
MDC2 मैसेज डाइजेस्ट. एक DES-आधारित हैश जो स्मार्ट कार्ड पर लोकप्रिय है.
सार्वजनिक कुंजी
RSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन.
बिट्स की संख्या की कोई सीमा नहीं है.
DSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन.
बिट्स की संख्या की कोई सीमा नहीं है.
Diffie-Hellman कुंजी-विनिमय/कुंजी जनरेशन.
बिट्स की संख्या की कोई सीमा नहीं है.
X.509v3 प्रमाणपत्र
X509 को बाइनरी ASN1 और एक PEM में/से एन्कोड/डिकोड करना
आधारित ASCII-बाइनरी एन्कोडिंग जो एक निजी कुंजी के साथ
एन्क्रिप्शन का समर्थन करती है. RSA और DSA प्रमाणपत्र अनुरोध
और RSA तथा DSA प्रमाणपत्र उत्पन्न करने का प्रोग्राम.
सिस्टम
सामान्य डिजिटल एनवलप रूटीन और base64 एन्कोडिंग. उच्च
स्तर पर साइफर और डाइजेस्ट तक नाम से पहुंच. नए साइफर को
रन टाइम पर लोड किया जा सकता है. 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 और Mitsubishi के पास Camellia एल्गोरिदम पर पेटेंट और लंबित पेटेंट हैं, लेकिन वे स्पष्ट लाइसेंसिंग समझौते की आवश्यकता के बिना निःशुल्क उपयोग की अनुमति देते हैं: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
किसी Unix व्युत्पन्न प्रणाली के अंतर्गत इस पैकेज को स्थापित करने के लिए, INSTALL फाइल पढ़ें. Win32 प्लेटफॉर्म के लिए, INSTALL.W32 फाइल पढ़ें. OpenVMS प्रणालियों के लिए, INSTALL.VMS पढ़ें.
doc/ निर्देशिका में दस्तावेज़ीकरण पढ़ें. यह काफी मोटा है, लेकिन यह फ़ंक्शनों की सूची देता है; आपको संभवतः यह जानने के लिए कोड देखना होगा कि उनका उपयोग कैसे करें. उदाहरण प्रोग्राम देखें.
कुछ प्लेटफॉर्मों के लिए, कुछ ज्ञात समस्याएँ हैं जो उपयोगकर्ता या एप्लिकेशन लेखक को प्रभावित कर सकती हैं. हम उन्हें doc/PROBLEMS में एकत्र करने का प्रयास करते हैं, साथ ही OpenSSL के भविष्य में उन्हें कैसे हल किया जाना चाहिए, इस पर वर्तमान विचार.
व्यावसायिक तकनीकी सहायता कैसे प्राप्त करें, इसके विवरण के लिए OpenSSL वेबसाइट www.openssl.org देखें.
यदि आपको OpenSSL में कोई समस्या आती है, तो कृपया निम्नलिखित कदम उठाएँ पहले:
- वर्तमान स्नैपशॉट डाउनलोड करें ftp://ftp.openssl.org/snapshot/ से
यह देखने के लिए कि समस्या पहले से हल हो चुकी है या नहीं
- लाइब्रेरियों के ASM संस्करण हटाएँ
- कंपाइलर ऑप्टिमाइज़ेशन फ्लैग हटाएँ
यदि आप बग की रिपोर्ट करना चाहते हैं, तो कृपया किसी भी बग रिपोर्ट में निम्नलिखित जानकारी शामिल करें:
- Unix प्रणालियों पर:
'make report' द्वारा उत्पन्न सेल्फ-टेस्ट रिपोर्ट
- अन्य प्रणालियों पर:
OpenSSL संस्करण: 'openssl version -a' का आउटपुट
OS का नाम, संस्करण, हार्डवेयर प्लेटफ़ॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (समस्या को दोहराने वाले चरण, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को Request Tracker के माध्यम से OpenSSL परियोजना को रिपोर्ट करें (http://www.openssl.org/support/rt.html) मेल द्वारा:
ध्यान दें कि Request Tracker का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए. केवल इसलिए कि कोई चीज़ आपकी अपेक्षा के अनुसार काम नहीं करती, इसका अर्थ यह नहीं है कि यह आवश्यक रूप से OpenSSL में एक बग है.
ध्यान दें कि [email protected] पर भेजा गया मेल सार्वजनिक रूप से पठनीय Request Tracker डेटाबेस में दर्ज किया जाता है और एक सार्वजनिक मेलिंग सूची में अग्रेषित किया जाता है. गोपनीय मेल [email protected] पर भेजा जा सकता है (PGP कुंजी कुंजी सर्वर से उपलब्ध है).
विकास openssl-dev मेलिंग सूची पर समन्वित किया जाता है (सब्सक्राइब करने की जानकारी के लिए http://www.openssl.org देखें). यदि आप एक पैच जमा करना चाहते हैं, तो इसे [email protected] पर इसके साथ भेजें विषय में "[PATCH]" स्ट्रिंग. कृपया सुनिश्चित करें कि आपने अपने पैच के कार्य का एक पाठ्य विवरण शामिल किया है.
यदि आप अनिश्चित हैं कि कोई सुविधा सामान्य 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 Section 740.13(e)) विवरण के लिए. यदि "आपका एन्क्रिप्शन स्रोत कोड ईमेल अनुलग्नक के रूप में भेजने के लिए बहुत बड़ा है", तो वे इसे फैक्स द्वारा प्राप्त करने में प्रसन्न हैं; आशा है कि आपके पास एक सस्ती लंबी दूरी की योजना है.
परिवर्तनों के लिए हमारा पसंदीदा प्रारूप "diff -u" आउटपुट है. आप इसे इस प्रकार उत्पन्न कर सकते हैं: