이전에는 git 저장소에 자세한 문서화를 위한 doc/crypt.pdf
포함되어 있었습니다. 이는 변경되었으며 이제 해당 파일은 해당 버전의 tarball 또는 https://github.com/libtom/libtomcrypt/releases 페이지에서만 사용할 수 있습니다.
주인:
개발하다:
주인:
개발하다:
API/ABI 변경 사항: 여기를 확인하세요.
패치를 제출하려면 개발 단계에서 벗어나시기 바랍니다.
테스트와 문서가 포함되면 패치 통합이 더 빨라집니다.
별도의 커밋으로 makefile을 업데이트하세요. 업데이트하려면 updatemakes.sh
스크립트를 실행하기만 하면 됩니다.
제출할 더 큰 내용이 있는 경우 사전에 언제든지 문의해 주세요. 그런 다음 이 저장소에 대한 쓰기 액세스 권한을 부여할 수 있으므로 이 저장소를 기반으로 PR을 열 수 있고 우리가 사용하는 병합 전 리베이스 접근 방식을 더 쉽게 따를 수 있습니다(또는 직접 리베이스를 수행할 수도 있음).
우리는 코드가 기존 코드 베이스와 일치하는지 확인하기 위해 Pull Request 검토를 사용하고 있습니다.
접근 방식에 대한 아이디어를 얻으려면 여기를 살펴보십시오.
마스터 및 개발 이외의 모든 브랜치는 강제 푸시, 리베이스 및/또는 제거 될 수 있고 제거될 수 있다는 점에 유의하세요!
이렇게 불안정한 브랜치를 사용하려면 이 저장소의 자체 포크를 만들어 문제가 발생하지 않도록 하세요.
기본적으로 라이브러리는 (필요에 따라 다소) 최적의 방식으로 전체 기능 세트( katja
제외)를 구축합니다.
라이브러리의 기능을 축소하려는 경우 사용할 수 있는 다양한 구성 옵션이 있습니다.
사용 가능한 모든 구성 옵션을 보려면 src/headers/tomcrypt_custom.h
를 살펴보세요.
다음 목록은 사용 가능하지만 가장 자주 필요한 구성 스위치의 일부입니다.
깃발 | 행동 |
---|---|
LTC_NO_TEST | 라이브러리에서 모든 알고리즘 자체 테스트 제거 |
LTC_NO_FILE | 사전 정의된 FILE 데이터 유형이 필요한 모든 API 함수 제거(주로 임베디드 대상에 유용함) |
GMP_DESC | MPI 공급자로 gmp 활성화 *1 |
LTM_DESC | libtommath를 MPI 공급자로 활성화 *1 |
TFM_DESC | tomsfastmath를 MPI 공급자로 활성화 *1 *2 |
USE_GMP | 바이너리를 빌드할 때 MPI 공급자로 gmp 사용합니다 . *3 |
USE_LTM | 바이너리를 빌드할 때 MPI 공급자로 libtommath 사용합니다 . *3 |
USE_TFM | 바이너리를 빌드할 때 MPI 공급자로 tomsfastmath 사용합니다 . *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 | shasum 과 유사하지만 라이브러리에 포함된 모든 해시 알고리즘을 지원하는 hashsum 섬 바이너리를 구축합니다 *4 |
crypt | crypt *4 와 유사한 것을 구현하여 crypt 바이너리를 빌드합니다. |
sizes | 호출 시 모든 내부 데이터 크기를 인쇄하여 sizes 바이너리를 빌드합니다. *4 |
constants | 호출 시 모든 내부 상수를 인쇄하여 constants 바이너리를 빌드합니다. *4 |
openssl-enc | openssl enc *4 *5 와 어느 정도 호환되는 openssl-enc 바이너리를 빌드합니다. |
test | 모든 알고리즘 자체 테스트 + 일부 확장 테스트 *4 를 실행하는 test 바이너리를 빌드합니다. |
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
설치되어 있고 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
위 표에 설명된 여러 가지 설치 make-target이 있습니다.
이러한 타겟은 다음 변수 세트를 통해 설치 경로를 수정하는 표준 방법([GNU], [FreeBSD] 참조)을 지원합니다.
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
전체 변수 세트는 makefile
, makefile.shared
및 makefile.unix
에서만 지원됩니다.
다른 메이크파일 중 하나를 사용해야 하는 경우 파일에서 지원되는 변수를 확인하세요.
기본 경로에 정적 라이브러리를 설치하려고 합니다.
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를 사용한 빌드에 대한 자세한 내용은 개발자 문서에서 확인할 수 있습니다.