crypto: cfb - Simplify skcipher template implementation

The CFB template currently has four different code paths, for encryption
vs. decryption and in place vs. out-of-place, with a shared handler for
the final tail smaller than the block size.

This is unnecessary, and makes the code difficult to understand. So
let's simplify this, by implementing a single encryption routine that is
shared by all four usage modes. Given that the only fundamental
difference between CFB encryption and decryption is the order of the XOR
and AES encryption operations, everything else can be shared.

While at it, deal with the alignmask of the underlying cipher explicitly
for all input so we can omit it from the exposed skcipher.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
1 file changed