
لقطة من كود مصدر OpenSSL 1.0.1g، توفر 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: التشفير العام وأدوات X.509 v1/v3 المطلوبة بواسطة SSL/TLS ولكنها ليست جزءًا منطقيًا منه فعليًا. تتضمن إجراءات لما يلي:
التشفيرات
libdes - حزمة تشفير DES الخاصة بـ EAY، والتي كانت متداولة
على الإنترنت لعدة سنوات، ثم أعاد ترخيصها
كجزء من SSLeay. تتضمن 15 'وضعًا/تنويعًا'
من DES (إصدارات 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 وهو تجريد إدخال/إخراج
بسيط غير محظور. الطرق المدعومة حاليًا هي واصفات الملفات،
والمآخذ (sockets)، وقبول المآخذ، واتصال المآخذ، ومخزن الذاكرة
المؤقت، والتخزين المؤقت، وعميل/خادم SSL، ومؤشر الملف، والتشفير،
والملخص، واختبار عدم الحظر، وnull.
هياكل البيانات
نظام تجزئة متنامٍ ديناميكيًا
مكدس بسيط.
محمّل إعدادات يستخدم تنسيقًا مشابهًا لملفات MS .ini.
openssl: أداة سطر أوامر يمكن استخدامها من أجل: إنشاء معاملات مفاتيح RSA وDH وDSA إنشاء شهادات X.509 وCSRs وCRLs حساب ملخصات الرسائل التشفير وفك التشفير باستخدام التشفيرات اختبارات عميل وخادم 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'
اسم نظام التشغيل، الإصدار، منصة الأجهزة
تفاصيل المترجم (الاسم، الإصدار)
- تفاصيل التطبيق (الاسم، الإصدار)
- وصف المشكلة (الخطوات التي ستعيد إنتاج المشكلة، إذا كانت معروفة)
- تتبع المكدس (إذا كان التطبيق يفرغ النواة)
أبلغ عن الخطأ إلى مشروع 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 للحصول على معلومات حول الاشتراك). إذا كنت ترغب في تقديم تصحيح (patch)، فأرسله إلى [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 [كذا] و http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) للتفاصيل. إذا كان "رمز مصدر التشفير الخاص بك كبيرًا جدًا بحيث لا يمكن استخدامه كمرفق بريد إلكتروني"، فسيكونون سعداء باستلامه بالفاكس بدلاً من ذلك؛ نأمل أن يكون لديك خطة اتصالات بعيدة المدى رخيصة.
التنسيق المفضل لدينا للتغييرات هو مخرجات "diff -u". يمكنك توليده هكذا: