How are you doing the encryption and decryption here? There's an input and an output encoding pass. It looks like you disabled the output encoding pass (if you're treating the ct object as a bitArray), but what about the input?
For example, if your input is bytes but you input it as a string, it will be UTF-8 encoded by default before encryption. This will add another byte to every byte whose high bit is set, which will expand your input by about 50%.
-- Mike