
सामान्य-उद्देश्य क्रिप्टोग्राफी लाइब्रेरी और 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 प्रमाणपत्र
X509 बाइनरी ASN1 और PEM-आधारित ASCII-बाइनरी एन्कोडिंग में/से एन्कोडिंग/डिकोडिंग जो प्राइवेट की के साथ एन्क्रिप्शन का समर्थन करता है। RSA और DSA प्रमाणपत्र अनुरोध उत्पन्न करने और RSA और DSA प्रमाणपत्र उत्पन्न करने का प्रोग्राम।
सिस्टम
सामान्य डिजिटल लिफाफा रूटीन और base64 एन्कोडिंग। नाम से सिफर और डाइजेस्ट तक उच्च-स्तरीय पहुंच। रन टाइम पर नए सिफर लोड किए जा सकते हैं। BIO इनपुट/आउटपुट सिस्टम जो एक सरल नॉन-ब्लॉकिंग 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 देखें)। यदि आप एक पैच सबमिट करना चाहते हैं, तो इसे [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" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: