以前,git 儲存庫包含doc/crypt.pdf
以取得詳細文件。這已更改,該檔案現在只能從相應版本的 tarball 或頁面 https://github.com/libtom/libtomcrypt/releases 中取得。
掌握:
發展:
掌握:
發展:
API/ABI 變更:檢查此處
如果您想提交補丁,請從開發中分支出來。
如果包含測試和文檔,補丁整合將會更快。
請在單獨的提交中更新 makefile。要更新它們,只需執行updatemakes.sh
腳本即可。
如果您有更大的事情要提交,請隨時與我們聯繫。然後我們可以為您提供對此儲存庫的寫入權限,以便您可以基於此儲存庫開啟您的PR,並且我們可以更輕鬆地遵循我們正在使用的rebase-before-merge 方法(甚至可以自己進行rebase )。
我們使用 Pull Request 審查來確保程式碼與現有程式碼庫一致。
請查看此處以了解該方法。
請注意,除了master和development之外的所有分支都可以並且將會被強制推送、重新建立基礎和/或刪除!
如果您想依賴這樣一個不穩定的分支,請建立您自己的此儲存庫的分支,以確保不會出現任何問題。
預設情況下,該程式庫以(或多或少取決於您的需求)最佳方式建立其整個功能集(除了katja
)。
如果您想縮減庫的功能,可以使用許多配置選項。
請查看src/headers/tomcrypt_custom.h
以了解所有可用的設定選項。
以下列表是可用但最常需要的配置開關的一小部分。
旗幟 | 行為 |
---|---|
LTC_NO_TEST | 從庫中刪除所有演算法自測試 |
LTC_NO_FILE | 刪除所有需要預先定義FILE 資料類型的 API 函數(主要對嵌入式目標有用) |
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 | 用於 MS Windows 上的 mingw 編譯器 |
makefile.msvc | 用於 MS Windows 上的 MSVC 編譯器 |
libtomcrypt_VS2008.sln | 適用於 MS Windows 的 VisualStudio 2008 項目 |
makefile
提供了多個要建置的目標(VS 專案除外)。以下列表並未聲稱是完整的。可用於所有makefile
變體。
目標 | 應用 |
---|---|
空目標/未給出 | cf 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
存在上表中所述的多個安裝make 目標。
這些目標支援標準方法(請參閱 [GNU]、[FreeBSD])透過下列變數集修改安裝路徑:
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
整個變數集僅在makefile
、 makefile.shared
和makefile.unix
中支援。
如果您必須使用其他 makefile 之一,請檢查該檔案支援哪些變數。
您要將靜態庫安裝到預設路徑
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 進行建置的更多詳細信息,請參閱開發人員文件。