WOLFSSL HARDWARE CRYPTOGRAPHY SUPPORT

The following is a list of all hardware acceleration/cryptography platforms currently supported by wolfSSL.

Intel AES-NI (Xeon and Core 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

AVX1/AVX2 (Intel and AMD x86)

SHA-256
SHA-384
SHA-512
ChaCha20
Poly1305

RDRAND (Intel 64, IA-32 architectures) / RDSEED (Intel Broadwell, AMD Zen)
- Freescale Cryptographic Accelerator and Assurance Module (CAAM)

AES
Hashing

Freescale Coldfire SEC (NXP MCF547X and MCF548X)

DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit

Freescale Kinetis MMCAU K50, K60, K70 and K80 (ARM Cortex-M4 core)

MD5 128 bit digest
SHA1 160 bit digest
SHA256
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
AES-CCM 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit

STMicroelectronics STM32 F1, F2, F4, L1, W Series (ARM Cortex - M3/M4) - CubeMX and Std Per Lib

RNG
DES-CBC 64 bit
DES-ECB 64 bit Encrypt
3DES-CBC 192 bit
MD5 128 bit
SHA1 160 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit

Cavium NITROX (III/V PX processors)

RNG
AES-CBC 128, 192, 256 bit
3DES-CBC 192 bit
RC4 2048 bit maximum
HMAC MD5SHA1SHA256
RSA 512 - 4096 bit

- Cavium NITROX V
Texas Instruments TM4C1294 (ARM Cortex-M4F)

DES-CBC 64 bit
3DES-CBC 192 bit
AES-CCM 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-CBC 128, 192, 256 bit

- Nordic NRF51 (Series SoC family, 32-bit ARM Cortex M0 processor core)

AES-ECB 128 bit
RNG

Microchip PIC32 MX/MZ (Embedded Connectivity)

MD5 128 bit digest
SHA1 160 bit digest
SHA256
HMAC MD5SHA1SHA256
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit

Microchip/Atmel ATECC508A (compatible with any MPU or MCU including: Atmel SMART and AVR MCUs)

ECC 256 bit (NIST-P256)

- Microchip ATECC608B
- Microchip TA100
ARMv8

AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
SHA256

Intel QuickAssist Technology (Contact if interested)

RSA 512 - 4096 bit
SHA1 160 bit digest
SHA2 224, 256, 384 and 512 bit
AES-CBC 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
ECC 128, 256 bit
HMAC SHA1SHA2
MD5

- Freescale NXP LTC

Curve25519 256 bit
Ed25519 256 bit
AES-CCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
SHA1 160 bit digest
SHA256
ECC 128, 256 bit
ECC-DHE 128, 256 bit
RSA 512 - 4096 bit

Xilinx Zynq UltraScale+

RSA 2048/4096 bit
AES-GCM 256 bit
SHA3 384 bit

Xilinx Versal

RSA 2048/4096 bit
AES-GCM 128, 256 bit
SHA3 384 bit
ECDSA 384 bit (NIST-P384)
RNG

- Renesas RX65N

Curve25519 256 bit
Ed25519 256 bit
AES-GCM 128, 256 bit
AES-CBC 128, 256 bit
MD5
SHA1 160 bit digest
SHA256
SHA512
ECC 256 bit
RSA 2048 bit

- Renesas RX72N

Curve25519 256 bit
Ed25519 256 bit
AES-GCM 128, 256 bit
AES-CBC 128, 256 bit
MD5
SHA1 160 bit digest
SHA256
SHA512
ECC 256 bit
RSA 2048 bit

- Renesas RX MPU

Curve25519 256 bit
Ed25519 256 bit
AES-GCM 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
MD5
SHA384 160 bit digest
SHA256
SHA512
ECC 256 bit
RSA 2048 bit

- Renesas RA6M4

RNG CTR-DRBG
SHA256
AES-GCM 128 bits 256 bits
AES-CBC 128 bits 256 bits
RSA 1024 bits 2048 bits
ECC 256 bits (Only Available when using TLS connection)

- Renesas RZ/N2L

RNG CTR-DRBG
SHA1
SHA224
SHA256
SHA384
SHA512
SHA512/224
SHA512/256
AES-GCM 128 bits 256 bits
AES-CBC 128 bits 256 bits
RSA 1024 bits 2048 bits

Renesas Synergy DK-S7G2

AES-CBC 128 bit
SHA256
ECC 256 bit
RSA 2048 bit

- Cypress PSoC6 (Series SoC family, 32-bit ARM Cortex M4 processor core)

SHA 256, 512 bit
ECC