
OpenSSL 1.0.1g स्रोत कोड स्नैपशॉट, एक क्रिप्टोग्राफिक लाइब्रेरी जो SSL/TLS और सामान्य-उद्देश्य एन्क्रिप्शन, डाइजेस्ट और सार्वजनिक कुंजी एल्गोरिदम लागू करती है।
OpenSSL 1.0.1g 7 अप्रैल 2014
कॉपीराइट (c) 1998-2011 द ओपनएसएसएल प्रोजेक्ट कॉपीराइट (c) 1995-1998 एरिक ए. यंग, टिम जे. हडसन सर्वाधिकार सुरक्षित।
ओपनएसएसएल प्रोजेक्ट एक सहयोगात्मक प्रयास है जो सिक्योर सॉकेट्स लेयर (एसएसएल v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस v1) प्रोटोकॉल के साथ-साथ एक पूर्ण-शक्ति सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी को लागू करने वाला एक मजबूत, व्यावसायिक-ग्रेड, पूर्ण विशेषताओं वाला और ओपन सोर्स टूलकिट विकसित करने के लिए है। इस प्रोजेक्ट का प्रबंधन दुनिया भर के स्वयंसेवकों के एक समुदाय द्वारा किया जाता है जो ओपनएसएसएल टूलकिट और संबंधित दस्तावेज़ीकरण को संप्रेषित करने, योजना बनाने और विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
ओपनएसएसएल एरिक ए. यंग और टिम जे. हडसन द्वारा विकसित उत्कृष्ट एसएसएलई लाइब्रेरी पर आधारित है। ओपनएसएसएल टूलकिट दोहरे-लाइसेंस (ओपनएसएसएल लाइसेंस और एसएसएलई लाइसेंस) स्थिति के तहत लाइसेंस प्राप्त है, जिसका मूल रूप से मतलब है कि आप इसे वाणिज्यिक और गैर-वाणिज्यिक दोनों उद्देश्यों के लिए प्राप्त करने और उपयोग करने के लिए स्वतंत्र हैं, बशर्ते आप दोनों लाइसेंस की शर्तों को पूरा करते हैं।
ओपनएसएसएल टूलकिट में शामिल हैं:
libssl.a: एसएसएलv2, एसएसएलv3, टीएलएसv1 और एक ही सर्वर और क्लाइंट में दोनों एसएसएलv2, एसएसएलv3 और टीएलएसv1 का समर्थन करने के लिए आवश्यक कोड का कार्यान्वयन।
libcrypto.a: एसएसएल/टीएलएस के लिए आवश्यक लेकिन वास्तव में तार्किक रूप से इसका हिस्सा नहीं होने वाली सामान्य एन्क्रिप्शन और एक्स.509 v1/v3 सामग्री। इसमें निम्नलिखित के लिए रूटीन शामिल हैं:
सिफर
libdes - ईएवाई की libdes डीईएस एन्क्रिप्शन पैकेज जो कुछ वर्षों तक नेट पर प्रसारित होता रहा, और फिर उनके द्वारा एसएसएलई के भाग के रूप में पुनःलाइसेंस किया गया। इसमें डीईएस के 15 'मोड/वेरिएशन' (ईसीबी, सीबीसी, सीएफबी और ओएफबी के 1, 2 और 3 कुंजी संस्करण; पीसीबीसी और सीएफबी और ओएफबी का अधिक सामान्य रूप) शामिल हैं जिसमें सीबीसी मोड में डेस्क, एक तेज़ क्रिप्ट(3), और कीबोर्ड से पासवर्ड पढ़ने के लिए रूटीन शामिल हैं।
आरसी4 एन्क्रिप्शन,
आरसी2 एन्क्रिप्शन - 4 अलग-अलग मोड, ईसीबी, सीबीसी, सीएफबी और ओएफबी।
ब्लोफिश एन्क्रिप्शन - 4 अलग-अलग मोड, ईसीबी, सीबीसी, सीएफबी और ओएफबी।
आईडीईए एन्क्रिप्शन - 4 अलग-अलग मोड, ईसीबी, सीबीसी, सीएफबी और ओएफबी।
डाइजेस्ट
एमडी5 और एमडी2 संदेश डाइजेस्ट एल्गोरिदम, तेज़ कार्यान्वयन,
एसएचए (एसएचए-0) और एसएचए-1 संदेश डाइजेस्ट एल्गोरिदम,
एमडीसी2 संदेश डाइजेस्ट। एक डीईएस-आधारित हैश जो स्मार्ट कार्ड पर लोकप्रिय है।
सार्वजनिक कुंजी
आरएसए एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या पर कोई सीमा नहीं है।
डीएसए एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या पर कोई सीमा नहीं है।
डिफी-हेलमैन कुंजी-विनिमय/कुंजी जनरेशन।
बिट्स की संख्या पर कोई सीमा नहीं है।
एक्स.509v3 प्रमाणपत्र
बाइनरी एएसएन1 और एक पीईएम-आधारित एएससीआईआई-बाइनरी एन्कोडिंग में एक्स509 एन्कोडिंग/डिकोडिंग जो निजी कुंजी के साथ एन्क्रिप्शन का समर्थन करता है। आरएसए और डीएसए प्रमाणपत्र अनुरोध उत्पन्न करने और आरएसए और डीएसए प्रमाणपत्र उत्पन्न करने का प्रोग्राम।
सिस्टम
सामान्य डिजिटल लिफाफा रूटीन और बेस64 एन्कोडिंग। सिफर और डाइजेस्ट तक नाम से उच्च स्तरीय पहुंच। रन टाइम पर नए सिफर लोड किए जा सकते हैं। बीआईओ आईओ प्रणाली जो एक सरल नॉन-ब्लॉकिंग आईओ एब्स्ट्रक्शन है। वर्तमान में समर्थित विधियां फ़ाइल डिस्क्रिप्टर, सॉकेट, सॉकेट स्वीकार, सॉकेट कनेक्ट, मेमोरी बफर, बफरिंग, एसएसएल क्लाइंट/सर्वर, फाइल पॉइंटर, एन्क्रिप्शन, डाइजेस्ट, नॉन-ब्लॉकिंग टेस्टिंग और नल हैं।
डेटा संरचनाएं
एक गतिशील रूप से बढ़ती हैशिंग प्रणाली
एक सरल स्टैक।
एक कॉन्फ़िगरेशन लोडर जो एमएस .ini फ़ाइलों के समान प्रारूप का उपयोग करता है।
openssl: एक कमांड लाइन उपकरण जिसका उपयोग निम्न के लिए किया जा सकता है: आरएसए, डीएच और डीएसए कुंजी पैरामीटर का निर्माण एक्स.509 प्रमाणपत्र, सीएसआर और सीआरएल का निर्माण संदेश डाइजेस्ट की गणना सिफर के साथ एन्क्रिप्शन और डिक्रिप्शन एसएसएल/टीएलएस क्लाइंट और सर्वर परीक्षण एस/एमआईएमई हस्ताक्षरित या एन्क्रिप्टेड मेल का प्रबंधन
विभिन्न कंपनियों के पास दुनिया भर के विभिन्न स्थानों में विभिन्न एल्गोरिदम के लिए विभिन्न पेटेंट हैं। आप यह सुनिश्चित करने के लिए जिम्मेदार हैं कि आपके द्वारा किसी भी एल्गोरिदम का उपयोग कानूनी है, अपने देश में किसी भी पेटेंट की जांच करके। फ़ाइल में कुछ ऐसे पेटेंट शामिल हैं जिनके बारे में हम जानते हैं या जिनके अस्तित्व की अफवाह है। यह एक निश्चित सूची नहीं है।
आरएसए सिक्योरिटी के पास आरसी5 एल्गोरिदम पर सॉफ्टवेयर पेटेंट हैं। यदि आप इस सिफर का उपयोग करने का इरादा रखते हैं, तो आपको लाइसेंसिंग शर्तों के लिए आरएसए सिक्योरिटी से संपर्क करना होगा। उनका वेब पेज http://www.rsasecurity.com/ है।
आरसी4 आरएसए सिक्योरिटी का एक ट्रेडमार्क है, इसलिए इस लेबल का उपयोग शायद केवल आरएसए सिक्योरिटी की अनुमति से ही किया जाना चाहिए।
आईडीईए एल्गोरिदम ऑस्ट्रिया, फ्रांस, जर्मनी, इटली, जापान, नीदरलैंड, स्पेन, स्वीडन, स्विट्जरलैंड, यूके और यूएसए में एस्कॉम द्वारा पेटेंट किया गया है। यदि उस एल्गोरिदम का उपयोग किया जाना है तो उनसे संपर्क किया जाना चाहिए; उनका वेब पेज http://www.ascom.ch/ है।
एनटीटी और मित्सुबिशी के पास कैमेलिया एल्गोरिदम पर पेटेंट और लंबित पेटेंट हैं, लेकिन स्पष्ट लाइसेंसिंग समझौते की आवश्यकता के बिना मुफ्त उपयोग की अनुमति देते हैं: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
किसी यूनिक्स व्युत्पन्न के तहत इस पैकेज को स्थापित करने के लिए, इंस्टॉल फ़ाइल पढ़ें। विन32 प्लेटफॉर्म के लिए, इंस्टॉल.डब्ल्यू32 फ़ाइल पढ़ें। ओपनवीएमएस सिस्टम के लिए, इंस्टॉल.वीएमएस पढ़ें।
डॉक्टर/निर्देशिका में दस्तावेज पढ़ें। यह काफी खुरदरा है, लेकिन यह कार्यों को सूचीबद्ध करता है; आपको शायद उनका उपयोग करने का तरीका जानने के लिए कोड देखना होगा। उदाहरण प्रोग्राम देखें।
कुछ प्लेटफार्मों के लिए, कुछ ज्ञात समस्याएं हैं जो उपयोगकर्ता या एप्लिकेशन लेखक को प्रभावित कर सकती हैं। हम उन्हें डॉक्टर/प्रॉब्लम्स में एकत्र करने का प्रयास करते हैं, जिसमें ओपनएसएसएल के भविष्य में उन्हें कैसे हल किया जाना चाहिए, इस पर वर्तमान विचार शामिल हैं।
वाणिज्यिक तकनीकी सहायता प्राप्त करने के विवरण के लिए ओपनएसएसएल वेबसाइट www.openssl.org देखें।
यदि आपको ओपनएसएसएल के साथ कोई समस्या है तो कृपया पहले निम्नलिखित कदम उठाएं:
- यह देखने के लिए कि क्या समस्या पहले ही संबोधित की जा चुकी है, ftp://ftp.openssl.org/snapshot/ से वर्तमान स्नैपशॉट डाउनलोड करें
- लाइब्रेरीज के एएसएम संस्करण हटाएं
- कंपाइलर ऑप्टिमाइज़ेशन फ्लैग हटाएं
यदि आप कोई बग रिपोर्ट करना चाहते हैं तो कृपया किसी भी बग रिपोर्ट में निम्नलिखित जानकारी शामिल करें:
- यूनिक्स सिस्टम पर:
'make report' द्वारा उत्पन्न स्व-परीक्षण रिपोर्ट
- अन्य सिस्टम पर:
ओपनएसएसएल संस्करण: 'openssl version -a' का आउटपुट
ओएस नाम, संस्करण, हार्डवेयर प्लेटफॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (समस्या को पुन: उत्पन्न करने वाले कदम, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को ओपनएसएसएल प्रोजेक्ट को रिक्वेस्ट ट्रैकर (http://www.openssl.org/support/rt.html) के माध्यम से मेल द्वारा रिपोर्ट करें:
ध्यान दें कि रिक्वेस्ट ट्रैकर का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए। सिर्फ इसलिए कि कोई चीज़ आपकी अपेक्षा के अनुसार काम नहीं करती है, इसका मतलब यह नहीं है कि यह जरूरी ओपनएसएसएल में एक बग है।
ध्यान दें कि [email protected] पर मेल सार्वजनिक रूप से पढ़ने योग्य रिक्वेस्ट ट्रैकर डेटाबेस में दर्ज की जाती है और एक सार्वजनिक मेलिंग सूची पर अग्रेषित की जाती है। गोपनीय मेल [email protected] पर भेजा जा सकता है (पीजीपी कुंजी कुंजी सर्वर से उपलब्ध है)।
विकास openssl-dev मेलिंग सूची पर समन्वित किया जाता है (सदस्यता लेने की जानकारी के लिए http://www.openssl.org देखें)। यदि आप एक पैच जमा करना चाहते हैं, तो इसे विषय में "[PATCH]" स्ट्रिंग के साथ [email protected] पर भेजें। कृपया अपने पैच क्या करता है इसका एक पाठ्य स्पष्टीकरण शामिल करना सुनिश्चित करें।
यदि आप अनिश्चित हैं कि कोई सुविधा सामान्य ओपनएसएसएल समुदाय के लिए उपयोगी होगी या नहीं, तो कृपया पहले openssl-dev मेलिंग सूची पर इस पर चर्चा करें। हो सकता है कि कोई पहले से ही उसी चीज़ पर काम कर रहा हो या उस सुविधा को लागू न करने का कोई अच्छा कारण हो।
पैच यथासंभव अद्यतित होने चाहिए, अधिमानतः वर्तमान गिट या अंतिम स्नैपशॉट के सापेक्ष। उन्हें ओपनएसएसएल की कोडिंग शैली का पालन करना चाहिए और बिना चेतावनी के संकलित होना चाहिए। कुछ कोर टीम डेवलपर लक्ष्यों का उपयोग परीक्षण उद्देश्यों के लिए किया जा सकता है, (debug-steve64, debug-geoff आदि)। ओपनएसएसएल कई विविध प्लेटफार्मों पर संकलित होता है: सुनिश्चित करें कि आप केवल पोर्टेबल सुविधाओं का उपयोग करें।
नोट: कानूनी कारणों से, यूएस से योगदान केवल तभी स्वीकार किया जा सकता है यदि एक टीएसयू अधिसूचना और पैच की एक प्रति [email protected] (पूर्व बीएक्सए) को ईएनसी एन्क्रिप्शन रिक्वेस्ट कोऑर्डिनेटर की एक प्रति के साथ भेजी जाती है; कृपया विवरण के लिए कुछ समय लेकर देखें http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] और http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (ईएआर अनुभाग 740.13(e)) यदि "आपका एन्क्रिप्शन स्रोत कोड ईमेल अटैचमेंट के रूप में सेवा करने के लिए बहुत बड़ा है", तो वे इसके बजाय इसे फैक्स द्वारा प्राप्त करने में प्रसन्न हैं; उम्मीद है कि आपके पास एक सस्ती लंबी दूरी की योजना है।
परिवर्तनों के लिए हमारा पसंदीदा प्रारूप "diff -u" आउटपुट है। आप इसे इस तरह उत्पन्न कर सकते हैं: