Zuvor enthielt das Git-Repository doc/crypt.pdf
für eine detaillierte Dokumentation. Dies wurde geändert und die Datei ist jetzt nur noch im Tarball der entsprechenden Version oder auf der Seite https://github.com/libtom/libtomcrypt/releases verfügbar.
Master:
entwickeln:
Master:
entwickeln:
API/ABI-Änderungen: Überprüfen Sie hier
Bitte verzweigen Sie von der Entwicklung, wenn Sie einen Patch einreichen möchten.
Die Patch-Integration erfolgt schneller, wenn Tests und Dokumentation einbezogen werden.
Bitte aktualisieren Sie die Makefiles in einem separaten Commit. Um sie zu aktualisieren, führen Sie einfach das Skript updatemakes.sh
aus.
Wenn Sie etwas Größeres einzureichen haben, können Sie uns gerne vorher kontaktieren. Dann können wir Ihnen Schreibzugriff auf dieses Repo gewähren, sodass Sie Ihre PR basierend auf diesem Repo öffnen können und wir den von uns verwendeten Rebase-vor-Merge-Ansatz einfacher befolgen können (oder den Rebase sogar selbst durchführen können).
Wir verwenden Pull-Request-Überprüfungen, um sicherzustellen, dass der Code mit der vorhandenen Codebasis übereinstimmt.
Bitte schauen Sie hier vorbei, um sich ein Bild von der Vorgehensweise zu machen.
Bitte beachten Sie, dass alle Zweige außer Master und Develop zwangsweise verschoben, neu basiert und/oder entfernt werden können und werden!
Wenn Sie sich auf einen derart instabilen Zweig verlassen möchten, erstellen Sie einen eigenen Zweig dieses Repositorys, um sicherzustellen, dass nichts kaputt geht.
Standardmäßig erstellt die Bibliothek ihren gesamten Funktionsumfang (außer katja
) auf (je nach Ihren Anforderungen mehr oder weniger) optimale Weise.
Wenn Sie den Funktionsumfang der Bibliothek einschränken möchten, stehen Ihnen zahlreiche Konfigurationsmöglichkeiten zur Verfügung.
Alle verfügbaren Konfigurationsoptionen finden Sie unter src/headers/tomcrypt_custom.h
.
Die folgende Liste ist ein kleiner Teil der verfügbaren, aber am häufigsten benötigten Konfigurationsschalter.
Flagge | Verhalten |
---|---|
LTC_NO_TEST | Entfernen Sie alle Algorithmus-Selbsttests aus der Bibliothek |
LTC_NO_FILE | Entfernen Sie alle API-Funktionen, die einen vordefinierten FILE -Datentyp erfordern (hauptsächlich nützlich für eingebettete Ziele). |
GMP_DESC | gmp als MPI-Anbieter aktivieren *1 |
LTM_DESC | Aktivieren Sie libtommath als MPI-Anbieter *1 |
TFM_DESC | Aktivieren Sie tomsfastmath als MPI-Anbieter *1 *2 |
USE_GMP | Verwenden Sie gmp als MPI-Anbieter beim Erstellen der Binärdateien *3 |
USE_LTM | Verwenden Sie libtommath als MPI-Anbieter beim Erstellen der Binärdateien *3 |
USE_TFM | Verwenden Sie tomsfastmath als MPI-Anbieter beim Erstellen der Binärdateien *3 |
*1 Es ist möglich, die Bibliothek parallel mit allen MPI-Anbietern zu erstellen und beim Start auszuwählen, welche Mathematikbibliothek verwendet werden soll.
*2 Bitte beachten Sie, dass für tomsfastmath
eine feste maximale Größe von MPIs gilt.
*3 Es wird jeweils nur eine unterstützt und dies ist nur beim Erstellen der Binärdateien erforderlich, nicht beim Erstellen der Bibliothek selbst.
Es werden mehrere makefile
bereitgestellt. Bitte wählen Sie diejenige aus, die am besten zu Ihnen passt.
Makefile | Anwendungsfall |
---|---|
makefile | erstellt eine statische Bibliothek (GNU Make erforderlich) |
makefile.shared | erstellt eine gemeinsam genutzte (und statische) Bibliothek (GNU Make erforderlich) |
makefile.unix | für ungewöhnliche UNIX-Plattformen oder wenn Sie nicht über GNU Make verfügen |
makefile.mingw | zur Verwendung mit dem mingw-Compiler unter MS Windows |
makefile.msvc | zur Verwendung mit dem MSVC-Compiler unter MS Windows |
libtomcrypt_VS2008.sln | Ein VisualStudio 2008-Projekt für MS Windows |
Die makefile
stellen mehrere Ziele zum Erstellen bereit (VS-Projekt ausgenommen). Die folgende Liste erhebt keinen Anspruch auf Vollständigkeit bzw. in allen makefile
Varianten verfügbar sein.
Ziel | Anwendung |
---|---|
leeres Ziel / keines angegeben | cf- library |
library | Erstellt nur die Bibliothek |
hashsum | Erstellt die hashsum Binärdatei, ähnlich wie shasum , jedoch mit Unterstützung für alle in der Bibliothek *4 enthaltenen Hash-Algorithmen |
crypt | Erstellt die crypt Binärdatei und implementiert etwas Ähnliches wie crypt *4 |
sizes | Erstellt die sizes binär und gibt beim Aufruf alle internen Datengrößen aus *4 |
constants | Erstellt die constants binär und gibt alle internen Konstanten beim Aufruf aus *4 |
openssl-enc | Erstellt die Binärdatei openssl-enc , die mehr oder weniger kompatibel zu openssl enc *4 *5“ ist |
test | Erstellt die test , die alle Algorithmus-Selbsttests + einige erweiterte Tests ausführt *4 |
timing | Erstellt die timing Binärdatei, mit der Timings für Algorithmen und Modi gemessen werden können *4 |
bins | Erstellt hashsum *4 |
all_test | Erstellt test , hashsum , crypt , small , tv_gen , sizes und constants *4 |
docs | erstellt die Entwicklerdokumentation doc/crypt.pdf |
install | installiert die library und Header-Dateien *7 *8 |
install_bins | Installiert die vom bins -Ziel *7 *8 erstellten Binärdateien |
install_docs | Installiert die vom docs Ziel *7 *8 erstellte Dokumentation |
install_test | Installiert die vom test *7 *8 erstellte Test-App |
install_all | Installiert alles (dh library , bins , docs und test ) *8 |
uninstall | deinstalliert die library und Header-Dateien |
*4 erstellt auch library
*5 fehlerhafter Build in einigen Konfigurationen, daher nicht standardmäßig erstellt
*7 erstellt vor der Installation auch die erforderlichen Artefakte
*8 Schauen Sie sich auch den Abschnitt „Installation“ dieser Datei an
Sie möchten die Bibliothek als statische Bibliothek erstellen
make
Sie möchten die Bibliothek als gemeinsam genutzte Bibliothek erstellen
make -f makefile.shared
Sie haben libtommath
auf Ihrem System installiert und möchten eine statische Bibliothek und die test
erstellen, um die Selbsttests auszuführen.
make CFLAGS="-DUSE_LTM -DLTM_DESC" EXTRALIBS="-ltommath" test
Sie haben tomsfastmath
auf Ihrem System installiert und möchten eine gemeinsam genutzte Bibliothek und alle Binärdateien erstellen
make -f makefile.shared CFLAGS="-DUSE_TFM -DTFM_DESC" EXTRALIBS="-ltfm" all demos
Sie haben gmp
, libtommath
und tomsfastmath
auf Ihrem System installiert und möchten eine statische Bibliothek und die timing
Binärdatei erstellen, um Timings anhand von gmp
zu messen.
make CFLAGS="-DUSE_GMP -DGMP_DESC -DLTM_DESC -DTFM_DESC" EXTRALIBS="-lgmp" timing
Wenn Sie libtommath
an einem nicht standardmäßigen Speicherort haben:
make CFLAGS="-DUSE_LTM -DLTM_DESC -I/opt/devel/ltm" EXTRALIBS="/opt/devel/ltm/libtommath.a" all
Sie möchten die AES-NI-Unterstützung aktivieren:
make CFLAGS=-DLTC_AES_NI
Es gibt mehrere Installations -Make-Targets, die in der obigen Tabelle beschrieben werden.
Diese Ziele unterstützen die Standardmethoden (vgl. [GNU], [FreeBSD]), um den Installationspfad über den folgenden Satz von Variablen zu ändern:
DESTDIR
PREFIX
LIBPATH
INCPATH
DATAPATH
BINPATH
Der gesamte Satz der Variablen wird nur in makefile
, makefile.shared
und makefile.unix
unterstützt.
Falls Sie eines der anderen Makefiles verwenden müssen, prüfen Sie in der Datei, welche Variablen unterstützt werden.
Sie möchten die statische Bibliothek in den Standardpfaden installieren
make install
Sie möchten die gemeinsam genutzte Bibliothek in einem speziellen Pfad installieren und von diesem Pfad aus verwenden
make -f makefile.shared PREFIX=/opt/special/path
Schauen Sie sich die Entwicklerdokumentation [GNU] oder [FreeBSD] an, um eine detaillierte Erklärung aller Variablen zu erhalten.
Das Projekt bietet Unterstützung für das CMake-Build-System.
git clone https://github.com/libtom/libtomcrypt.git
mkdir -p libtomcrypt/build
cd libtomcrypt/build
cmake ..
make -j$(nproc)
Weitere Details zum Erstellen mit CMake finden Sie in der Entwicklerdokumentation.