SecureChatAnywhere ESP32 project

I’m working on a hardware project to be able to use a smartphone to send and receive encrypted messages manually based on my old SecureChatAnywhere project for desktop computers (Java):
https://github.com/modrobert/SecureChatAnywhere

SecureChatAnywhere is a lightweight program written in Java with the purpose of making it easy to encrypt and decrypt any kind of text messages using AES-128/CBC symmetric encryption. The graphical user interface (GUI) is designed as a convenient “copy & paste tool” for computers to manage encryption and decryption stand-alone, in other words without relying on any kind of external communication.

Optimistically I trust desktop computers dealing with plaintext, but not smartphones since they are compromised by design (the cryptographic keys are in control by the vendors). The idea is that the smartphone only handles ciphertext since it is not trusted.

I’m using an ESP32S3 dev kit for the implementation of SecureChatAnywhere for use with a browser on smartphones (e.g. Android or IOS).

ESP32S3 devkit with display

Here’s the C programming progress so far:
[✓] AES-128/CBC with PKCS#7 padding
[✓] http server for ciphertext input and output viewed via browser on the smartphone
[✓] Bluetooth BLE 5.2 HID keyboard host with power save support (this took a lot of time)
[✓] USB 2.0 HID keyboard host
[✓] esp32 I2C display support
[   ] PCB design

All software parts have been tested working individually, I’m now at the stage of combining the software to work together as one. Eventually I will design a PCB and get a suitable case for the project.