wolfSSL provides support for the i.MX6 and i.MX7, which can use NXP's Cryptographic Assistance and Assurance Module (CAAM) to perform hardware encryption. This use of hardware encryption provides a significant performance increase when used on larger buffers, which can be seen on wolfSSL's benchmark page.
To show this performance increase in action, wolfSSL has run its benchmarks on an NXP i.MX6 with Green Hills INTEGRITY OS. The wolfSSL benchmark application runs various hashing algorithms and records the how efficiently and quickly they were performed. Below is a comparison of the data from software encryption benchmarks and hardware encryption benchmarks, showing how well the CAAM can improve performance:
Hardware encryption speeds (MB/s):
Block size - bytes |
SHA1 |
SHA224 |
SHA256 |
HMAC-SHA256 |
16 |
1.897 |
1.889 |
1.884 |
1.259 |
512 |
13.752 |
14.144 |
14.143 |
12.614 |
1024 |
21.337 |
22.291 |
22.314 |
20.192 |
2048 |
29.031 |
31.024 |
31.102 |
29.074 |
4096 |
34.879 |
37.996 |
38.027 |
36.450 |
Software encryption speeds (MB/s):
Block size - bytes |
SHA1 |
SHA224 |
SHA256 |
HMAC-SHA256 |
16 |
15.419 |
7.484 |
7.476 |
5.282 |
512 |
21.423 |
9.129 |
9.126 |
8.972 |
1024 |
21.565 |
9.165 |
9.162 |
9.082 |
2048 |
21.625 |
9.174 |
9.165 |
9.137 |
4096 |
21.686 |
9.192 |
9.195 |
9.174 |
References:
More information about NXP's cryptographic acceleration technology: https://www.nxp.com/applications/solutions/internet-of-things/secure-things/network-security-technology/cryptographic-acceleration-technology:NETWORK_SECURITY_CRYPTOG
NXP's i.MX6 product pages: https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-6-processors:IMX6X_SERIES
NXP's i.MX7 product pages: https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-7-processors:IMX7-SERIES