AES-128 Encryption and Decryption (both CBC and CTR) in JavaScript