Ранее репозиторий git содержал документацию doc/crypt.pdf
для подробной документации. Это было изменено, и теперь файл доступен только из архива соответствующей версии или со страницы https://github.com/libtom/libtomcrypt/releases.
владелец:
развивать:
владелец:
развивать:
Изменения API/ABI: проверьте здесь
Если вы хотите отправить патч, пожалуйста, отклонитесь от разработки.
Интеграция исправлений пройдет быстрее, если будут включены тесты и документация.
Пожалуйста, обновите make-файлы в отдельном коммите. Чтобы обновить их, просто запустите скрипт updatemakes.sh
.
Если у вас есть что-то большее, свяжитесь с нами заранее. Затем мы можем предоставить вам доступ для записи к этому репозиторию, чтобы вы могли открыть свой PR на основе этого репозитория, и нам было легче следовать подходу перебазирования перед слиянием, который мы используем (или даже выполнить перебазирование самостоятельно).
Мы используем проверки запросов на включение, чтобы убедиться, что код соответствует существующей кодовой базе.
Пожалуйста, посмотрите здесь, чтобы получить представление о подходе.
Имейте в виду, что все ветки, кроме master и development, могут и будут принудительно перенесены, перебазированы и/или удалены!
Если вы хотите полагаться на такую нестабильную ветку, создайте свою собственную вилку этого репозитория, чтобы ничего не сломалось.
По умолчанию библиотека строит весь свой набор функций (кроме 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
. Пожалуйста, выберите тот, который лучше всего подходит для вас.
make-файл | вариант использования |
---|---|
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 target *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
.
Если вам нужно использовать один из других make-файлов, проверьте в файле, какие переменные поддерживаются.
Вы хотите установить статическую библиотеку по путям по умолчанию.
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 можно найти в документации для разработчиков.