At wolfSSL we support hardware cryptography for a wide range of platforms. The benefits of hardware cryptography include reduced code footprint size, improved security, acceleration of cryptographic operations, and utilization of true random number generators. For example, this allows everything from wolfBoot to TLS cipher suites to enjoy acceleration of cryptographic operations.
Furthermore, we have deep partnerships with industry leaders such as Intel, NXP, and Renesas. We support standard Intel instruction extensions such as AES-NI, AVX, and ADX and BMI2, and have recently published a joint whitepaper on using wolfBoot with 11th Gen Intel Core processors. We also support NXP’s Cryptographic Accelerator and Assurance Module (CAAM), and have leveraged this for hardware acceleration on a number of NXP i.MX series processors. Other examples include Espressif and Analog Devices, to name but a few.
If you’re curious for a list of every hardware cryptography scheme and platform we have enabled, then read on:
- AES-NI: Intel 64 and IA-32 Xeon and Core, and AMD Zen processor families.
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit AES–ECB 128, 192, 256 bit AES–CTR 128, 192, 256 bit References:
-
AVX1/AVX2: Intel and AMD x86.
SHA3, SHA2 SHA-256, SHA-384, SHA-512 AES–GCM 128, 192, 256 bits ChaCha20-Poly1305 256 bit AEAD stream cipher Poly1305 References:
- https://www.wolfssl.com/wolfssl-performance-intel-x86_64-part-2/
- https://www.wolfssl.com/wolfssl-performance-intel-x86_64-part-3/
- https://www.wolfssl.com/intels-extended-instructions-accelerates-hash-algorithms/
-
Intel ADX and BMI2: Intel and AMD x86.
RSA Curve25519 256 bit Ed25519 256 bit References:
- https://www.wolfssl.com/wolfssl-performance-intel-x86_64-part-5/
- https://www.wolfssl.com/wolfssl-performance-intel-x86_64-part-6/
-
RDRAND/RDSEED: Intel 64 and IA-32, and AMD Zen processor families.
RNG References:
- https://www.intel.com/content/www/us/en/developer/articles/guide/intel-digital-random-number-generator-drng-software-implementation-guide.html
- https://www.amd.com/content/dam/amd/en/documents/pdfs/developer/aocl/amd-secure-random-number-generator-library-2.0-whitepaper.pdf
- Platform Security Architecture (PSA) Crypto API:
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit AES–ECB 128, 192, 256 bit AES–CTR 128, 192, 256 bit SHA2 SHA-224, SHA-256 SHA1 ECC 256 bit (NIST-P256) RNG References:
- https://www.wolfssl.com/platform-security-architecture-psa-crypto-api-support-wolfssl/
- https://github.com/wolfSSL/wolfssl/tree/master/wolfcrypt/src/port/psa
- NXP Coldfire SEC: (MCF547X and MCF548X family of processors)
AES–CBC 128, 192, 256 bit 3DES–CBC 192 bit DES–CBC 64 bit References:
-
NXP Coldfire CAU/mmCAU: (NXP Coldfire and Kinetis)
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit AES–ECB 128, 192, 256 bit AES–CTR 128, 192, 256 bit 3DES SHA2 SHA-256 SHA1 HMAC SHA1, SHA2 MD5 References:
- https://www.wolfssl.com/docs/nxp/
- https://www.wolfssl.com/improved-nxp-mmcau-crypto-hardware-performance/
- https://www.wolfssl.com/improved-nxp-mmcau-crypto-hardware-performance-2/
-
STMicroeletronics: STM32H753ZI, STM32F437, STM32L4A6Z, STM32L562E, STM32F777, STM32U585
AES–GCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit SHA2 SHA-224, SHA-256 RNG References:
- https://github.com/wolfSSL/wolfssl/blob/master/IDE/STM32Cube/STM32_Benchmarks.md
- https://www.wolfssl.com/docs/benchmarks/#stm32
- https://www.wolfssl.com/docs/benchmarks/#stm32f777ni
- STMicroeletronics: STM32WB55, STM32WL55
AES–CBC 128, 192, 256 bit SHA2 SHA-256 ECC 256 bit (NIST-P256) RNG References:
- https://github.com/wolfSSL/wolfssl/blob/master/IDE/STM32Cube/STM32_Benchmarks.md
- https://www.wolfssl.com/support-stm32_pka-accelerator/
-
Marvell (Cavium) Nitrox V and III:
AES–GCM 128 bit AES–CBC 128, 192, 256 bit RSA 2048 bit ECC ECDSA RNG References:
- https://www.wolfssl.com/wolfssl-asynchronous-support/
- https://www.wolfssl.com/wordpress/wp-content/uploads/2018/04/wolfssl_async.pdf
-
Marvell (Cavium) Octeon II/III:
AES–GCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit 3DES–CBC References:
- https://www.wolfssl.com/wolfssl-on-cavium-octeon/
- https://github.com/wolfSSL/wolfAsyncCrypt/blob/master/wolfcrypt/src/port/cavium/README_Octeon.md
-
Microchip PIC32 MX/MZ:
AES–CTR 128, 192, 256 bit AES–CBC 128, 192, 256 bit DES/3DES–CBC 64 bit / 192 bit SHA2 SHA-256 SHA1 HMAC SHA1, SHA2 MD5 References:
-
Texas Instruments Crypto Connected Launchpad: (TI TM4C series boards)
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit AES–ECB 128, 192, 256 bit AES–CTR 128, 192, 256 bit DES–CBC 64 bit 3DES–CBC 192 bit SHA2 SHA-224, SHA-256 SHA1 MD5 References:
-
Nordic NRF5x:
AES–ECB 128 bit RNG References:
- https://www.wolfssl.com/true-random-vs-pseudorandom-number-generation/
- https://www.wolfssl.com/wolfssl-on-nordic-nrf52/
-
Microchip/Atmel ATECC508A/ATECC608A:
ECC 256 bit (NIST-P256) References:
- https://www.wolfssl.com/docs/atmel/
- https://www.wolfssl.com/wolfssl-support-atecc508aatecc608a-crypto-coprocessor-2/
- https://www.wolfssl.com/using-wolfssl-on-the-atmel-atecc508a-with-tls-1-3-tls13/
-
Espressif ESP32: ESP32, ESP32-C3, ESP32-C6, ESP32-S2, ESP32-S3.
AES–GCM 128, 192, 256 bits AES–CBC 128, 192, 256 bits RSA Up to 4096 bits SHA2 SHA-224, SHA-256, SHA-384, SHA-512 SHA1 RNG Note: Support for all AES/RSA bit sizes and truncated SHA2 acceleration will vary across devices. E.g. no AES-192 HW on the S2, S3, and no SHA-384, SHA-512 HW support on C3, C6. Consult the user_settings.h in reference 3 for more info.
References:
- https://www.wolfssl.com/docs/espressif/
- https://www.wolfssl.com/espressif-risc-v-hardware-accelerated-cryptographic-functions-up-to-1000-faster-than-software/
- https://github.com/wolfSSL/wolfssl/blob/master/IDE/Espressif/ESP-IDF/examples/template/components/wolfssl/include/user_settings.h
-
ARMV8:
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit SHA256 References:
-
Arm® TrustZone® CryptoCell-310: nRF52840.
RSA 2048 bit AES–CBC 128, 192, 256 bit ECC 256 bit ECDSA 256 bit SHA256 RNG References:
- Intel QuickAssist Technology:
RSA 2048 bits AES–GCM 128, 192, 256 bits AES–CBC 128, 192, 256 bits 3DES SHA2 SHA-256, SHA-384, SHA-512 SHA1 HMAC SHA1, SHA2 MD5 References:
-
NXP LTC (KSDK):
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bit AES–CBC 128, 192, 256 bit AES–ECB 128, 192, 256 bit AES–CTR 128, 192, 256 bit DES/3DES ECC 256 bit ECDSA 256 bit Curve25519 256 bit Ed25519 256 bit SHA2 SHA-256, SHA-384, SHA-512 SHA1 HMAC SHA1, SHA2 MD5 References:
- https://www.wolfssl.com/docs/nxp/
- https://www.wolfssl.com/nxp-kinetis-k8x-ltc-support-for-pki-rsaecc-with-tls13/
-
NXP SE050:
ECC 256 bit ECDSA 256 bit Curve25519 256 bit Ed25519 256 bit RNG References:
- https://www.wolfssl.com/ssltls-support-nxp-se050-wolfssl/
- https://www.wolfssl.com/wolfssl-nxp-se050-support-update/
- https://www.wolfssl.com/wolfssl-support-nxp-se050-scp03/
- https://www.wolfssl.com/wolfssl-nxp-se050-support-benchmarks/
- CAAM: NXP i.MX 6, i.MX 7, and i.MX 8
- https://www.wolfssl.com/caam-supported-wolfssl/
- https://www.wolfssl.com/docs/benchmarks/#nxp_i.mx6
- https://www.wolfssl.com/mx6-caam-integrity-os/
- https://www.wolfssl.com/caamqnxi-mx8/
-
Silicon Labs EFR32:
AES–GCM 128, 192, 256 bits AES–CCM 128, 192, 256 bits AES–CBC 128, 192, 256 bit SHA2 SHA-224, SHA-256 SHA1 ECC 256 bit ECDSA 256 bit RNG References:
-
Renesas RX65N and RX72N:
AES–GCM 128, 256 bits AES–CBC 128, 256 bit SHA2 SHA-256, SHA-512 SHA1 HMAC SHA1, SHA2 RNG References:
- https://www.wolfssl.com/docs/renesas/
- https://www.wolfssl.com/docs/wolfssl-renesas-tsip/
- https://www.wolfssl.com/support-renesas-tsip-v1-13-rx72n/
- https://www.wolfssl.com/docs/benchmarks/#renesasrx65n
- Renesas Synergy DK-S7G2:
RSA 2048 bits AES–CBC 128 bit SHA2 SHA-256 SHA1 HMAC SHA1, SHA2 ECC 256 bit ECDSA 256 bit References:
-
Cypress PSoC6 (32-bit Arm Cortex M4):
SHA2 SHA-256, SHA-512 ECC Supports up to NIST P-521 -
Xilinx Versal:
AES–GCM 256 bits RSA 2048 bit ECC NIST P-384, P-521 SHA3 SHA-384 RNG References:
- Xilinx Zynq UltraScale+ MPSoC:
AES–GCM 256 bits RSA 2048, 4096 bits SHA3 SHA-384 References:
- https://www.wolfssl.com/wolfssl-running-xilinx-versal-hardware-encryption/
- https://docs.xilinx.com/v/u/en-US/wp512-accel-crypto
-
MAXQ1065 and MAXQ1080:
AES–GCM 128, 192, 256 bit AES–CCM 128, 192, 256 bits ECC NIST P-256 SHA2 SHA-256 References:
AES–GCM | 128, 192, 256 bits |
AES–CCM | 128, 192, 256 bits |
AES–CTR | 128, 192, 256 bits |
AES–XTS | 128, 192, 256 bits |
ECC | |
Curve25519 | 256 bit |
SHA2 | SHA-256, SHA-384, SHA-512 |
SHA1 | |
HMAC | SHA1, SHA2 |
References:
Do you have a platform requiring hardware cryptographic support that isn’t on our list? Or are you curious about benchmarking? Reach out to us at facts@wolfSSL.com with the details of your platform and we will be glad to help you! Also, check out our wolfSSL and wolfCrypt benchmark page.
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