DF-2369
Multi-block CFB1 never advances input/outBuffer leaking plaintext and stale output as ciphertext for blocks > 1
Summary
In both rijndael_blockEncrypt MODE_CFB1 and rijndael_blockDecrypt MODE_CFB1 per-block outer loop for(i=numBlocks i>0 i--) never advances input or outBuffer pointers unlike every ECB/CBC branch (which all do input+=16 outBuffer+=16). For numBlocks>1 function re-operates on same first 16 bytes every iteration never touches outBuffer[16..16*numBlocks-1] yet returns 128*numBlocks claiming it produced that many bits. Encrypt leaves plaintext for blocks 2..n untouched in ciphertext output (confidentiality break). Decrypt re-reads input[0..15] each block leaves output[16..] uninitialised/stale. No in-tree kernel caller uses MODE_CFB1 (only test00.c) so latent.
No comments yet.