Maison >développement back-end >Golang >golang gmssl ne parvient pas à compiler

golang gmssl ne parvient pas à compiler

(*-*)浩
(*-*)浩original
2019-12-16 15:37:282858parcourir

golang gmssl ne parvient pas à compiler

J'ai déjà compilé de manière croisée openssl-1.0.2k sur Ubuntu, en utilisant le script suivant pour l'implémenter : 🎜 >

./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared
sed -i "s/ -m64//g" Makefile
make
make install
Tous les environnements de développement sont contrôlés via svn, y compris le processus d'établissement des fichiers de bibliothèque, des outils, etc. Par conséquent, après avoir utilisé config pour générer le fichier Makefile, utilisez un script pour supprimer automatiquement l'option m64 qui n'est pas prise en charge par le compilateur arm. Lorsque vous utilisez la même méthode pour compiler gmssl, une erreur d'exécution se produit lors de la génération de la clé sur l'appareil ; la version préliminaire openssl-1.1.1 cesse de répondre après la compilation.

Après de nombreuses explorations, j'ai finalement trouvé la raison : Configure doit être utilisé pour configurer la plateforme cible ! Le nouveau script de compilation est le suivant :

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

Comme il s'agit d'un périphérique arm, la plate-forme cible est configurée ici comme linux-armv4. La méthode de compilation pour les autres plates-formes est similaire. Utilisez ./Configure --help pour. afficher toutes les plates-formes prises en charge.

De plus, lors de la spécification de la plateforme arm, l'option m64 non prise en charge n'apparaîtra pas dans le Makefile, il n'est donc pas nécessaire de la supprimer.

Après avoir utilisé la nouvelle méthode de compilation, gmssl et openssl-1.1.1 peuvent fonctionner normalement sur les appareils arm.

GmSSL-Go est la liaison d'interface du langage Go

de la bibliothèque GmSSL

fournit des fonctions telles que des algorithmes cryptographiques, des certificats X.509, des protocoles SSL et des applications en langage Engine for Go. .

GmSSL-Go utilise CGO pour encapsuler l'interface de haut niveau de GmSSL en tant que composant du langage Go. Il s'agit d'une couche intermédiaire légère faiblement couplée à la bibliothèque GmSSL. Toutes les fonctions cryptographiques sont fournies par le sous-jacent. Bibliothèque GmSSL fournie.

Pourquoi utiliser GmSSL-Go

Bien que la bibliothèque officielle du langage Go fournisse des packages d'algorithmes cryptographiques et des packages de protocole SSL couramment utilisés, il existe également des packages de Go purs tiers Langues Bibliothèque de crypto-monnaie, l'intégration de GmSSL-Go dans le projet présente encore de nombreux avantages irremplaçables : GmSSL-Go fournit une prise en charge complète et riche des algorithmes de cryptage nationaux, des certificats et des protocoles SSL via la bibliothèque GmSSL sous-jacente.

GmSSL-Go peut assurer la sécurité, la disponibilité et la conformité des mots de passe du système grâce à des objets Engine qui répondent aux dispositifs cryptographiques matériels nationaux tels que les cartes de chiffrement U-shield et PCI-E qui répondent aux normes cryptographiques nationales.

GmSSL-Go appelle l'implémentation de l'algorithme cryptographique de la bibliothèque GmSSL en mode CGO. Il présente des avantages en termes de performances dans les algorithmes cryptographiques par rapport à l'implémentation du langage Go pur. Veuillez vous référer au benchmark GmSSL.

Les fonctions et les performances de GmSSL-Go ont été continuellement améliorées avec la mise à niveau de GmSSL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Quelle langue est le golang ?Article suivant:Quelle langue est le golang ?