Bad (but not unexpected) news on the compression front.

The easy way to get compression into the existing code is to do it in this order:
quote:
source->encrypt->compress
It just took a couple of hours to implement this.

Unfortunately, the output from the encryption algorithm is extremely random - good for encryption, not so good for compression. This means that the compression routines cannot identify a reasonable sized dictionary to work with, and so the compression rates are very small.

The solution is to change the processing to:
quote:
source->compress->encrypt
This will require an extensive re-write of the existing code, and some creative thinking.