Compiler la librairie C++ avec Mbed-TLS 4.1

Compiler la librairie C++ avec Mbed-TLS 4.1

Récemment, Mbed TLS a publié une nouvelle version de sa librairie. Nous avons nous aussi publié une nouvelle version de nos utilitaires et librairies qui intègrent Mbed TLS. Cela ne devrait rien changer pour vous, sauf si vous utilisez notre librairie C++. Dans ce cas, vous devrez peut-être modifier vos scripts de compilation.




La version 4.1 de Mbed TLS n'apporte pas de nouvelle fonctionnalité révolutionnaire, mais corrige quelques failles de sécurité et fixe quelques bugs. La liste complète des changements est disponible sur leur page GitHub.

Malheureusement, certains des changements ont introduit un changement dans l'arborescence des fichiers sources. Cela nous a forcés à mettre à jour la procédure de compilation de notre librairie C++.

Concrètement, il faut compiler et inclure trois répertoires supplémentaires:

  • Sources/yapi/mbedtls/tf-psa-crypto/extras
  • Sources/yapi/mbedtls/tf-psa-crypto/utilities
  • Sources/yapi/mbedtls/tf-psa-crypto/platform


Selon votre situation, ce changement peut avoir plus ou moins d’impact.

Vous utilisez CMake

Si vous utilisez CMake, vous n'avez rien à modifier. Il vous suffit de mettre à jour notre librairie depuis GitHub ou depuis notre site web. Le fichier MakeLists.txt du sous-répertoire Sources a déjà été mis à jour par nos soins. Il faut simplement recompiler votre projet.

Vous utilisez nos scripts de compilation

Là aussi, il n'y a pas besoin de modifier votre projet. Si vous utilisez nos scripts de compilation (ou directement Gnu makefile) pour compiler notre librairie C++, il faut simplement mettre à jour notre librairie et tout recompiler.

Vous compilez notre librairie avec vos scripts/IDE

Si vous avez directement inclus les fichiers sources dans votre IDE/script de compilation, il va falloir mettre à jour votre projet.

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/"
  • tous les fichiers C du répertoire "Sources/yapi/mbedtls/tf-psa-crypto/extras/"
  • tous les fichiers C du répertoire "Sources/yapi/mbedtls/tf-psa-crypto/utilities/"
  • tous les fichiers C du répertoire "Sources/yapi/mbedtls/tf-psa-crypto/platform/"


Il faut aussi s'assurer que les répertoires suivants se trouvent dans 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"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/extras"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/utilities"
  • le répertoire "Sources/yapi/mbedtls/tf-psa-crypto/platform"


Nous avons mis à jour le fichier README.md qui se situe à la racine de notre librairie C++ avec la liste exacte de tous les fichiers à compiler. Cela devrait vous permettre de gagner un peu de temps et vous permettre de vérifier s’il y a des erreurs.

Vous n'utilisez pas SSL/TLS

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

Vous utilisez notre librairie pour la première fois

En plus des solutions que nous venons d'énumérer, vous pouvez partir d'un de nos exemples. En complément du code source, la plupart des exemples incluent des projets IDE prêt à compiler pour les IDEs suivants:

  • Visual Studio
  • Xcode
  • Code::Blocks

Cela permet aux novices de tester facilement nos modules et de visualiser facilement l'arborescence des fichiers.

Conclusion

Nous essayons le plus possible de simplifier la mise à jour de nos librairies, car nous savons à quel point il est frustrant de perdre de nombreuses heures à refaire marcher quelque chose qui fonctionnait avant. Malheureusement, dans ce cas, nous n'avons pas pu éviter ce changement d'arborescence. Cependant, nous espérons que cet article vous permettra de mettre à jour vos scripts de compilation en un minimum de temps.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.