wolfSSL Cube pack for STM32 is now available!

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 Cube pack for STM32, adding on to previous support for the STM32 Standard Peripheral Library as well as the Cube HAL (Hardware Abstraction Layer). wolfSSL also maintains and makes available an 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 our STM32CubeMXv6 Partner Webinar hosted by engineer David Garske on October 1st! Stay tuned for more information.

wolfSSL STM Support

The wolfSSL and wolfCrypt library support the following STM microcontrollers:

  • STM32 F-Series: STM32F1, STM32F2, STM32F4, STM32F7
  • STM32 L-Series: STM32L4, STM32L5
  • STM32 H-Series: STM32H7
  • STM32 WB-Series: STM32WB55
  • STM32 G-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 Cube Pack Bundle

The STMCubeIDE and STM32CubeMX tools enable quick adoption of the wolfSSL library using the Cube Pack bundle, which can be downloaded here:
https://www.wolfssl.com/files/ide/I-CUBE-WOLFSSL-WOLFSSL.pack

To install the pack:

  1. Run the “STM32CubeMX” tool.
  2. Under “Manage software installations” click “INSTALL/REMOVE” button.
  3. From Local and choose “I-CUBE-WOLFSSL-WOLFSSL.pack”.

To create a Cube project with wolfSSL:

  1. Create or open a Cube Project based on your hardware.
  2. Under “Software Packs” choose “Select Components”.
  3. Find and check all components for the wolfSSL.wolfSSL packs (wolfSSL / Core, wolfCrypt / Core and wolfCrypt / Test). Close
  4. Under the “Software Packs” section click on “wolfSSL.wolfSSL” and configure the basic parameters.
  5. For Cortex-M recommend “Math Configuration” -> “Single Precision Cortex-M Math”
  6. Generate Code

For more information on the pack 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 AlgorithmSoftware (MB/s)Accelerated (MB/s)
AES-CBC-1281.0068.350
AES-GCM-1280.0416.494
SHA-2561.7823.467
Asymmetric AlgorithmSoftware (ops/sec)Accelerated (ops/sec)
SP Math Cortex-M
RSA 2048 public20.61952.529
RSA 2048 private0.3601.585
DH 2048 key gen2.0233.279
DH 2048 agree1.0723.292
ECC 256 key gen0.917130.000
ECDHE 256 agree0.91759.821
ECDSA 256 sign0.90668.359
ECDSA 256 verify1.36735.468

STM32L562E Cortex-M33 at 110 MHz

Symmetric AlgorithmSoftware (MB/s)Accelerated (MB/s)
AES-CBC-1280.1214.468
AES-GCM-1280.0083.662
SHA-2560.1361.855
Asymmetric AlgorithmSoftware (ops/sec)Accelerated (ops/sec)
SP Math Cortex-M
Accelerated (ops/sec)
ST PKA ECC
RSA 2048 public9.20818.08318.083
RSA 2048 private0.1550.5260.526
DH 2048 key gen0.8331.1291.129
DH 2048 agree0.4111.1281.128
ECC 256 key gen0.66135.60810.309
ECDHE 256 agree0.66116.57510.619
ECDSA 256 sign0.65221.91220.542
ECDSA 256 verify1.01410.59110.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
STM32F2 Standard Peripheral Library Documentation
ST 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. Contact us at facts@wolfssl.com with any questions, or to get help with using wolfSSL in your STM32-based project!