I would be glad to offer the following list of small changes and fixes:
Pass expKey parameter of addRoundKey() by const reference to avoid unnecessary copy;
Use C++11 nullptr instead of NULL, make it clear that default value of iv parameter in encode() and decode() is empty QByteArray instead of implicit conversion from null pointer via QByteArray(const char *, int = -1) constructor;
Change parameter names in declarations of cipher(), invCipher() and byteXor() to match definitions;
Convert AES-NI-related files to headers, place functions with internal linkage to anonymous namespace to avoid exporting them, don't use inline specifier (inline keyword have different meaning in C++ rather than in C);
Use char literals instead of implementation-defined int-to-signed-char conversions where possible;
Set default value for padding argument in static RemovePadding() to match sample in README.
Thank you for this project!
I would be glad to offer the following list of small changes and fixes: