Sebelumnya repositori git berisi doc/crypt.pdf
untuk dokumentasi detail. Ini telah diubah dan file sekarang hanya tersedia dari tarball versi yang sesuai atau dari halaman https://github.com/libtom/libtomcrypt/releases.
menguasai:
mengembangkan:
menguasai:
mengembangkan:
Perubahan API/ABI: periksa di sini
Silakan keluar dari pengembangan jika Anda ingin mengirimkan tambalan.
Integrasi patch akan lebih cepat jika pengujian dan dokumentasi disertakan.
Harap perbarui makefile dalam komit terpisah. Untuk memperbaruinya cukup jalankan skrip updatemakes.sh
.
Jika Anda memiliki sesuatu yang lebih besar untuk dikirimkan, jangan ragu untuk menghubungi kami terlebih dahulu. Kemudian kami dapat memberikan Anda akses tulis ke repo ini, sehingga Anda dapat membuka PR Anda berdasarkan repo ini dan kami dapat dengan lebih mudah mengikuti pendekatan rebase-sebelum-penggabungan yang kami gunakan (atau bahkan melakukan rebase sendiri).
Kami menggunakan tinjauan Permintaan Tarik untuk memastikan bahwa kode tersebut sejalan dengan basis kode yang ada.
Silakan lihat di sini untuk mendapatkan gambaran tentang pendekatan ini.
Perlu diketahui, bahwa semua cabang selain master dan pengembangan dapat dan akan didorong secara paksa, diubah basisnya, dan/atau dihapus!
Jika Anda ingin mengandalkan cabang yang tidak stabil , buatlah fork Anda sendiri dari repositori ini untuk memastikan tidak ada yang rusak untuk Anda.
Secara default, perpustakaan membangun seluruh rangkaian fiturnya (selain katja
) dengan cara yang optimal (tergantung pada kebutuhan Anda).
Ada banyak opsi konfigurasi yang tersedia jika Anda ingin mengurangi fungsionalitas perpustakaan.
Silakan lihat src/headers/tomcrypt_custom.h
untuk semua opsi konfigurasi yang tersedia.
Daftar berikut ini adalah sebagian kecil dari switch konfigurasi yang tersedia, namun paling sering dibutuhkan.
Bendera | Perilaku |
---|---|
LTC_NO_TEST | Hapus semua tes mandiri algoritma dari perpustakaan |
LTC_NO_FILE | Hapus semua fungsi API yang memerlukan tipe data FILE yang telah ditentukan sebelumnya (sebagian besar berguna untuk target yang disematkan) |
GMP_DESC | aktifkan gmp sebagai penyedia MPI *1 |
LTM_DESC | aktifkan libtommath sebagai penyedia MPI *1 |
TFM_DESC | aktifkan tomsfastmath sebagai penyedia MPI *1 *2 |
USE_GMP | gunakan gmp sebagai penyedia MPI saat membuat binari *3 |
USE_LTM | gunakan libtommath sebagai penyedia MPI saat membuat binari *3 |
USE_TFM | gunakan tomsfastmath sebagai penyedia MPI saat membuat binari *3 |
*1 Dimungkinkan untuk membangun perpustakaan terhadap semua penyedia MPI secara paralel dan memilih pada waktu startup perpustakaan matematika mana yang harus digunakan.
*2 Perlu diketahui bahwa tomsfastmath
memiliki batasan ukuran maksimal MPI yang tetap.
*3 Hanya satu yang didukung pada saat itu & ini hanya diperlukan saat membangun binari, bukan saat membangun perpustakaan itu sendiri.
Ada beberapa makefile
yang disediakan. Silakan pilih salah satu yang paling cocok untuk Anda.
makefile | kasus penggunaan |
---|---|
makefile | membangun perpustakaan statis (diperlukan GNU Make) |
makefile.shared | membangun perpustakaan bersama (dan statis) (diperlukan GNU Make) |
makefile.unix | untuk platform UNIX yang tidak biasa, atau jika Anda tidak memiliki GNU Make |
makefile.mingw | untuk digunakan dengan kompiler mingw di MS Windows |
makefile.msvc | untuk digunakan dengan kompiler MSVC pada MS Windows |
libtomcrypt_VS2008.sln | Proyek VisualStudio 2008 untuk MS Windows |
makefile
menyediakan beberapa target untuk dibangun (tidak termasuk proyek VS). Daftar berikut tidak mengklaim sebagai resp lengkap. untuk tersedia di semua varian makefile
.
target | aplikasi |
---|---|
target kosong / tidak ada yang diberikan | lih library |
library | hanya membangun perpustakaan |
hashsum | membangun biner hashsum , mirip dengan shasum , tetapi dengan dukungan untuk semua algoritma hash yang disertakan dalam perpustakaan *4 |
crypt | membangun biner crypt , mengimplementasikan sesuatu yang mirip dengan crypt *4 |
sizes | membangun sizes biner, mencetak semua ukuran data internal pada pemanggilan *4 |
constants | membangun biner constants , mencetak semua konstanta internal pada pemanggilan *4 |
openssl-enc | membangun biner openssl-enc , yang kurang lebih kompatibel dengan openssl enc *4 *5 |
test | membangun biner test , yang menjalankan semua pengujian mandiri algoritma + beberapa pengujian lanjutan *4 |
timing | membangun biner timing , yang dapat digunakan untuk mengukur pengaturan waktu untuk algoritma dan mode *4 |
bins | membangun hashsum *4 |
all_test | build test , hashsum , crypt , small , tv_gen , sizes & constants *4 |
docs | membuat dokumentasi pengembang doc/crypt.pdf |
install | menginstal library dan file header *7 *8 |
install_bins | menginstal biner yang dibuat oleh target bins *7 *8 |
install_docs | menginstal dokumentasi yang dibuat oleh target docs *7 *8 |
install_test | menginstal aplikasi pengujian yang dibuat oleh target test *7 *8 |
install_all | menginstal semuanya (yaitu library , bins , docs , dan test ) *8 |
uninstall | menghapus instalan file library dan header |
*4 juga membangun library
*5 build rusak di beberapa konfigurasi, oleh karena itu tidak dibuat secara default
*7 juga membuat artefak yang diperlukan sebelum menginstalnya
*8 lihat juga bagian 'Instalasi' pada file ini
Anda ingin membangun perpustakaan sebagai perpustakaan statis
make
Anda ingin membangun perpustakaan sebagai perpustakaan bersama
make -f makefile.shared
Anda telah menginstal libtommath
di sistem Anda dan ingin membangun perpustakaan statis dan biner test
untuk menjalankan pengujian mandiri.
make CFLAGS="-DUSE_LTM -DLTM_DESC" EXTRALIBS="-ltommath" test
Anda telah menginstal tomsfastmath
di sistem Anda dan ingin membangun perpustakaan bersama dan semua biner
make -f makefile.shared CFLAGS="-DUSE_TFM -DTFM_DESC" EXTRALIBS="-ltfm" all demos
Anda telah menginstal gmp
, libtommath
dan tomsfastmath
di sistem Anda dan ingin membangun perpustakaan statis dan biner timing
untuk mengukur pengaturan waktu terhadap gmp
.
make CFLAGS="-DUSE_GMP -DGMP_DESC -DLTM_DESC -DTFM_DESC" EXTRALIBS="-lgmp" timing
Jika Anda memiliki libtommath
di lokasi non-standar:
make CFLAGS="-DUSE_LTM -DLTM_DESC -I/opt/devel/ltm" EXTRALIBS="/opt/devel/ltm/libtommath.a" all
Anda ingin mengaktifkan dukungan AES-NI:
make CFLAGS=-DLTC_AES_NI
Terdapat beberapa target pemasangan yang dijelaskan pada tabel di atas.
Target ini mendukung cara standar (lihat [GNU], [FreeBSD]) untuk mengubah jalur instalasi melalui serangkaian variabel berikut:
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
Seluruh rangkaian variabel hanya didukung di makefile
, makefile.shared
dan makefile.unix
.
Jika Anda harus menggunakan salah satu makefile lain, periksa di file variabel mana yang didukung.
Anda ingin menginstal perpustakaan statis ke jalur default
make install
Anda ingin memasang perpustakaan bersama ke jalur khusus dan menggunakannya dari jalur ini
make -f makefile.shared PREFIX=/opt/special/path
Lihat dokumentasi pengembang, [GNU] atau [FreeBSD] untuk mendapatkan penjelasan rinci tentang semua variabel.
Proyek ini memberikan dukungan untuk sistem pembangunan CMake.
git clone https://github.com/libtom/libtomcrypt.git
mkdir -p libtomcrypt/build
cd libtomcrypt/build
cmake ..
make -j$(nproc)
Detail lebih lanjut seputar pembuatan dengan CMake dapat ditemukan di dokumentasi pengembang.