I'm not familiar with this particular implementation, but in general, the ByteToStr() is only used to make a human-readable representation of the data. This is so it can be attached to email or other text-based protocols without being scrambled by text conversions or 7-bit ascii pipes. All actual encryption/decryption should be done on the binary stream.