
OpenSSL टूलकिट जो 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 All rights reserved.
OpenSSL प्रोजेक्ट एक सहयोगात्मक प्रयास है जो एक मजबूत, व्यावसायिक-स्तर का, पूर्ण-विशेषताओं वाला और ओपन सोर्स टूलकिट विकसित करता है जो सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (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 क्लाइंट/सर्वर, फ़ाइल पॉइंटर, एन्क्रिप्शन,
डाइजेस्ट, नॉन-ब्लॉकिंग परीक्षण और null।
डेटा संरचनाएँ
एक गतिशील रूप से बढ़ती हुई हैशिंग प्रणाली
एक सरल स्टैक।
एक कॉन्फ़िगरेशन लोडर जो 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 प्रोजेक्ट को रिपोर्ट करें:
ध्यान दें कि रिक्वेस्ट ट्रैकर का उपयोग सामान्य सहायता या सपोर्ट प्रश्नों के लिए कदापि नहीं किया जाना चाहिए। केवल इसलिए कि कुछ आपकी अपेक्षा के अनुसार काम नहीं करता, इसका मतलब यह नहीं है कि यह आवश्यक रूप से 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" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: