i.MX6 CAAM with Integrity OS
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