i really need to review the aes stuff later
added salsa20 context and encryption/decryption functions