Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Portage de l'interface de transport réseau
Intégration de la bibliothèque TLS
Pour l'authentification de protocole TLS (Transport Layer Security), utilisez votre protocole TLS (Transport Layer Security) préférée. Nous vous recommandons d'utiliserIntégrer TLS
Quelle que soit l'implémentation TLS utilisée par votre appareil, vous devez implémenter les crochets de transport sous-jacents pour la pile TLS avec la pile TCP/IP. Ils doivent soutenir leSuites de chiffrement TLS prises en charge parAWS IoT.
Portage de la bibliothèque d'interface de transport réseau
Vous devez implémenter une interface de transport réseau pour utiliserNoyau MQTT
Prérequis
Pour transférer ce test, vous avez besoin des éléments suivants :
Un projet avec un système de compilation capable de créer FreeRTOS avec un port de noyau FreeRTOS validé.
Implémentation fonctionnelle des pilotes réseau.
Portage
AjouterTests d'intégration des bibliothèques FreeRTOS
en tant que sous-module dans votre projet. Peu importe où le sous-module est placé dans le projet, tant qu'il peut être construit. Copier
config_template/test_execution_config_template.h
etconfig_template/test_param_config_template.h
à un emplacement de projet dans le chemin de construction, et renommez-les entest_execution_config.h
ettest_param_config.h
.Incluez les fichiers pertinents dans le système de compilation. Si vous utilisez
CMake
,qualification_test.cmake
etsrc/transport_interface_tests.cmake
sont utilisés pour inclure les fichiers pertinents.Implémentez les fonctions suivantes sur un site de projet approprié :
-
UN
network connect function
: La signature est définie parNetworkConnectFunc
danssrc/common/network_connection.h
. Cette fonction prend en compte un pointeur vers le contexte du réseau, un pointeur vers les informations d'hôte et un pointeur vers les informations d'identification du réseau. Il établit une connexion avec le serveur spécifié dans les informations d'hôte avec les informations d'identification réseau fournies.UN
network disconnect function
: La signature est définie parNetworkDisconnectFunc
danssrc/common/network_connection.h
. Cette fonction prend en compte un pointeur vers un contexte réseau. Il déconnecte une connexion précédemment établie enregistrée dans le contexte du réseau.setupTransportInterfaceTestParam()
: Ceci est défini danssrc/transport_interface/transport_interface_tests.h
. L'implémentation doit avoir exactement le même nom et la même signature que ceux définis danstransport_interface_tests.h
. Cette fonction prend en compte un pointeur vers unTransportInterfaceTestParamstructure. Il remplira les champs duTransportInterfaceTestParamstructure utilisée par le test de l'interface de transport.
Mettre en œuvreUNITY_OUTPUT_CHARafin que les journaux des résultats des tests ne soient pas entrelacés avec les journaux des appareils.
Appel
runQualificationTest()
depuis l'application. Le matériel de l'appareil doit être correctement initialisé et le réseau doit être connecté avant l'appel.
Gestion des informations d'identification (clé générée sur l'appareil)
QuandFORCE_GENERATE_NEW_KEY_PAIRdanstest_param_config.h
est défini sur 1, l'application de l'appareil génère une nouvelle paire de clés sur l'appareil et émet la clé publique. L'application de l'appareil utiliseECHO_SERVER_ROOT_CAetCERTIFICAT_CLIENT DE TRANSPORTcomme autorité de certification racine et certificat client du serveur d'écho lors de l'établissement d'une connexion TLS avec le serveur d'écho. IDT définit ces paramètres lors de la phase de qualification.
Gestion des informations d'identification (clé d'importation)
L'application de l'appareil utiliseECHO_SERVER_ROOT_CA,CERTIFICAT_CLIENT DE TRANSPORTetTRANSPORT_CLIENT_CLÉ_PRIVÉEdanstest_param_config.h
en tant qu'autorité de certification racine du serveur d'écho, de certificat client et de clé privée du client lors de l'établissement d'une connexion TLS avec le serveur d'écho. IDT définit ces paramètres lors de la phase de qualification.
Test
Cette section décrit comment tester localement l'interface de transport à l'aide des tests de qualification. Pour plus d'informations, consultez le fichier README.md fourni dansinterface de transport
Vous pouvez également utiliser l'IDT pour automatiser l'exécution. VoirAWS IoT Device Testerpour FreeRTOSdans leGuide d'utilisation de FreeRTOSpour plus d'informations.
Activez le test
Ouverttest_execution_config.h
et définissezINTERFACE DE TRANSPORT ACTIVÉE POUR LE TESTà 1.
Configurer le serveur Echo pour les tests
Un serveur d'écho accessible depuis l'appareil exécutant les tests est requis pour les tests locaux. Le serveur d'écho doit prendre en charge le protocole TLS si l'implémentation de l'interface de transport prend en charge le protocole TLS. Si vous n'en avez pas déjà un,Tests d'intégration des bibliothèques FreeRTOS
Configuration du projet à des fins de test
Danstest_param_config.h
, mise à jourPOINT DE TERMINAISON DU SERVEUR ECHOetECHO_SERVER_PORTà la configuration du terminal et du serveur à l'étape précédente.
Informations d'identification de configuration (clé générée sur l'appareil)
SetECHO_SERVER_ROOT_CAau certificat de serveur du serveur Echo.
SetFORCE_GENERATE_NEW_KEY_PAIRà 1 pour générer une paire de clés et obtenir la clé publique.
SetFORCE_GENERATE_NEW_KEY_PAIRretour à 0 après la génération de la clé.
Utilisez la clé publique, la clé de serveur et le certificat pour générer le certificat client.
SetCERTIFICAT_CLIENT DE TRANSPORTau certificat client généré.
Informations d'identification de configuration (clé d'importation)
SetECHO_SERVER_ROOT_CAau certificat de serveur du serveur Echo.
SetCERTIFICAT_CLIENT DE TRANSPORTau certificat client prégénéré.
SetTRANSPORT_CLIENT_CLÉ_PRIVÉEà la clé privée du client pré-générée.
Créez et flashez l'application
Créez et flashez l'application à l'aide de la chaîne d'outils de votre choix. QuandrunQualificationTest()
est invoqué, les tests de l'interface de transport seront exécutés. Les résultats des tests sont transmis au port série.
Note
Pour qualifier officiellement un appareil pour FreeRTOS, vous devez valider le code source porté de l'appareil par rapport aux groupes de test OTA PAL et OTA E2E avecAWS IoT Device Tester. Suivez les instructions deEn utilisantAWS IoT Device Testerpour FreeRTOSdans leGuide d'utilisation de FreeRTOSpour configurerAWS IoT Device Testerpour la validation des ports. Pour tester le port d'une bibliothèque spécifique, le groupe de test approprié doit être activé dansdevice.json
fichier dans leAWS IoT Device Tester configs
dossier.