added ciphering functionality