
सामान्य-उद्देश्य क्रिप्टोग्राफी लाइब्रेरी और SSL/TLS टूलकिट जो एन्क्रिप्शन, डिक्रिप्शन, X.509 प्रमाणपत्र प्रबंधन, और सुरक्षित संचार प्रोटोकॉल प्रदान करता है।
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson सर्वाधिकार सुरक्षित।
OpenSSL परियोजना एक सहयोगात्मक प्रयास है जिसका उद्देश्य Secure Sockets Layer (SSL v2/v3) और Transport Layer Security (TLS v1) प्रोटोकॉलों के साथ-साथ एक पूर्ण-क्षमता वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी को लागू करने वाला एक मजबूत, व्यावसायिक-ग्रेड, सभी सुविधाओं से युक्त और ओपन सोर्स टूलकिट विकसित करना है। परियोजना का प्रबंधन दुनिया भर के स्वयंसेवकों के एक समुदाय द्वारा किया जाता है, जो संवाद करने, योजना बनाने तथा OpenSSL टूलकिट और उससे संबंधित दस्तावेज़ों को विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
OpenSSL, Eric A. Young और Tim J. Hudson द्वारा विकसित उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है। 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 का एक अधिक
सामान्य रूप) जिसमें cbc मोड में desx, एक तेज़ 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 सर्टिफिकेट
बाइनरी ASN1 में/से X509 एन्कोडिंग/डिकोडिंग और एक 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 (http://www.openssl.org/support/rt.html) के माध्यम से मेल द्वारा OpenSSL परियोजना को रिपोर्ट करें:
ध्यान दें कि request tracker का उपयोग सामान्य सहायता या सपोर्ट पूछताछ के लिए नहीं किया जाना चाहिए। किसी चीज़ का आपकी अपेक्षा के अनुसार काम न करना ज़रूरी नहीं कि OpenSSL में कोई बग हो।
ध्यान दें कि [email protected] पर भेजा गया मेल सार्वजनिक रूप से पठनीय request tracker डेटाबेस में दर्ज किया जाता है और एक सार्वजनिक मेलिंग सूची पर अग्रेषित किया जाता है। गोपनीय मेल [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" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: