
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.
The OpenSSL Project एक सहयोगी प्रयास है जो एक मजबूत, व्यावसायिक-ग्रेड, पूर्ण-विशेषताओं वाला और ओपन सोर्स टूलकिट विकसित करने हेतु है जो Secure Sockets Layer (SSL v2/v3) और Transport Layer Security (TLS v1) प्रोटोकॉल के साथ-साथ पूर्ण-क्षमता वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी भी लागू करता है। यह परियोजना दुनिया भर के स्वयंसेवकों के समुदाय द्वारा प्रबंधित की जाती है जो OpenSSL टूलकिट और उसके संबंधित दस्तावेज़ीकरण को संवाद, योजना और विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
OpenSSL उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है जिसे Eric A. Young और Tim J. Hudson द्वारा विकसित किया गया था। The OpenSSL टूलकिट द्वि-लाइसेंस (the OpenSSL लाइसेंस और SSLeay लाइसेंस) स्थिति के तहत लाइसेंस प्राप्त है, जिसका मूल रूप से अर्थ है कि आप इसे व्यावसायिक और गैर-व्यावसायिक उद्देश्यों के लिए प्राप्त करने और उपयोग करने हेतु स्वतंत्र हैं, जब तक आप दोनों लाइसेंसों की शर्तों को पूरा करते हैं।
The OpenSSL टूलकिट में शामिल हैं:
libssl.a: SSLv2, SSLv3, TLSv1 का कार्यान्वयन और उन्हें एक ही सर्वर और क्लाइंट में SSLv2, SSLv3 और TLSv1 दोनों का समर्थन करने हेतु आवश्यक कोड।
libcrypto.a: SSL/TLS के लिए आवश्यक सामान्य एन्क्रिप्शन और X.509 v1/v3 सामग्री, किंतु वास्तव में तार्किक रूप से उसका हिस्सा नहीं है। इसमें निम्नलिखित के लिए रूटीन शामिल हैं:
सिफर
libdes - EAY का libdes DES एन्क्रिप्शन पैकेज जो कुछ वर्षों तक
इंटरनेट पर घूमता रहा, और फिर उसके द्वारा
इसे SSLeay के हिस्से के रूप में पुनर्लाइसेंस किया गया। इसमें DES के 15 'मोड/वेरिएशन' शामिल हैं
(1, 2 और 3 कुंजी वाले संस्करण ecb, cbc, cfb और ofb;
pcbc और cfb तथा ofb का अधिक सामान्य रूप) जिसमें desx शामिल है
cbc मोड में, एक तेज़ 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 सिस्टम जो एक सरल नॉन-ब्लॉकिंग IO एब्स्ट्रैक्शन है। वर्तमान में समर्थित विधियाँ हैं: फ़ाइल डिस्क्रिप्टर,
सॉकेट, socket accept, socket connect, मेमोरी बफर, बफरिंग, 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 की अनुमति से ही किया जाना चाहिए।
The 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 नाम, संस्करण, हार्डवेयर प्लेटफ़ॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (समस्या उत्पन्न करने वाले चरण, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को OpenSSL परियोजना को Request Tracker के माध्यम से रिपोर्ट करें (http://www.openssl.org/support/rt.html) मेल द्वारा:
ध्यान दें कि 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" आउटपुट है। आप इसे निम्नानुसार उत्पन्न कर सकते हैं: