wolfCrypt on the Silicon Labs EFR32xG25 Secure Element

wolfSSL now supports hardware-accelerated crypto on the Silicon Labs EFR32 Series 2 Secure Element using wolfCrypt crypto callbacks.

Simply define WOLFSSL_SILABS_CRYPTOCB. wolfCrypt automatically registers the Secure Element at startup and routes supported operations to hardware, including:

  • Symmetric Ciphers: AES (ECB, CBC, CTR, GCM, CCM), ChaCha20-Poly1305
  • MAC & KDF: AES-CMAC, HKDF, PBKDF2
  • Hashing: SHA-2
  • Asymmetric: ECDSA, ECDH
  • Randomness: Hardware TRNG

Your application code remains unchanged.

Key Benefits

  • Automatic Fallback: Unsupported operations automatically fall back to software. You can also offload specific engines individually.
  • Hardware Security: On Secure Vault High parts, operations use wrapped keys and built-in key slots. Key material is never exposed to application memory.

Benchmark Performance

Testing was conducted on an EFR32FG25B222F1920IM56 (Secure Vault High) using wolfSSL 5.9.2. The software baseline compares C-only code against optimized Cortex-M Thumb2 assembly (WOLFSSL_ARMASM).

Algorithm Software (C) Software (Thumb2 asm) Secure Element SE vs C Speedup
AES-256-CBC-enc 627 KiB/s 710 KiB/s 2.57 MiB/s 4.2x
AES-256-GCM-enc 260 KiB/s 502 KiB/s 2.33 MiB/s 9.2x
AES-256-ECB-enc 638 KiB/s 711 KiB/s 2.78 MiB/s 4.5x
AES-256-CTR 625 KiB/s 705 KiB/s 2.57 MiB/s 4.2x
AES-CCM-enc 426 KiB/s 460 KiB/s 2.19 MiB/s 5.3x
SHA-256 1.23 MiB/s 1.99 MiB/s 3.67 MiB/s 3.0x
AES-256-CMAC 593 KiB/s 640 KiB/s 2.40 MiB/s 4.1x
HMAC-SHA-256 1.22 MiB/s 1.97 MiB/s 3.04 MiB/s 2.5x
ECDHE 256 agree 65.4 ops/s 65.3 ops/s 180.6 ops/s 2.8x
ECDSA 256 sign 67.8 ops/s 67.8 ops/s 173.8 ops/s 2.6x
ECDSA 256 verify 41.9 ops/s 41.9 ops/s 164.2 ops/s 3.9x

Note: The Secure Element consistently outperforms optimized assembly. ECC performance remains identical across software columns because both rely on wolfSSL’s SP Cortex-M assembly. To reproduce the assembly results, uncomment WOLFSSL_ARMASM in user_settings.h. The full 43-row benchmark is in the port README.

Getting Started

A GUI-free, headless example project is available in IDE/SimplicityStudio/xg25. It builds with slc-cli and GNU Arm, running full tests and benchmarks directly on the target hardware.

If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.

Download wolfSSL Now