For this question,  your goal is to implement cipher block chaining.
We've provided some code in the ID to get you started on this.
Here's the function we want you to write.
The inputs will be plaintext, which is just an array of bytes that needs to be encoded,
key, which will be a bytes array to be used as the key for the block encoder,
the initialization vector, the block size, and the block encoder.
To reinforce the idea of a block box encoder,
I've written 3 examples.
The first 2, nonencoder and xorencoder,
are silly toy encoders, and the last one, aesencoder,
uses the pycrypto implementation of aes.
Your code should work with all 3 of these encoders.
Finally, there is a test function which you can use to test your implementation.
