Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Portabilidad de la interfaz de transporte de red
Integración de la biblioteca TLS
Para la autenticación de la seguridad de la capa de transporte (TLS), utilice la pila de TLS que prefiera. Recomendamos usar Mbed TLS
Independientemente de la implementación de TLS que utilice su dispositivo, debe implementar los enlaces de transporte subyacentes para la pila de TLS con la pila de TCP/IP. Deben ser compatibles con los conjuntos de cifrado TLS compatibles con AWS IoT.
Portabilidad de la biblioteca de interfaces de transporte de red
Debe implementar una interfaz de transporte de red para usar coreMQTT
Requisitos previos
Para realizar la portabilidad de esta prueba, necesita lo siguiente:
Un proyecto con un sistema de creación que permita crear FreeRTOS con un puerto de kernel de FreeRTOS validado.
Implementación funcional de los controladores de red.
Portabilidad
Añada FreeRTOS-Libraries-Integration-Tests
como un submódulo al proyecto. No importa dónde se coloque el submódulo en el proyecto, siempre que se pueda crear. Copie
config_template/test_execution_config_template.h
yconfig_template/test_param_config_template.h
en una ubicación del proyecto en la ruta de creación y cámbieles el nombre atest_execution_config.h
ytest_param_config.h
.Incluya los archivos relevantes en el sistema creación. Si utiliza
CMake
,qualification_test.cmake
ysrc/transport_interface_tests.cmake
se usan para incluir los archivos relevantes.Implemente las siguientes funciones en la ubicación adecuada del proyecto:
-
Una
network connect function
: la firma se define medianteNetworkConnectFunc
ensrc/common/network_connection.h
. Esta función incorpora un puntero al contexto de red, un puntero a la información del host y un puntero a las credenciales de red. Establece una conexión con el servidor especificado en la información del host con las credenciales de red proporcionadas.Una
network disconnect function
: la firma se define medianteNetworkDisconnectFunc
ensrc/common/network_connection.h
. Esta función incorpora un puntero a un contexto de red. Desconecta una conexión establecida previamente almacenada en el contexto de red.setupTransportInterfaceTestParam()
: se define ensrc/transport_interface/transport_interface_tests.h
. La implementación debe tener exactamente el mismo nombre y firma que se definen entransport_interface_tests.h
. Esta función incorpora un puntero a una estructura TransportInterfaceTestParam. Rellenará los campos de la estructura TransportInterfaceTestParam que se utiliza en la prueba de la interfaz de transporte.
Implemente UNITY_OUTPUT_CHAR para que los registros de salida de la prueba no se intercalen con los registros del dispositivo.
Llame a
runQualificationTest()
desde la aplicación. El hardware del dispositivo debe estar correctamente inicializado y la red debe estar conectada antes de la llamada.
Gestión de credenciales (clave generada en el dispositivo)
Cuando FORCE_GENERATE_NEW_KEY_PAIR en test_param_config.h
se establece en 1, la aplicación del dispositivo genera un nuevo par de claves en el dispositivo y genera la clave pública. La aplicación del dispositivo utiliza ECHO_SERVER_ROOT_CA y TRANSPORT_CLIENT_CERTIFICATE como CA raíz del servidor echo y certificado de cliente al establecer una conexión TLS con el servidor echo. IDT establece estos parámetros durante la ejecución de la calificación.
Gestión de credenciales (clave de importación)
La aplicación del dispositivo utiliza ECHO_SERVER_ROOT_CA, TRANSPORT_CLIENT_CERTIFICATE y TRANSPORT_CLIENT_PRIVATE_KEY en test_param_config.h
como CA raíz del servidor echo, certificado de cliente y clave privada de cliente al establecer una conexión TLS con el servidor echo. IDT establece estos parámetros durante la ejecución de la calificación.
Pruebas
En esta sección se describe cómo puede probar localmente la interfaz de transporte con las pruebas de calificación. Puede encontrar detalles adicionales en el archivo README.md que se proporciona en la sección transport_interface
También puede utilizar IDT para automatizar la ejecución. Consulte AWS IoT Device Tester para FreeRTOS en la Guía del usuario de FreeRTOS para obtener más información.
Habilitación de la prueba
Abra test_execution_config.h
y defina TRANSPORT_INTERFACE_TEST_ENABLED en 1.
Configuración del servidor echo para realizar las pruebas
Para realizar las pruebas locales, es necesario disponer de un servidor de eco al que se pueda acceder desde el dispositivo que ejecuta las pruebas. El servidor echo debe admitir TLS si la implementación de la interfaz de transporte admite TLS. Si aún no tiene uno, el repositorio GitHub FreeRTOS-Libraries-Integration-Tests
Configuración del proyecto para probarlo
En test_param_config.h
, actualice ECHO_SERVER_ENDPOINT y ECHO_SERVER_PORT con la configuración del punto de conexión y del servidor del paso anterior.
Configuración de las credenciales (clave generada en el dispositivo)
Establezca ECHO_SERVER_ROOT_CA con el certificado de servidor del servidor echo.
Establezca FORCE_GENERATE_NEW_KEY_PAIR en 1 para generar un par de claves y obtener la clave pública.
Vuelva a establecer FORCE_GENERATE_NEW_KEY_PAIR en 0 tras la generación de la clave.
Utilice la clave pública y la clave y el certificado de servidor para generar el certificado de cliente.
Establezca TRANSPORT_CLIENT_CERTIFICATE con el certificado de cliente generado.
Configuración de las credenciales (clave de importación)
Establezca ECHO_SERVER_ROOT_CA con el certificado de servidor del servidor echo.
Establezca TRANSPORT_CLIENT_CERTIFICATE con el certificado de cliente generado previamente.
Establezca TRANSPORT_CLIENT_PRIVATE_KEY con la clave privada de cliente generada previamente.
Creación e instalación de la aplicación
Cree e instale la aplicación con la cadena de herramientas que prefiera. Cuando se invoque a runQualificationTest()
, se ejecutarán las pruebas de la interfaz de transporte. Los resultados de la prueba se envían al puerto de serie.
nota
Para calificar oficialmente un dispositivo para FreeRTOS, debe validar el código fuente portado del dispositivo con los grupos de prueba OTA PAL y OTA E2E con AWS IoT Device Tester. Siga las instrucciones de Uso de AWS IoT Device Tester para FreeRTOS en la Guía del usuario de FreeRTOS para configurar AWS IoT Device Tester para la validación de la portabilidad. Para probar la portabilidad de una biblioteca concreta, se debe habilitar el grupo de pruebas correcto en el archivo device.json
de la carpeta configs
de AWS IoT Device Tester.