For MODE_OPENPGP, IV must be block_size bytes long for encryption
and block_size +2 bytes for decryption (in the latter case, it is
actually the encrypted IV which was prefixed to the ciphertext).
It is mandatory.

For all other modes, it must be block_size bytes longs. It is optional and
when not present it will be given a default value of all zeroes.

counter (callable) - (OnlyMODE_CTR). A stateful function that returns the next
counter block, which is a byte string of block_size bytes.
For better performance, use Crypto.Util.Counter.

segment_size (integer) - (OnlyMODE_CFB).The number of bits the plaintext and ciphertext
are segmented in.
It must be a multiple of 8. If 0 or not specified, it will be assumed to be 8.