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 xchacha20.
key should be the shared secret generated by ComputeSharedSecret.
Returns: base64(1 + nonce + encrypted_bytes).