في السابق، كان مستودع git يحتوي على doc/crypt.pdf
للحصول على وثائق مفصلة. تم تغيير هذا والملف متاح الآن فقط من tarball للإصدار المناسب أو من الصفحة https://github.com/libtom/libtomcrypt/releases .
يتقن:
يطور:
يتقن:
يطور:
تغييرات API/ABI: تحقق هنا
يرجى التفرع من التطوير إذا كنت تريد إرسال التصحيح.
سيكون تكامل التصحيح أسرع إذا تم تضمين الاختبارات والوثائق.
الرجاء تحديث ملفات makefiles في التزام منفصل. لتحديثها، قم ببساطة بتشغيل البرنامج النصي updatemakes.sh
.
إذا كان لديك شيء أكبر لتقديمه، فلا تتردد في الاتصال بنا مسبقًا. ثم يمكننا أن نمنحك حق الوصول للكتابة إلى هذا الريبو، حتى تتمكن من فتح العلاقات العامة الخاصة بك بناءً على هذا الريبو ويمكننا بسهولة اتباع نهج إعادة التأسيس قبل الدمج الذي نستخدمه (أو حتى إجراء إعادة التأسيس بأنفسنا).
نحن نستخدم مراجعات طلب السحب للتأكد من أن الكود يتماشى مع قاعدة الكود الموجودة.
يرجى إلقاء نظرة هنا للحصول على فكرة عن هذا النهج.
يرجى العلم أن جميع الفروع إلى جانب الماجستير والتطوير يمكن أن يتم فرضها بالقوة و/أو إعادة تأسيسها و/أو إزالتها!
إذا كنت تريد الاعتماد على مثل هذا الفرع غير المستقر ، فقم بإنشاء شوكة خاصة بك لهذا المستودع للتأكد من عدم انقطاع أي شيء عنك.
بشكل افتراضي، تقوم المكتبة ببناء مجموعة الميزات الخاصة بها بالكامل (إلى جانب 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
المتوفرة. يرجى اختيار المنتج الذي يناسبك.
com.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 راجع |
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 في وثائق المطور.