Anteriormente, el repositorio de git contenía doc/crypt.pdf
para documentación detallada. Esto se cambió y el archivo ahora solo está disponible en el tarball de la versión apropiada o en la página https://github.com/libtom/libtomcrypt/releases.
maestro:
desarrollar:
maestro:
desarrollar:
Cambios API/ABI: consulte aquí
Salga del desarrollo si desea enviar un parche.
La integración de parches será más rápida si se incluyen pruebas y documentación.
Actualice los archivos MAKE en una confirmación por separado. Para actualizarlos, simplemente ejecute el script updatemakes.sh
.
Si tiene algo más grande que enviar, no dude en contactarnos de antemano. Luego podemos darle acceso de escritura a este repositorio, para que pueda abrir su PR basado en este repositorio y podamos seguir más fácilmente el enfoque de rebase antes de fusionar que estamos usando (o incluso hacer el rebase nosotros mismos).
Estamos utilizando revisiones de solicitudes de extracción para asegurarnos de que el código esté alineado con la base de código existente.
Eche un vistazo aquí para tener una idea del enfoque.
¡Tenga en cuenta que todas las ramas además de master y development pueden ser forzadas, rebasadas y/o eliminadas!
Si desea confiar en una rama tan inestable , cree su propia bifurcación de este repositorio para asegurarse de que nada se rompa.
De forma predeterminada, la biblioteca construye todo su conjunto de funciones (además de katja
) de una manera óptima (dependiendo de sus necesidades más o menos).
Hay numerosas opciones de configuración disponibles si desea recortar la funcionalidad de la biblioteca.
Eche un vistazo a src/headers/tomcrypt_custom.h
para conocer todas las opciones de configuración disponibles.
La siguiente lista es una pequeña parte de los conmutadores de configuración disponibles, pero los más requeridos.
Bandera | Comportamiento |
---|---|
LTC_NO_TEST | Eliminar todas las autopruebas de algoritmos de la biblioteca |
LTC_NO_FILE | Elimine todas las funciones API que requieran un tipo de datos FILE predefinido (principalmente útil para objetivos integrados) |
GMP_DESC | habilitar gmp como proveedor MPI *1 |
LTM_DESC | habilitar libtommath como proveedor MPI *1 |
TFM_DESC | habilitar tomsfastmath como proveedor MPI *1 *2 |
USE_GMP | use gmp como proveedor MPI al construir los binarios *3 |
USE_LTM | use libtommath como proveedor MPI al compilar los binarios *3 |
USE_TFM | utilice tomsfastmath como proveedor MPI al crear los binarios *3 |
*1 Es posible crear la biblioteca con todos los proveedores de MPI en paralelo y elegir en el momento del inicio qué biblioteca matemática se debe utilizar.
*2 Tenga en cuenta que tomsfastmath
tiene la limitación de un tamaño máximo fijo de MPI.
*3 Solo se admite uno en este momento y esto solo es necesario al crear los archivos binarios, no al crear la biblioteca en sí.
Se proporcionan varios archivos makefile
. Elija el que mejor se adapte a sus necesidades.
archivo make | caso de uso |
---|---|
makefile | construye una biblioteca estática (se requiere GNU Make) |
makefile.shared | construye una biblioteca compartida (y estática) (se requiere GNU Make) |
makefile.unix | para plataformas UNIX inusuales, o si no tienes GNU Make |
makefile.mingw | para usar con el compilador mingw en MS Windows |
makefile.msvc | para usar con el compilador MSVC en MS Windows |
libtomcrypt_VS2008.sln | Un proyecto de VisualStudio 2008 para MS Windows |
Los archivos makefile
proporcionan varios objetivos para construir (excluido el proyecto VS). La siguiente lista no pretende ser completa respectivamente. estará disponible en todas las variantes makefile
.
objetivo | solicitud |
---|---|
objetivo vacío /ninguno dado | library |
library | construye solo la biblioteca |
hashsum | construye el binario hashsum , similar a shasum , pero con soporte para todos los algoritmos hash incluidos en la biblioteca *4 |
crypt | construye el binario crypt , implementando algo similar a crypt *4 |
sizes | construye los sizes binarios, imprimiendo todos los tamaños de datos internos en la invocación *4 |
constants | construye las constants binarias, imprimiendo todas las constantes internas en la invocación *4 |
openssl-enc | construye el binario openssl-enc , que es más o menos compatible con openssl enc *4 *5 |
test | construye el binario test , que ejecuta todas las autopruebas del algoritmo + algunas pruebas extendidas *4 |
timing | construye el binario timing , que se puede utilizar para medir tiempos para algoritmos y modos *4 |
bins | construye hashsum *4 |
all_test | compila test , hashsum , crypt , small , tv_gen , sizes y constants *4 |
docs | compila la documentación para desarrolladores doc/crypt.pdf |
install | instala la library y los archivos de encabezado *7 *8 |
install_bins | instala los binarios creados por el objetivo bins *7 *8 |
install_docs | instala la documentación creada por el objetivo docs *7 *8 |
install_test | instala la aplicación de prueba creada por el objetivo test *7 *8 |
install_all | instala todo (es decir, library , bins , docs y test ) *8 |
uninstall | desinstala la library y los archivos de encabezado |
*4 también construye library
*5 compilación rota en algunas configuraciones, por lo tanto no compilada de forma predeterminada
*7 también construye los artefactos necesarios antes de instalarlo.
*8 también eche un vistazo a la sección 'Instalación' de este archivo
Quieres construir la biblioteca como biblioteca estática
make
Quieres construir la biblioteca como biblioteca compartida
make -f makefile.shared
Tiene libtommath
instalado en su sistema y desea crear una biblioteca estática y el binario test
para ejecutar las autopruebas.
make CFLAGS="-DUSE_LTM -DLTM_DESC" EXTRALIBS="-ltommath" test
Tiene tomsfastmath
instalado en su sistema y desea crear una biblioteca compartida y todos los archivos binarios.
make -f makefile.shared CFLAGS="-DUSE_TFM -DTFM_DESC" EXTRALIBS="-ltfm" all demos
Tiene gmp
, libtommath
y tomsfastmath
instalados en su sistema y desea crear una biblioteca estática y el binario timing
para medir los tiempos con respecto gmp
.
make CFLAGS="-DUSE_GMP -DGMP_DESC -DLTM_DESC -DTFM_DESC" EXTRALIBS="-lgmp" timing
Si tiene libtommath
en una ubicación no estándar:
make CFLAGS="-DUSE_LTM -DLTM_DESC -I/opt/devel/ltm" EXTRALIBS="/opt/devel/ltm/libtommath.a" all
Quiere habilitar el soporte AES-NI:
make CFLAGS=-DLTC_AES_NI
Existen varios objetivos de instalación que se describen en la tabla anterior.
Estos objetivos admiten las formas estándar (cf. [GNU], [FreeBSD]) de modificar la ruta de instalación mediante el siguiente conjunto de variables:
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
El conjunto completo de variables solo se admite en makefile
, makefile.shared
y makefile.unix
.
En caso de que tenga que utilizar uno de los otros archivos MAKE, verifique en el archivo qué variables son compatibles.
Quiere instalar la biblioteca estática en las rutas predeterminadas
make install
Desea instalar la biblioteca compartida en una ruta especial y utilizarla desde esta ruta.
make -f makefile.shared PREFIX=/opt/special/path
Eche un vistazo a la documentación del desarrollador, [GNU] o [FreeBSD] para obtener una explicación detallada de todas las variables.
El proyecto proporciona soporte para el sistema de compilación CMake.
git clone https://github.com/libtom/libtomcrypt.git
mkdir -p libtomcrypt/build
cd libtomcrypt/build
cmake ..
make -j$(nproc)
Se pueden encontrar más detalles sobre la construcción con CMake en la documentación del desarrollador.