Auparavant, le référentiel git contenait doc/crypt.pdf
pour une documentation détaillée. Cela a été modifié et le fichier n'est désormais disponible qu'à partir de l'archive tar de la version appropriée ou depuis la page https://github.com/libtom/libtomcrypt/releases .
maître:
développer:
maître:
développer:
Modifications API/ABI : vérifiez ici
Veuillez quitter le développement si vous souhaitez soumettre un correctif.
L'intégration des correctifs sera plus rapide si les tests et la documentation sont inclus.
Veuillez mettre à jour les makefiles dans un commit séparé. Pour les mettre à jour, exécutez simplement le script updatemakes.sh
.
Si vous avez quelque chose de plus important à soumettre, n'hésitez pas à nous contacter au préalable. Ensuite, nous pouvons vous donner un accès en écriture à ce dépôt, afin que vous puissiez ouvrir votre PR basé sur ce dépôt et que nous puissions plus facilement suivre l'approche de rebase avant fusion que nous utilisons (ou même faire le rebase nous-mêmes).
Nous utilisons les revues Pull Request pour nous assurer que le code est conforme à la base de code existante.
Veuillez jeter un oeil ici pour avoir une idée de l'approche.
Veuillez noter que toutes les branches, à l'exception de master et develop, peuvent et seront poussées de force, rebasées et/ou supprimées !
Si vous souhaitez vous appuyer sur une branche aussi instable , créez votre propre fork de ce référentiel pour vous assurer que rien ne se casse pour vous.
Par défaut, la bibliothèque construit l'intégralité de son ensemble de fonctionnalités (en plus de katja
) de manière (en fonction de vos besoins plus ou moins) optimale.
De nombreuses options de configuration sont disponibles si vous souhaitez réduire les fonctionnalités de la bibliothèque.
Veuillez consulter src/headers/tomcrypt_custom.h
pour toutes les options de configuration disponibles.
La liste suivante n’est qu’une petite partie des commutateurs de configuration disponibles, mais les plus souvent requis.
Drapeau | Comportement |
---|---|
LTC_NO_TEST | Supprimer tous les autotests d'algorithme de la bibliothèque |
LTC_NO_FILE | Supprimez toutes les fonctions API nécessitant un type de données FILE prédéfini (surtout utile pour les cibles intégrées) |
GMP_DESC | activer gmp en tant que fournisseur MPI *1 |
LTM_DESC | activer libtommath en tant que fournisseur MPI *1 |
TFM_DESC | activer tomsfastmath en tant que fournisseur MPI *1 *2 |
USE_GMP | utiliser gmp comme fournisseur MPI lors de la construction des binaires *3 |
USE_LTM | utilisez libtommath comme fournisseur MPI lors de la construction des binaires *3 |
USE_TFM | utilisez tomsfastmath comme fournisseur MPI lors de la construction des binaires *3 |
*1 Il est possible de créer la bibliothèque avec tous les fournisseurs MPI en parallèle et de choisir au démarrage quelle bibliothèque mathématique doit être utilisée.
*2 Veuillez noter que tomsfastmath
est limité à une taille maximale fixe de MPI.
*3 Un seul est pris en charge à la fois et cela n'est requis que lors de la construction des binaires, pas lors de la construction de la bibliothèque elle-même.
Plusieurs makefile
sont fournis. Veuillez choisir celui qui vous convient le mieux.
makefile | cas d'utilisation |
---|---|
makefile | construit une bibliothèque statique (GNU Make requis) |
makefile.shared | construit une bibliothèque partagée (et statique) (GNU Make requis) |
makefile.unix | pour les plates-formes UNIX inhabituelles, ou si vous n'avez pas GNU Make |
makefile.mingw | à utiliser avec le compilateur Mingw sous MS Windows |
makefile.msvc | à utiliser avec le compilateur MSVC sous MS Windows |
libtomcrypt_VS2008.sln | Un projet VisualStudio 2008 pour MS Windows |
Les makefile
fournissent plusieurs cibles à construire (projet VS exclu). La liste suivante ne prétend pas être complète resp. être disponible dans toutes les variantes makefile
.
cible | application |
---|---|
cible vide / aucune donnée | library cf |
library | construit uniquement la bibliothèque |
hashsum | construit le binaire hashsum , similaire à shasum , mais avec la prise en charge de tous les algorithmes de hachage inclus dans la bibliothèque *4 |
crypt | construit le binaire crypt , implémentant quelque chose de similaire à crypt *4 |
sizes | construit les sizes binaires, imprimant toutes les tailles de données internes lors de l'appel *4 |
constants | construit le binaire constants , imprimant toutes les constantes internes lors de l'invocation *4 |
openssl-enc | construit le binaire openssl-enc , qui est plus ou moins compatible avec openssl enc *4 *5 |
test | construit le binaire test , qui exécute tous les auto-tests de l'algorithme + quelques tests étendus *4 |
timing | construit le binaire timing , qui peut être utilisé pour mesurer les timings des algorithmes et des modes *4 |
bins | construit hashsum *4 |
all_test | construit test , hashsum , crypt , small , tv_gen , sizes et constants *4 |
docs | construit la documentation du développeur doc/crypt.pdf |
install | installe la library et les fichiers d'en-tête *7 *8 |
install_bins | installe les binaires créés par la cible bins *7 *8 |
install_docs | installe la documentation créée par la cible docs *7 *8 |
install_test | installe l'application de test créée par la cible test *7 *8 |
install_all | installe tout (c'est-à-dire library , bins , docs et test ) *8 |
uninstall | désinstalle la library et les fichiers d'en-tête |
*4 construit également library
*5 build cassé dans certaines configurations, donc non construit par défaut
*7 construit également le(s) artefact(s) nécessaire(s) avant de l'installer
*8 jetez également un œil à la section 'Installation' de ce fichier
Vous souhaitez créer la bibliothèque en tant que bibliothèque statique
make
Vous souhaitez créer la bibliothèque en tant que bibliothèque partagée
make -f makefile.shared
Vous avez installé libtommath
sur votre système et souhaitez créer une bibliothèque statique et le binaire test
pour exécuter les auto-tests.
make CFLAGS="-DUSE_LTM -DLTM_DESC" EXTRALIBS="-ltommath" test
Vous avez tomsfastmath
installé sur votre système et souhaitez créer une bibliothèque partagée et tous les binaires
make -f makefile.shared CFLAGS="-DUSE_TFM -DTFM_DESC" EXTRALIBS="-ltfm" all demos
Vous avez gmp
, libtommath
et tomsfastmath
installés sur votre système et souhaitez créer une bibliothèque statique et le binaire timing
pour mesurer les timings par rapport à gmp
.
make CFLAGS="-DUSE_GMP -DGMP_DESC -DLTM_DESC -DTFM_DESC" EXTRALIBS="-lgmp" timing
Si vous avez libtommath
dans un emplacement non standard :
make CFLAGS="-DUSE_LTM -DLTM_DESC -I/opt/devel/ltm" EXTRALIBS="/opt/devel/ltm/libtommath.a" all
Vous souhaitez activer la prise en charge AES-NI :
make CFLAGS=-DLTC_AES_NI
Il existe plusieurs cibles de création d'installation décrites dans le tableau ci-dessus.
Ces cibles prennent en charge les méthodes standards (cf. [GNU], [FreeBSD]) pour modifier le chemin d'installation via l'ensemble de variables suivant :
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
L'ensemble complet des variables n'est pris en charge que dans makefile
, makefile.shared
et makefile.unix
.
Si vous devez utiliser l'un des autres makefiles, vérifiez dans le fichier quelles variables sont prises en charge.
Vous souhaitez installer la bibliothèque statique sur les chemins par défaut
make install
Vous souhaitez installer la bibliothèque partagée sur un chemin spécial et l'utiliser à partir de ce chemin
make -f makefile.shared PREFIX=/opt/special/path
Jetez un œil à la documentation du développeur, [GNU] ou [FreeBSD] pour obtenir une explication détaillée de toutes les variables.
Le projet prend en charge le système de build CMake.
git clone https://github.com/libtom/libtomcrypt.git
mkdir -p libtomcrypt/build
cd libtomcrypt/build
cmake ..
make -j$(nproc)
Plus de détails sur la construction avec CMake peuvent être trouvés dans la documentation du développeur.