Compiler la librairie C++ avec Mbed-TLS 4.0

Compiler la librairie C++ avec Mbed-TLS 4.0

Nous venons de publier une nouvelle version de notre librairie C++. Le principal changement de cette version est la mise à jour de la librairie Mbed-TLS en version 4.0. Et comme nous allons le voir, cela change un peu la manière de compiler notre librairie.




Notre librairie C++ utilise la librairie Mbed-TLS pour la cryptographie. La dernière version de cette librairie a introduit un changement dans l'arborescence des fichiers sources. Ce qui nous force à mettre à jour la procédure pour compiler notre librairie.

Concrètement pour compiler notre librairie C++, il faut compiler les fichiers suivants:

  • les fichiers C++ des classes que vous utilisez du répertoire "Sources"
  • tous les fichiers C du répertoire "Sources/yapi"
  • tous les fichiers C du répertoire "Sources/yapi/mbedtls/library"
  • tous les fichiers C du répertoire "Sources/yapi/mbedtls/tf-psa-crypto/core/"
  • tous les fichiers C du répertoire "Sources/yapi/mbedtls/tf-psa-crypto/drivers/builtin/src/"


Pour que la compilation fonctionne, il faut s'assurer que les répertoires suivants fassent partie de l'include path:

  • le répertoire "Sources"
  • le répertoire "Sources/yapi/mbedtls/include"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/core"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/drivers/builtin/include"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/drivers/builtin/src"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/include"


Enfin, sous Windows uniquement, il faut aussi ajouter la librairie bcrypt.lib lors de la phase de linkage.

Les compilateurs supportés et testés sont GCC, Clang et Microsoft C++ (MSVC) mais, normalement, n'importe quel compilateur C++ devrait fonctionner.

La compilation de code C++ peut être fastidieuse, en particulier quand on doit compiler un code que l'on n'a pas écrit soi-même. C'est pour cette raison que nous avons fait particulièrement attention à fournir des exemples de projets pour les IDEs les plus répandus.

Tous les exemples de la documentation de nos modules incluent des projets GNU Makefile, Visual Studio, Xcode et Code:: Blocks. Ces projets incluent tous les fichiers mentionnés plus haut. Cela vous permet de vous familiariser avec notre libraire en utilisant un environnement familier.

Notez que si vous utilisez CMake pour compiler vos projets, nous avons aussi un exemple "Prog-CMake" qui montre comment inclure notre librairie dans un projet CMake.

Compiler la librairie sans SSL/TLS

Si vous n'avez pas besoin d'utiliser les protocoles https:// ou wss://, vous pouvez compiler notre librairie sans Mbed-TLS. Il faut simplement définir la macro NO_YSSL dans votre IDE ou makefile.

Dans ce cas, tous les appels à Mbed-TLS seront ignorés et il suffit de compiler les fichiers qui sont dans le sous-répertoire "Sources" et "Sources/yapi", vous pouvez ignorer tout le contenu du répertoire "Sources/yapi/mbedtls"

Si, dans votre code, vous essayez de vous connecter à un host qui requière une connexion sécurisée, comme "VirtualHub for Web", la fonction retournera une erreur "YAPI_NOT_SUPPORTED" avec le message "SSL support is not activated.".

Conclusion

La nouvelle version de Mbed-TLS complique un peu la compilation de notre librairie, mais nous avons fait notre possible pour vous faciliter la transition. Quel que soit votre environnement, vous devriez trouver un exemple dans notre librairie, mais si vous n'arrivez toujours pas à compiler la librairie dans votre IDE, n'hésitez pas à contacter le support Yoctopuce (support@yoctopuce.com).

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.