Implementing mbedtls on STM32 with an external TCP/IP stack on SIM900 GSM module


I’m working on implementing TLS with mbedtls on STM32L4A6 MCU and using SIM900 GSM module with its integrated TCP/IP stack.

The STM MCU is communicating with the GSM module with AT commands sent and received through UART.

if I understand correctly the TLS implementation needs 2 things to function:

a TRNG (Hardware Random Number Generator) used inside mbedtls_hardware_poll() function (This STM MCU have a TRNG so that’s not a problem).

a networking interface; to use it we must override mbedtls_net_xxxx IO functions and pass them to mbedtls_ssl_set_bio() function.

Now these IO functions by default are using a BSD style socket API which is not available on the MCU because I’m going to use the GSM module TCP/IP stack with AT commands.

So my question is the following:

Can I just go to an IO function like mbedtls_net_send() (ofc with its parameters) and inside it just put something like uart_send(TCP_SEND_AT_COMMAND) ?

Hi @bayrem
I believe I have answered your question in our repository
Mbed TLS Team member