O problema parece estar com um bug no Cryptojs que faz com que a biblioteca não funcione se a string de entrada contiver novas linhas. Codificando o arquivo como este:
openssl enc -aes-256-cbc -in pup.jpg -pass pass:"password" | base64 | tr -d '\n' > pup.enc
Corrige o problema. O problema deseja com o JavaScript, mas com a codificação. Bem, e com JavaScript, porque há um bug no Cryptojs: https://code.google.com/p/crypto-js/issues/detail?id=38