Updated to add file encryption and decryption