"also known as a dependency" - There are different kinds of dependencies. The ones I'm usually concerned with are the ones that cause you headaches when you try to get the software working on an exotic platform ten years from now. I've developed software for 30+ years, and along the way I have grown a strong disliking to external dependencies (be it Python packages, Boost C++ libraries, 3rd party C libraries or a hefty Mono or Java runtime).
Thanks for the reference to BearSSL - it appears to be very much in line with my own preferred design principles.
In your pursuit of "no dependencies", you made a classic blunder: making AES vulnerable to cache-timing attacks.
https://codeberg.org/ezcrypt/ezcrypt/src/commit/3268d71e80d3...
I'm not going to review the rest of your code. This is sufficient for me to recommend everyone run the other way screaming.