crypto/cts.c currently implements RFC 3962. It deviates from the basic CTS algorithm in two ways. The first is that it does not support encrypting data blocks smaller than the underlying block size. Reading and writing past the end of buffers will occur if it is attempted. Second, when the length of data to be encrypted is exactly one block, it is encrypted with plain CBC. Normally, when packets are of size less than or equal to the block size, the algorithm uses the IV as the "previous block" and swaps bits with that data instead. What would be the best way to implement these slightly two different behaviors? The primary difference between the two CTS methods seems to be what to do when the input size is equal to the block size. -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html