
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 सर्वाधिकार सुरक्षित।
OpenSSL प्रोजेक्ट एक सहयोगात्मक प्रयास है जो Secure Sockets Layer (SSL v2/v3) और Transport Layer Security (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 का अधिक सामान्य रूप) जिसमें 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 और PEM-आधारित ASCII-बाइनरी एन्कोडिंग से/में X509 एन्कोडिंग/डिकोडिंग जो निजी कुंजी के साथ एन्क्रिप्शन का समर्थन करती है। 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 प्रोजेक्ट को रिपोर्ट करें:
ध्यान दें कि अनुरोध ट्रैकर का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए। सिर्फ इसलिए कि कोई चीज़ आपकी अपेक्षा के अनुसार काम नहीं करती, इसका मतलब यह नहीं है कि यह आवश्यक रूप से 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" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: