ComputeSharedSecret returns a shared secret key used to encrypt messages.
The private and public keys should be hex encoded.
Uses the Diffie-Hellman key exchange (ECDH) (RFC 4753).
Encrypt encrypts message with key using aes-256-cbc.
key should be the shared secret generated by ComputeSharedSecret.
Returns: base64(encrypted_bytes) + "?iv=" + base64(initialization_vector).