# wolfSSL NXP Hardware Acceleration Ports wolfSSL supports hardware acceleration on NXP DCP, LTC (KSDK), LPC55S69, and SE050. ## NXP LPC55S69 The LPC55S69 is a general purpose edge computing device, with dual ARM Cortex-M33 cores running up to 150 MHz, 640/320 KB internal flash/ram, TrustZone-M, a DSP accelerator, and extensive cryptographic acceleration. wolfSSL supports the following hardware acceleration on the LPC55S69: - TRNG - HashCrypt (Hash/AES Crypto Engine) - AES (128, 192, 256) encrypt/decrypt - AES-CBC, AES-ECB, AES-CTR, AES-OFB, AES-CFB - SHA-1, SHA-256 - CASPER (Asymmetric Crypto Accelerator) - RSA verify/encrypt/decrypt (up to 4096-bit, public key only) ### LPC55S69 Hardware Acceleration Caveats The following caveats should be noted about the LPC55S69 hardware acceleration: - AES-CTR mode fails when the counter wraps from all FF's to 0. User should ensure this never happens, by properly managing the iv/counter in use. - AES-CFB and AES-OFB only support full 16-byte blocks and multiples thereof. Encrypt/Decrypt requests of other sizes will fail. - RSA acceleration is only supported for public keys. Private key operations will use a fully software implementation. - When the HashCrypt engine is in use for SHA-1 or SHA-256, it must not be interrupted with another hash request or an AES request. The hash must be completed before another operation is requested. ### wolfSSL LPC55S69 Hardware Acceleration Enable To enable only the TRNG, define the following symbol: **`WOLFSSL_NXP_RNG_1`** To enable all LPC55S69 hardware acceleration, including the TRNG, define the following symbol: **`WOLFSSL_NXP_LPC55S6X`** NOTE: Both can be defined with no problem. ## NXP SE050 For details on wolfSSL integration with NXP SE050, see [README_SE050.md](./README_SE050.md). ## Support For questions please email support@wolfssl.com