cancel
Showing results for 
Search instead for 
Did you mean: 

Choosing proper MCU for HTTPS webserver

Faust
Associate II

Hello,

recently I was testing HTTP webserver project on a NUCLEO-F429ZI board and it works ok. I have created a driver for LAN9303 (dual port PHY) tested it using shield based on this https://github.com/ATM-HSW/MbedOS-with-LAN9303

After it worked, I successfully modified my project to use HTTPS and it works ok, but it is really slow. I guess that is the case when there is no hardware crypto. Which MCU would be sufficient for task of running HTTPS webserver stored in flash? I guess 2MB flash is minimum (1MB for firmware and 1MB for server contents), but what kind of peripherals are required for hardware HTTPS crypto? Also, would that be difficult to implement offloading crypto operations to hardware? Or should the compiler take care of that?

I found this model: STM32H573RIV6, but I don't know if it has proper hardware for HTTPS. Is it a good choice? If not, please could anyone suggest proper MCU model?

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions
STea
ST Employee

Hello @Faust ,

Thank you for your interest in STM32 products. now answering your requests

i think that the Most suitable STM32 for your use case would be the H5 series.
In fact, STM32H573RIV6 is Suitable for Your HTTPS Webserver

  1. Hardware Cryptography Acceleration

    • AES, SHA, TRNG, PKA: Enhances HTTPS performance by offloading crypto operations from the CPU.
    • mbedTLS: Easily integrates with hardware crypto accelerators.
  2. Memory Requirements

    • 2MB Flash: Meets your 1MB firmware + 1MB server content needs.
    • 640KB SRAM: Ample for runtime data.
  3. High-Performance Core

    • ARM Cortex-M33 @ 250 MHz: Ensures efficient handling of multiple connections and data processing.
  4. Peripheral Support

    • Ethernet MAC: Essential for network connectivity.

Regards

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

4 REPLIES 4
STea
ST Employee

Hello @Faust ,

Thank you for your interest in STM32 products. now answering your requests

i think that the Most suitable STM32 for your use case would be the H5 series.
In fact, STM32H573RIV6 is Suitable for Your HTTPS Webserver

  1. Hardware Cryptography Acceleration

    • AES, SHA, TRNG, PKA: Enhances HTTPS performance by offloading crypto operations from the CPU.
    • mbedTLS: Easily integrates with hardware crypto accelerators.
  2. Memory Requirements

    • 2MB Flash: Meets your 1MB firmware + 1MB server content needs.
    • 640KB SRAM: Ample for runtime data.
  3. High-Performance Core

    • ARM Cortex-M33 @ 250 MHz: Ensures efficient handling of multiple connections and data processing.
  4. Peripheral Support

    • Ethernet MAC: Essential for network connectivity.

Regards

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
Faust
Associate II

Hello, @STea 

Thank you for your answer. Although I have already chosen said MCU for the project, I appreciate your help.

You mentioned mbedTLS as easy to integrate with HW crypto. Are there any examples showing how to create https webserver using this library? Can I use that library for commercial product?

I wonder if that would be easier to implement than tinkering with NetXDuo example (I am currently modifying NetXDuo crypto library on my own to support hw acceleration for AES GCM since ST stated that they won't add such support).

Regards

Hello @Faust ,

Indeed, MbedTLS could be easily implemented and leverage the Hardware Crypto accelerators on you MCU this is done for the stm32L5 series:

STM32CubeL5/Projects/STM32L562E-DK/Applications/mbedTLS/Crypto_Selftest at master · STMicroelectronics/STM32CubeL5 (github.com)

you will need to have an alternate implementation of the AES GCM for example instead of the software implementation. 
take a look at this file :

STM32CubeL5/Projects/STM32L562E-DK/Applications/mbedTLS/Crypto_Selftest/Src/gcm_alt.c at master · STMicroelectronics/STM32CubeL5 (github.com)
Regards

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
Faust
Associate II

Dear @STea 

Thanks for your suggestion, I will take a look at this example.

Regards