以前の git リポジトリには、詳細なドキュメントのdoc/crypt.pdf
含まれていました。これは変更され、ファイルは適切なバージョンの tarball またはページ https://github.com/libtom/libtomcrypt/releases からのみ利用できるようになりました。
マスター:
開発する:
マスター:
開発する:
API/ABI の変更: ここを確認してください
パッチを提出したい場合は、開発から分岐してください。
テストとドキュメントが含まれている場合、パッチの統合はより速くなります。
別のコミットで Makefile を更新してください。これらを更新するには、 updatemakes.sh
スクリプトを実行するだけです。
大きなサイズの提出物がある場合は、事前にお問い合わせください。その後、このリポジトリへの書き込みアクセスを付与できるため、このリポジトリに基づいて PR を開くことができ、使用しているマージ前リベースのアプローチに簡単に従うことができます (または自分でリベースを行うこともできます)。
私たちはプル リクエスト レビューを使用して、コードが既存のコード ベースと一致していることを確認しています。
アプローチ方法についてはこちらをご覧ください。
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 | バイナリのビルド時に MPI プロバイダとしてgmp 使用する*3 |
USE_LTM | バイナリビルド時にMPIプロバイダとしてlibtommath 使用*3 |
USE_TFM | バイナリのビルド時にtomsfastmath MPI プロバイダとして使用する*3 |
*1すべての MPI プロバイダーに対してライブラリを並行してビルドし、起動時にどの数学ライブラリを使用するかを選択することが可能です。
*2 tomsfastmath
は MPI の最大サイズが固定されているという制限があることに注意してください。
*3現時点では 1 つだけがサポートされており、これはバイナリをビルドする場合にのみ必要であり、ライブラリ自体をビルドする場合には必要ありません。
いくつかの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 | shasum に似たhashsum バイナリを構築しますが、ライブラリに含まれるすべてのハッシュアルゴリズムをサポートします*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 targetで作成したドキュメントをインストールします*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
インストールされており、 gmp
に対してタイミングを測定するための静的ライブラリとtiming
バイナリを構築したいと考えています。
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
上の表で説明されているインストールメイク ターゲットがいくつか存在します。
これらのターゲットは、次の変数セットを介してインストール パスを変更する標準的な方法 ([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 を使用したビルドの詳細については、開発者ドキュメントを参照してください。