ก่อนหน้านี้ที่เก็บ git มี doc/crypt.pdf
สำหรับเอกสารประกอบโดยละเอียด สิ่งนี้มีการเปลี่ยนแปลงและตอนนี้ไฟล์สามารถใช้งานได้จาก tarball ของเวอร์ชันที่เหมาะสมหรือจากหน้า https://github.com/libtom/libtomcrypt/releases เท่านั้น
ผู้เชี่ยวชาญ:
พัฒนา:
ผู้เชี่ยวชาญ:
พัฒนา:
การเปลี่ยนแปลง API/ABI: ตรวจสอบที่นี่
โปรดแยกสาขาออกจากการพัฒนาหากคุณต้องการส่งแพตช์
การรวมแพตช์จะเร็วขึ้นหากมีการทดสอบและเอกสารประกอบรวมอยู่ด้วย
โปรดอัปเดต makefiles ในคอมมิตแยกต่างหาก หากต้องการอัปเดต เพียงเรียกใช้สคริปต์ updatemakes.sh
หากคุณมีสิ่งที่ใหญ่กว่าที่จะส่ง โปรดติดต่อเราล่วงหน้า จากนั้นเราสามารถให้สิทธิ์การเขียนแก่คุณใน Repo นี้ เพื่อให้คุณสามารถเปิด PR ของคุณตาม Repo นี้ และเราสามารถปฏิบัติตามแนวทางการรีเบสก่อนการรวมที่เราใช้อยู่ได้ง่ายขึ้น (หรือแม้แต่ทำการรีบูตด้วยตัวเราเอง)
เรากำลังใช้การตรวจสอบคำขอดึงเพื่อให้แน่ใจว่าโค้ดสอดคล้องกับฐานโค้ดที่มีอยู่
โปรดดูที่นี่เพื่อรับแนวคิดเกี่ยวกับแนวทาง
โปรดทราบว่าทุกสาขานอกเหนือจาก master และ พัฒนา สามารถ และ จะ ถูกบังคับ ปรับฐานใหม่ และ/หรือลบออก!
หากคุณต้องการพึ่งพา Branch ที่ไม่เสถียร เช่นนี้ ให้สร้าง Fork ของคุณเองสำหรับ Repository นี้เพื่อให้แน่ใจว่าจะไม่มีอะไรเสียหายสำหรับคุณ
ตามค่าเริ่มต้น ไลบรารีจะสร้างชุดคุณลักษณะทั้งหมด (นอกเหนือจาก katja
) ในวิธีที่เหมาะสมที่สุด (ขึ้นอยู่กับความต้องการของคุณไม่มากก็น้อย)
มีตัวเลือกการกำหนดค่ามากมายให้เลือกหากคุณต้องการลดฟังก์ชันการทำงานของไลบรารี
โปรดดูที่ src/headers/tomcrypt_custom.h
สำหรับตัวเลือกการกำหนดค่าที่มีอยู่ทั้งหมด
รายการต่อไปนี้เป็นส่วนเล็กๆ ของสวิตช์การกำหนดค่าที่พร้อมใช้งาน แต่เป็นสวิตช์การกำหนดค่าที่จำเป็นบ่อยที่สุด
ธง | พฤติกรรม |
---|---|
LTC_NO_TEST | ลบการทดสอบตัวเองของอัลกอริทึมทั้งหมดออกจากไลบรารี |
LTC_NO_FILE | ลบฟังก์ชัน API ทั้งหมดที่ต้องใช้ประเภทข้อมูล FILE ที่กำหนดไว้ล่วงหน้า (ส่วนใหญ่มีประโยชน์สำหรับเป้าหมายที่ฝัง) |
GMP_DESC | เปิดใช้งาน gmp เป็นผู้ให้บริการ MPI *1 |
LTM_DESC | เปิดใช้งาน libtommath ในฐานะผู้ให้บริการ MPI *1 |
TFM_DESC | เปิดใช้งาน tomsfastmath ในฐานะผู้ให้บริการ MPI *1 *2 |
USE_GMP | ใช้ gmp เป็นผู้ให้บริการ MPI เมื่อสร้างไบนารี *3 |
USE_LTM | ใช้ libtommath เป็นผู้ให้บริการ MPI เมื่อสร้างไบนารี *3 |
USE_TFM | ใช้ tomsfastmath เป็นผู้ให้บริการ MPI เมื่อสร้างไบนารี *3 |
*1 เป็นไปได้ที่จะสร้างห้องสมุดโดยเทียบกับผู้ให้บริการ MPI ทั้งหมดพร้อมกัน และเลือกเมื่อถึงเวลาเริ่มต้นว่าควรใช้ห้องสมุดคณิตศาสตร์ใด
*2 โปรดทราบว่า tomsfastmath
มีข้อจำกัดของขนาดสูงสุดคงที่ของ MPI
*3 รองรับเพียงอันเดียวในเวลานี้ & สิ่งนี้จำเป็นเฉพาะเมื่อสร้างไบนารีเท่านั้น ไม่ใช่เมื่อสร้างไลบรารีเอง
มี makefile
ให้มาหลายตัว โปรดเลือกอันที่เหมาะกับคุณที่สุด
เมคไฟล์ | กรณีการใช้งาน |
---|---|
makefile | สร้างไลบรารีแบบคงที่ (จำเป็นต้องมี GNU Make) |
makefile.shared | สร้างไลบรารีที่ใช้ร่วมกัน (และแบบคงที่) (จำเป็นต้องมี GNU Make) |
makefile.unix | สำหรับแพลตฟอร์ม UNIX ที่ผิดปกติ หรือหากคุณไม่มี GNU Make |
makefile.mingw | เพื่อใช้งานร่วมกับคอมไพเลอร์ mingw บน MS Windows |
makefile.msvc | เพื่อใช้งานร่วมกับคอมไพเลอร์ MSVC บน MS Windows |
libtomcrypt_VS2008.sln | โครงการ VisualStudio 2008 สำหรับ MS Windows |
makefile
มีเป้าหมายหลายประการในการสร้าง (ไม่รวมโครงการ VS) รายการต่อไปนี้ไม่ได้อ้างว่าเป็นรายการที่สมบูรณ์ เพื่อให้พร้อมใช้งานในทุกรูป makefile
เป้า | แอปพลิเคชัน |
---|---|
เป้าหมายว่างเปล่า /ไม่มีให้ | library cf |
library | สร้างเฉพาะห้องสมุดเท่านั้น |
hashsum | สร้างไบนารี hashsum คล้ายกับ shasum แต่รองรับอัลกอริทึมแฮชทั้งหมดที่รวมอยู่ในไลบรารี *4 |
crypt | สร้างไบนารี crypt โดยใช้สิ่งที่คล้ายกับ crypt *4 |
sizes | สร้างไบนารี sizes พิมพ์ขนาดข้อมูลภายในทั้งหมดตามคำร้องขอ *4 |
constants | สร้างไบนารี constants พิมพ์ค่าคงที่ภายในทั้งหมดในการเรียกใช้ *4 |
openssl-enc | สร้างไบนารี openssl-enc ซึ่งเข้ากันได้กับ openssl enc *4 *5 ไม่มากก็น้อย |
test | สร้างไบนารี test ซึ่งจะรันการทดสอบตัวเองของอัลกอริทึมทั้งหมด + การทดสอบเพิ่มเติมบางรายการ *4 |
timing | สร้าง timing ไบนารี ซึ่งสามารถใช้เพื่อวัดการกำหนดเวลาสำหรับอัลกอริทึมและโหมด *4 |
bins | สร้าง hashsum *4 |
all_test | สร้าง test , hashsum , crypt , small , tv_gen , sizes และ constants *4 |
docs | สร้างเอกสารประกอบสำหรับนักพัฒนา doc/crypt.pdf |
install | ติดตั้ง library และไฟล์ส่วนหัว *7 *8 |
install_bins | ติดตั้งไบนารีที่สร้างโดย bins เป้าหมาย *7 *8 |
install_docs | ติดตั้งเอกสารที่สร้างโดยเป้าหมาย docs *7 *8 |
install_test | ติดตั้งแอปทดสอบที่สร้างโดยเป้าหมาย test *7 *8 |
install_all | ติดตั้งทุกอย่าง (เช่น library , bins , docs และ test ) *8 |
uninstall | ถอนการติดตั้ง library และไฟล์ส่วนหัว |
*4 สร้าง library
ด้วย
*5 บิวด์ที่ใช้งานไม่ได้ในการกำหนดค่าบางอย่าง ดังนั้นจึงไม่ได้สร้างขึ้นโดยค่าเริ่มต้น
*7 ยังสร้างส่วนที่จำเป็นก่อนทำการติดตั้ง
*8 โปรดดูที่ส่วน 'การติดตั้ง' ของไฟล์นี้ด้วย
คุณต้องการสร้างไลบรารีเป็นไลบรารีแบบคงที่
make
คุณต้องการสร้างห้องสมุดเป็นไลบรารีที่ใช้ร่วมกัน
make -f makefile.shared
คุณได้ติดตั้ง libtommath
บนระบบของคุณและต้องการสร้างไลบรารีแบบคงที่และไบนารี test
เพื่อรันการทดสอบตัวเอง
make CFLAGS="-DUSE_LTM -DLTM_DESC" EXTRALIBS="-ltommath" test
คุณได้ติดตั้ง tomsfastmath
บนระบบของคุณและต้องการสร้างไลบรารีที่ใช้ร่วมกันและไบนารีทั้งหมด
make -f makefile.shared CFLAGS="-DUSE_TFM -DTFM_DESC" EXTRALIBS="-ltfm" all demos
คุณมี gmp
, libtommath
และ tomsfastmath
ติดตั้งอยู่บนระบบของคุณ และต้องการสร้างไลบรารีแบบคงที่และไบนารี่ timing
เพื่อวัดการกำหนดเวลาเทียบกับ gmp
make CFLAGS="-DUSE_GMP -DGMP_DESC -DLTM_DESC -DTFM_DESC" EXTRALIBS="-lgmp" timing
หากคุณมี libtommath
ในตำแหน่งที่ไม่ได้มาตรฐาน:
make CFLAGS="-DUSE_LTM -DLTM_DESC -I/opt/devel/ltm" EXTRALIBS="/opt/devel/ltm/libtommath.a" all
คุณต้องการเปิดใช้งานการสนับสนุน AES-NI:
make CFLAGS=-DLTC_AES_NI
มีเป้าหมายการสร้าง การติดตั้ง หลายรายการซึ่งอธิบายไว้ในตารางด้านบน
เป้าหมายเหล่านี้สนับสนุนวิธีมาตรฐาน (cf [GNU], [FreeBSD]) เพื่อแก้ไขเส้นทางการติดตั้งผ่านชุดตัวแปรต่อไปนี้:
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
ชุดตัวแปรทั้งหมดได้รับการสนับสนุนใน makefile
, makefile.shared
และ makefile.unix
เท่านั้น
ในกรณีที่คุณต้องใช้ makefiles อื่น ให้ตรวจสอบไฟล์ที่สนับสนุนตัวแปร
คุณต้องการติดตั้งไลบรารีแบบคงที่ไปยังเส้นทางเริ่มต้น
make install
คุณต้องการติดตั้งไลบรารีแบบแบ่งใช้ไปยังเส้นทางพิเศษและใช้งานจากเส้นทางนี้
make -f makefile.shared PREFIX=/opt/special/path
ดูเอกสารสำหรับนักพัฒนา [GNU] หรือ [FreeBSD] เพื่อรับคำอธิบายโดยละเอียดของตัวแปรทั้งหมด
โปรเจ็กต์ให้การสนับสนุนสำหรับระบบการสร้าง CMake
git clone https://github.com/libtom/libtomcrypt.git
mkdir -p libtomcrypt/build
cd libtomcrypt/build
cmake ..
make -j$(nproc)
รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างด้วย CMake สามารถพบได้ในเอกสารประกอบสำหรับนักพัฒนา