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.
- Pull Request: #11267
- General Inquiries: facts@wolfssl.com
- Technical Support: support@wolfssl.com
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

