The problem with clientside crypto (besides the security) is what do you do with it in the backend? Without matching code to decrypt on the backend it's pretty useless - unless you're using node, rhino or something. Porting javascript to another language is a pain because of the way javascript handles the long integers generated by these kinds of algorithms.