
व्यापक ओपन-सोर्स क्रिप्टोग्राफी लाइब्रेरी जो SSL/TLS प्रोटोकॉल, सममित/असममित एन्क्रिप्शन, मैसेज डाइजेस्ट, डिजिटल प्रमाणपत्र, और X.509 PKI इंफ्रास्ट्रक्चर लागू करती है।
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 परियोजना एक सहयोगात्मक प्रयास है जिसका उद्देश्य सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS v1) प्रोटोकॉल के साथ-साथ एक पूर्ण-शक्ति वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी को लागू करने वाली, मजबूत, व्यावसायिक-ग्रेड, पूर्ण-विशेषताओं वाली और ओपन सोर्स टूलकिट विकसित करना है। परियोजना का प्रबंधन दुनिया भर के स्वयंसेवकों के समुदाय द्वारा किया जाता है जो संवाद करने, योजना बनाने और OpenSSL टूलकिट तथा उससे संबंधित दस्तावेज़ों को विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
OpenSSL एरिक ए. यंग और टिम जे. हडसन द्वारा विकसित उत्कृष्ट 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।
ब्लोफिश एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
IDEA एन्क्रिप्शन - 4 अलग-अलग मोड, ecb, cbc, cfb और ofb।
डाइजेस्ट
MD5 और MD2 मैसेज डाइजेस्ट एल्गोरिदम, तेज़ कार्यान्वयन,
SHA (SHA-0) और SHA-1 मैसेज डाइजेस्ट एल्गोरिदम,
MDC2 मैसेज डाइजेस्ट। एक DES-आधारित हैश जो स्मार्ट कार्ड पर लोकप्रिय है।
सार्वजनिक कुंजी
RSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
DSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
डिफी-हेलमैन कुंजी-विनिमय/कुंजी जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
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 सिक्योरिटी के पास RC5 एल्गोरिदम पर सॉफ्टवेयर पेटेंट हैं। यदि आप इस साइफर का उपयोग करने का इरादा रखते हैं, तो आपको लाइसेंसिंग शर्तों के लिए RSA सिक्योरिटी से संपर्क करना होगा। उनका वेब पेज है http://www.rsasecurity.com/।
RC4 RSA सिक्योरिटी का एक ट्रेडमार्क है, इसलिए इस लेबल का उपयोग शायद केवल RSA सिक्योरिटी की अनुमति के साथ ही किया जाना चाहिए।
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 नाम, संस्करण, हार्डवेयर प्लेटफॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (समस्या को पुन: उत्पन्न करने वाले चरण, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को 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" आउटपुट है। आप इसे इस तरह उत्पन्न कर सकते हैं: