Libressl เป็นส้อมของ OpenSSL 1.0.1G ที่พัฒนาโดยโครงการ OpenBSD เป้าหมายของเราคือการปรับปรุง codebase ปรับปรุงความปลอดภัยและใช้กระบวนการพัฒนาแนวปฏิบัติที่ดีที่สุดจาก OpenBSD
Libressl ให้ OpenSSL 1.1 API OpenSSL 3 API ไม่ได้รับการสนับสนุนในปัจจุบัน ความไม่ลงรอยกันระหว่างโครงการมีอยู่และไม่สามารถหลีกเลี่ยงได้เนื่องจากทั้งคู่วิวัฒนาการด้วยเป้าหมายและลำดับความสำคัญที่แตกต่างกัน ความไม่ลงรอยกันที่สำคัญจะได้รับการแก้ไขหากเป็นไปได้และตราบใดที่พวกเขาไม่ได้เป็นอันตรายต่อเป้าหมายของ Libressl เกี่ยวกับความเรียบง่ายความปลอดภัยและความมีสติ เราไม่ได้เพิ่มคุณสมบัติใหม่ Ciphers และ API โดยไม่มีเหตุผลที่มั่นคงและกำหนดให้รหัสใหม่สะอาดและมีคุณภาพสูง
Libressl ไม่เข้ากันได้กับการเปิดตัว OpenSSL หรือจำเป็นต้องมีการเผยแพร่ก่อนหน้านี้ของ Libressl คุณจะต้องเชื่อมโยงโปรแกรมของคุณไปยัง Libressl เพื่อใช้งานเช่นเดียวกับการย้ายระหว่าง OpenSSL รุ่นใหญ่ หมายเลขเวอร์ชันไลบรารีที่ติดตั้งของ Libressl จะเพิ่มขึ้นเป็นบัญชีสำหรับการเปลี่ยนแปลง ABI และ API
ในขณะที่การพัฒนาเป็นหลักและใช้ประโยชน์จาก APIs ที่มีอยู่ใน OpenBSD โครงการ Libressl Portable พยายามที่จะให้ทางเลือกในการทำงานสำหรับระบบปฏิบัติการอื่น ๆ และช่วยในการปรับปรุงการใช้งานระบบปฏิบัติการในระบบปฏิบัติการหากเป็นไปได้
ในช่วงเวลาของการเขียนนี้ Libressl เป็นที่รู้จักกันในการสร้างและทำงาน:
Libressl ยังรองรับสภาพแวดล้อมของ Windows ต่อไปนี้:
Tarballs รีลีสอย่างเป็นทางการมีให้บริการที่ OpenBSD Mirror ในย่านที่เป็นมิตรของคุณในไดเรกทอรี Libressl แม้ว่าเราจะแนะนำให้คุณใช้กระจก
เฟรมเวิร์ก Libressl Portable Build ยังสะท้อนอยู่ใน GitHub
โปรดรายงานข้อบกพร่องไปยังรายการโทรทัศน์สาธารณะ @openbsd.org หรือไปยังตัวติดตามปัญหา 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 เพื่อเตรียม tarball
เมื่อคุณเตรียมแผนผังต้นทางให้เรียกใช้คำสั่งเหล่านี้เพื่อสร้างและติดตั้ง:
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 (1) |
OPENSSLDIR | ว่างเปล่า | ตั้งค่าไดเรกทอรี OpenSSL เริ่มต้น สามารถระบุได้จากบรรทัดคำสั่งโดยใช้-DOPENSSLDIR=<dirname> |
ตั้งค่าตัวแปรสภาพแวดล้อม UNIX_STD เป็น 2003 ก่อนที่จะเรียกใช้ configure เพื่อสร้างด้วยคอมไพเลอร์ HP C/AC ++ ดูหน้า "มาตรฐาน (5)" สำหรับรายละเอียดเพิ่มเติม
export UNIX_STD=2003
./configure
makeLibressl สร้างกับ MingW-W64 เวอร์ชันล่าสุดที่ค่อนข้างจะไม่สับสนกับโครงการ Mingw.org ดั้งเดิม MINGW-W64 3.2 หรือใหม่กว่าควรทำงาน ดู readme.mingw.md สำหรับข้อมูลเพิ่มเติม
เมื่อกำหนดค่า Libressl สำหรับใช้กับ emscripten ตรวจสอบให้แน่ใจว่าได้เตรียม emcmake ให้กับคำสั่ง cmake configuration ของคุณ เมื่อกำหนดค่าแล้วคุณสามารถดำเนินการตามคำสั่ง cmake ตามปกติของคุณ ตัวอย่างเช่น:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure สร้างโฟลเดอร์ใหม่ในรูทโปรเจ็กต์ของคุณ (โดยที่ไฟล์ CMakeLists.txt หลักของคุณอยู่) เรียกว่า cmake คัดลอกไฟล์ FindLibreSSL.cmake ไปยังโฟลเดอร์นั้นและเพิ่มบรรทัดต่อไปนี้ไปยัง cmakelists 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 และหากพบว่าจะให้คุณใช้ 3 อินเทอร์เฟซต่อไปนี้ในไฟล์ CMakeLists.txt ของคุณ:
หากคุณต้องการใช้ไลบรารี Libressl TLS ในโปรแกรมทดสอบของคุณให้รวมเช่น SO (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 หากระบบของคุณติดตั้งไว้ในตำแหน่งอื่นหรือคุณได้วางไว้ในตำแหน่งอื่นคุณสามารถตั้งค่าตัวแปร cmake LIBRESSL_ROOT_DIR ไปยังเส้นทางที่ถูกต้องเพื่อช่วย CMake ค้นหาไลบรารี
การวางไฟล์ไลบรารีใน C:/Program Files/LibreSSL/lib และไฟล์รวมในไฟล์ C:/Program Files/LibreSSL/include ควรให้ CMake พบพวกเขาโดยอัตโนมัติ แต่ขอแนะนำให้คุณใช้ CMake-Gui เพื่อตั้งค่าเส้นทาง สะดวกกว่าเพราะคุณสามารถมีไฟล์ในโฟลเดอร์ใดก็ได้ที่คุณเลือก