Heim > Backend-Entwicklung > Golang > golang gmssl kann nicht kompiliert werden

golang gmssl kann nicht kompiliert werden

(*-*)浩
Freigeben: 2019-12-16 15:37:28
Original
2896 Leute haben es durchsucht

golang gmssl kann nicht kompiliert werden

Ich habe openssl-1.0.2k bereits auf Ubuntu überkompiliert und dabei das folgende Skript zur Implementierung verwendet: 🎜 >

./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared
sed -i "s/ -m64//g" Makefile
make
make install
Nach dem Login kopieren
Alle Entwicklungsumgebungen werden über svn gesteuert, einschließlich des Erstellungsprozesses von Bibliotheksdateien, Tools usw. Verwenden Sie daher nach der Verwendung von config zum Generieren des Makefiles ein Skript, um die m64-Option, die vom Arm-Compiler nicht unterstützt wird, automatisch zu löschen. Bei Verwendung derselben Methode zum Kompilieren von gmssl tritt ein Laufzeitfehler auf, wenn die Vorschauversion von openssl-1.1.1 nach der Kompilierung nicht mehr reagiert.

Nach langem Erkunden habe ich endlich den Grund gefunden: Konfigurieren sollte zum Konfigurieren der Zielplattform verwendet werden! Das neue Kompilierungsskript lautet wie folgt:

./Configure --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4
make
make install
Nach dem Login kopieren

Da es sich um ein Arm-Gerät handelt, ist die Zielplattform hier als linux-armv4 konfiguriert. Die Kompilierungsmethode für andere Plattformen ist ähnlich Alle unterstützten Plattformen anzeigen.

Außerdem wird bei der Angabe der Armplattform die nicht unterstützte m64-Option nicht im Makefile angezeigt, sodass es nicht nötig ist, sie zu löschen.

Nach Verwendung der neuen Kompilierungsmethode können sowohl gmssl als auch openssl-1.1.1 auf ARM-Geräten normal funktionieren.

GmSSL-Go ist die Go-Sprachschnittstellenbindung

der GmSSL-Bibliothek

und bietet Funktionen wie kryptografische Algorithmen, X.509-Zertifikate, SSL-Protokolle und Engine für Go-Sprachanwendungen .

GmSSL-Go verwendet CGO, um die High-Level-Schnittstelle von GmSSL als Go-Sprachkomponente zu kapseln. Es handelt sich um eine leichtgewichtige Mittelschicht, die lose mit der GmSSL-Bibliothek gekoppelt ist. Alle kryptografischen Funktionen werden von der zugrunde liegenden bereitgestellt GmSSL-Bibliothek bereitgestellt.

Warum GmSSL-Go verwenden?

Obwohl die offizielle Bibliothek der Go-Sprache häufig verwendete kryptografische Algorithmuspakete und SSL-Protokollpakete bereitstellt, gibt es auch einige reine Go-Pakete von Drittanbietern Sprachen Kryptowährungsbibliothek bietet die Integration von GmSSL-Go in das Projekt immer noch viele unersetzliche Vorteile: GmSSL-Go bietet vollständige und umfassende Unterstützung für nationale Verschlüsselungsalgorithmen, Zertifikate und SSL-Protokolle durch die zugrunde liegende GmSSL-Bibliothek.

GmSSL-Go kann Systemsicherheit, Verfügbarkeit und Passwort-Compliance durch Engine-Objekte bieten, die inländische Hardware-Kryptografiegeräte wie U-Shield und PCI-E-Verschlüsselungskarten erfüllen, die den nationalen kryptografischen Standards entsprechen.

GmSSL-Go verwendet CGO, um die kryptografische Algorithmenimplementierung der GmSSL-Bibliothek aufzurufen. Es bietet Leistungsvorteile bei kryptografischen Algorithmen im Vergleich zur reinen Go-Sprachimplementierung.

Die Funktionen und Leistung von GmSSL-Go wurden mit dem Upgrade von GmSSL kontinuierlich verbessert.

Das obige ist der detaillierte Inhalt vongolang gmssl kann nicht kompiliert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage