Laszlo Nagy gandalf at
Fri Jun 16 15:38:48 CEST 2006

> Not in this implementation:
> py> from Crypto.Cipher import AES
> py> crypt ='abcdefghijklmnop', AES.MODE_CBC)
> py> c = crypt.encrypt('1')
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> ValueError: Input strings must be a multiple of 16 in length
This is strange. In theory, any ECB mode cipher can be used to create a 
CBC mode cipher.
AFAIK, CBC creates one encrypted  block, and uses the one byte from the 
plain text to xor it
with the last encrypted byte. Finally it shifts the encrypted block. 
This way each input byte will
have a corresponding output byte, and there is no size limit for the 
plain text.

Frankly, I could write the CBC mode cipher using the (already existing) 
ECB cipher. Why we have this limitation?


More information about the Python-list mailing list