Some environments are very hard for cryptography. Javascript in the browser is inherently tricky for cryptography.