Libressl هو شوكة من OpenSSL 1.0.1g تم تطويرها بواسطة مشروع OpenBSD. هدفنا هو تحديث قاعدة البيانات ، وتحسين الأمن ، وتطبيق أفضل عمليات تطوير الممارسات من OpenBSD.
يوفر Libressl الكثير من API OpenSSL 1.1. لا يتم دعم API OpenSSL 3 حاليًا. لا يمكن تجنب عدم التوافق بين المشاريع ولا مفر منه لأن كلاهما يتطور بأهداف وأولويات مختلفة. سيتم معالجة عدم التوافق المهمة إن أمكن وطالما أنها ليست ضارة للغاية بأهداف ليبريل للبساطة والأمن والعقلانية. نحن لا نضيف ميزات جديدة وأصفار و API دون سبب قوي ونطلب أن تكون الكود الجديد نظيفًا وجودة عالية.
Libressl لا يتوافق مع أي إصدار من OpenSSL ، أو بالضرورة إصدارات سابقة من libressl. ستحتاج إلى إعادة توليد برامجك إلى libressl من أجل استخدامها ، كما هو الحال في الانتقال بين الإصدارات الرئيسية من OpenSSL. يتم زيادة أرقام إصدار مكتبة Libressl المثبتة لحساب تغييرات ABI و API.
على الرغم من تطوير واجهات برمجة التطبيقات (APIs) المتوفرة في Open و Adventive في Open ، فإن مشروع Libressl المحمول يحاول توفير بدائل عمل لأنظمة التشغيل الأخرى ، ويساعد في تحسين تطبيقات نظام التشغيل المحلي عند الإمكان.
في وقت كتابة هذا التقرير ، من المعروف أن Libressl يبني والعمل على:
يدعم Libressl أيضًا بيئات Windows التالية:
تتوفر كرات القطران الرسمية في حيك الحي OpenBsd Mirror في دليل Libressl ، على الرغم من أننا نقترح أن تستخدم مرآة.
ويعكس إطار الإنشاء المحمول libressl أيضًا على جيثب.
يرجى الإبلاغ عن الأخطاء إما إلى القائمة البريدية [email protected] العامة ، أو إلى متتبع قضية Github
يمكن إرسال نقاط الضعف الشديدة أو الأخطاء التي تتطلب التنسيق مع OpenSSL إلى الفريق الأساسي على [email protected].
إذا قمت بفحص هذا المصدر باستخدام GIT ، أو قمت بتنزيل Tarball من GitHub ، اتبع هذه الخطوات الأولية لإعداد شجرة المصدر للبناء. ملاحظة: سيفشل بناءك إذا لم تتبع هذه التعليمات! إذا لم تتمكن من اتباع هذه التعليمات أو لا يمكنك تلبية هذه المتطلبات الأساسية ، فيرجى تنزيل توزيع الإصدار الرسمي من https://ftp.openbsd.org/pub/openbsd/libressl/ بدلاً من ذلك. يُنصح بشدة باستخدام الإصدارات الرسمية إذا لم تكن مطورًا.
./autogen.sh لإعداد شجرة المصدر للبناء. بمجرد إعداد شجرة المصدر ، قم بتشغيل هذه الأوامر للبناء والتثبيت:
./configure # see ./configure --help for configuration options
make check # runs builtin unit tests
make install # set DESTDIR= to install to an alternate location بدلاً من ذلك ، من الممكن تشغيل ./dist.sh
بمجرد إعداد شجرة المصدر ، قم بتشغيل هذه الأوامر للبناء والتثبيت:
mkdir build
cd build
cmake ..
make
make testللبناء الأسرع ، يمكنك استخدام النينجا:
mkdir build-ninja
cd build-ninja
cmake -G " Ninja " ..
ninja
ninja testأو نظام بناء مدعوم آخر مثل Visual Studio:
mkdir build-vs2022
cd build-vs2022
cmake -G " Visual Studio 17 2022 " ..| اسم الخيار | تقصير | وصف |
|---|---|---|
LIBRESSL_SKIP_INSTALL | OFF | يسمح تخطي قواعد التثبيت (). يمكن تحديدها من سطر الأوامر باستخدام-DLIBRESSL_SKIP_INSTALL=ON |
LIBRESSL_APPS | ON | يسمح بتخطي تطبيقات التطبيق. التطبيقات مطلوبة لتشغيل الاختبارات |
LIBRESSL_TESTS | ON | يسمح تخطي الاختبارات. الاختبارات متوفرة فقط في بنيات ثابتة |
BUILD_SHARED_LIBS | OFF | خيار Cmake لبناء المكتبات المشتركة. |
ENABLE_ASM | ON | يبني التجميع القواعد المحسنة. |
ENABLE_EXTRATESTS | OFF | قم بتمكين اختبارات إضافية قد تكون غير موثوقة على بعض المنصات |
ENABLE_NC | OFF | تمكين تثبيت NC-tls-tls (1) |
OPENSSLDIR | فارغ | تعيين الدليل الافتراضي OpenSSL. يمكن تحديدها من سطر الأوامر باستخدام-DOPENSSLDIR=<dirname> |
قم بتعيين متغير بيئة UNIX_STD حتى 2003 قبل تشغيل configure من أجل الإنشاء باستخدام برنامج التحويل البرمجي HP C/AC ++. انظر صفحة "المعايير (5)" "لمزيد من التفاصيل.
export UNIX_STD=2003
./configure
makeيبني Libressl ضد إصدارات حديثة نسبيًا من Mingw-W64 ، لا ينبغي الخلط بينها وبين مشروع Mingw.org الأصلي. Mingw-W64 3.2 أو في وقت لاحق يجب أن يعمل. انظر readme.mingw.md لمزيد من المعلومات.
عند تكوين libressl للاستخدام مع emscripten ، تأكد من إعداد emcmake إلى أمر تكوين cmake الخاص بك. بمجرد تكوينه ، يمكنك المتابعة مع أوامر cmake المعتادة. على سبيل المثال:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure قم بعمل مجلد جديد في جذر المشروع الخاص بك (حيث يوجد ملف CMakeLists.txt الرئيسي الخاص بك) يسمى Cmake. انسخ ملف FindLibreSSL.cmake إلى هذا المجلد ، وأضف السطر التالي إلى CMakeLists.txt الرئيسي الخاص بك:
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " ) بعد خط add_executable أو add_library في ملف CMakeLists.txt إضافة ما يلي:
find_package (LibreSSL REQUIRED) سيخبر Cmake العثور على libressl وإذا تم العثور عليه سيسمح لك باستخدام الواجهات الثلاثة التالية في ملف CMakeLists.txt الخاص بك:
إذا كنت على سبيل المثال تريد استخدام مكتبة Libressl TLS في برنامج الاختبار الخاص بك ، قم بتضمينها مثل SS (SSL و Crypto مطلوبة بواسطة TLS وإدراجها تلقائيًا أيضًا):
target_link_libraries ( test LibreSSL::TLS)مثال كامل:
cmake_minimum_required ( VERSION 3.10.0)
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " )
project ( test )
add_executable ( test Main.cpp)
find_package (LibreSSL REQUIRED)
target_link_libraries ( test LibreSSL::TLS) باتباع الدليل في الأقسام المذكورة أعلاه لتجميع libressl باستخدام Make and Running sudo make install سيقوم بتثبيت libressl على /usr/local/ folder ، وسيتم العثور عليه تلقائيًا بواسطة find_package. إذا قام نظامك بتثبيته إلى موقع آخر ، أو قمت بوضعها بنفسك في موقع مختلف ، فيمكنك تعيين LIBRESSL_ROOT_DIR المتغير CMake على المسار الصحيح ، للمساعدة في العثور على المكتبة.
يجب وضع ملفات المكتبة في C:/Program Files/LibreSSL/lib وتضمين ملفات في C:/Program Files/LibreSSL/include السماح cmake بالعثور عليها تلقائيًا ، ولكن يوصى باستخدام cmake-gui لتعيين المسارات. إنه أكثر ملاءمة حيث يمكنك الحصول على الملفات في أي مجلد تختاره.