Yesterday, 08:44 PM
I wanted to follow up as I finally figired out my issue. The AES library functions were fine. The actual bug was that I had the s_td0/s_te0 table-loading loop AFTER the `if (gid >= GID_CNT) return;` check in the _comp kernel. When testing with a single-password wordlist, only thread 0 (gid=0) stayed alive past the early-return, so only one entry of each table got populated and the rest were zeros. The AES functions were silently reading garbage tables and producing the broken schedule I described.
Moving the table loading (and the SYNC_THREADS) above the early-return fixed it. Everything works now - mode 99000 cracks the test vector and the real vault attack is in progress.
Might be worth a comment in the AES include headers warning about this, since it would silently produce wrong results in any module that tests with low candidate counts. But anyway, reply needed but posting just in case someone is looking.
Moving the table loading (and the SYNC_THREADS) above the early-return fixed it. Everything works now - mode 99000 cracks the test vector and the real vault attack is in progress.
Might be worth a comment in the AES include headers warning about this, since it would silently produce wrong results in any module that tests with low candidate counts. But anyway, reply needed but posting just in case someone is looking.

