The wolfSSL embedded SSL/TLS library has support for several of the STM32 microcontrollers and for the hardware-based cryptography and random number generator offered by them as well.
Our most recent update is that wolfSSL now offers support for STM32Cube Expansion Package enhanced for STM32 toolset, adding on to previous support for the STM32 Standard Peripheral Library as well as the STM32Cube HAL (Hardware Abstraction Layer). wolfSSL also maintains and makes available this STM32Cube Expansion Package for wolfSSL to make it easy for users to pull wolfSSL directly into STM32CubeMX and STM32CubeIDE projects. To check out specific support for ST microcontrollers read below.
Don’t forget to check out a replay of our STM32CubeMXv6 Partner Webinar hosted by engineer David Garske on October 1st!
wolfSSL STMicroelectronics Support
The wolfSSL and wolfCrypt library support the following STMicroelectronics microcontrollers:
- STM32F-Series: STM32F1, STM32F2, STM32F4, STM32F7
- STM32L-Series: STM32L4, STM32L5
- STM32H-Series: STM32H7
- STM32WB-Series: STM32WB55
- STM32G-Series: STM32G0
For STM32 microcontrollers that have hardware crypto acceleration we fully support it.
- RNG Hardware:
- All of the STM32’s support hardware based RNG.
- PKA Hardware Acceleration for ECC:
- STM32WB55 and STM32L562.
- AES ECB/CBC/GCM:
- STM32F437, STM32H753, STM32F777, STM32H753, STM32L4A6, STM32WB55
- SHA256:
- STM32F437, STM32F777, STM32H753, STM32L4A6, STM32L552
Downloading STM32Cube Expansion Bundle
The STM32CubeIDE and STM32CubeMX tools enable quick adoption of the wolfSSL library using the STM32Cube Expansion bundle, which can be downloaded here:
https://www.wolfssl.com/files/ide/I-CUBE-wolfSSL.pack
To install the package:
- Run the “STM32CubeMX” tool.
- Under “Manage software installations” click “INSTALL/REMOVE” button.
- From Local and choose “I-CUBE-wolfSSL.pack”.
To create a Cube project with wolfSSL:
- Create or open an STM32Cube Project based on your hardware.
- Under “Software Packs” choose “Select Components”.
- Find and check all components for the wolfSSL.wolfSSL packs (wolfSSL / Core, wolfCrypt / Core and wolfCrypt / Test). Close
- Under the “Software Packs” section click on “wolfSSL.wolfSSL” and configure the basic parameters.
- For Cortex-M recommend “Math Configuration” -> “Single Precision Cortex-M Math”
- Generate Code
For more information on the package see:
https://github.com/wolfSSL/wolfssl/tree/master/IDE/STM32Cube
STM32 Benchmarks
A full list of STM32 benchmarks can be found here:
https://github.com/wolfSSL/wolfssl/tree/master/IDE/STM32Cube/STM32_Benchmarks.md
STM32F777 Cortex-M7 at 216 MHz:
Symmetric Algorithm | Software (MB/s) | Accelerated (MB/s) |
---|---|---|
AES-CBC-128 | 1.006 | 8.350 |
AES-GCM-128 | 0.041 | 6.494 |
SHA-256 | 1.782 | 3.467 |
Asymmetric Algorithm | Software (ops/sec) | Accelerated (ops/sec) SP Math Cortex-M |
---|---|---|
RSA 2048 public | 20.619 | 52.529 |
RSA 2048 private | 0.360 | 1.585 |
DH 2048 key gen | 2.023 | 3.279 |
DH 2048 agree | 1.072 | 3.292 |
ECC 256 key gen | 0.917 | 130.000 |
ECDHE 256 agree | 0.917 | 59.821 |
ECDSA 256 sign | 0.906 | 68.359 |
ECDSA 256 verify | 1.367 | 35.468 |
STM32L562E Cortex-M33 at 110 MHz
Symmetric Algorithm | Software (MB/s) | Accelerated (MB/s) |
---|---|---|
AES-CBC-128 | 0.121 | 4.468 |
AES-GCM-128 | 0.008 | 3.662 |
SHA-256 | 0.136 | 1.855 |
Asymmetric Algorithm | Software (ops/sec) | Accelerated (ops/sec) SP Math Cortex-M | Accelerated (ops/sec) ST PKA ECC |
---|---|---|---|
RSA 2048 public | 9.208 | 18.083 | 18.083 |
RSA 2048 private | 0.155 | 0.526 | 0.526 |
DH 2048 key gen | 0.833 | 1.129 | 1.129 |
DH 2048 agree | 0.411 | 1.128 | 1.128 |
ECC 256 key gen | 0.661 | 35.608 | 10.309 |
ECDHE 256 agree | 0.661 | 16.575 | 10.619 |
ECDSA 256 sign | 0.652 | 21.912 | 20.542 |
ECDSA 256 verify | 1.014 | 10.591 | 10.667 |
Additional STM32 Benchmarks
A full list of STM32 benchmarks can be found here:
https://github.com/wolfSSL/wolfssl/tree/master/IDE/STM32Cube/STM32_Benchmarks.md
About STMicroelectronics
At ST, we are 46,000 creators and makers of semiconductor technologies mastering the semiconductor supply chain with state-of-the-art manufacturing facilities. An independent device manufacturer, we work with our 100,000 customers and thousands of partners to design and build products, solutions and ecosystems that address their challenges and opportunities, and the need to support a more sustainable world. Our technologies enable smarter mobility, more efficient power and energy management, and the wide-scale deployment of the Internet of Things and 5G technology.
In 2019, the Company’s net revenues were $9.56 billion. Find out more at www.st.com.
References
wolfSSL Product Page
STM32 Product Page
STM32CubeMX
Check out the wolfSSL embedded SSL/TLS library, star us on Github, and learn more about the latest TLS 1.3 is available in wolfSSL. If you have any questions or run into any issues, contact us at facts@wolfssl.com, or call us at +1 425 245 8247.