I have been through this thought process before. The conclusion I came too was that the implementations should be transparent, but that the user information should not. Basically I was not going to put up a list of everyones email addresses and keys anywhere, and certainly not who they connect with. The more I looked into the problem, the more I realised that the vast majority of users would rather sacrifice security…
Do you use Key Escrow for private key storage? How can the other receiver decrypt the file using his browser only? Where do you store the private key?
The users private key is AES encrypted with the password as key and sent to the server for storage. A JSON hash of their contacts is also encrypted in the same way and sent to the server for storage.