I implemented a simple chat that (tries to) encrypt messages end-to-end. I approached this problem by making both parties generate an ECDH keypair (P-384) and consequently share their public keys. Then, using one's own private key and the other's public key, I derive an AES shared key to encrypt and decrypt my messages. Assuming this is running on HTTPS:
- Is this a reliable end-to-end encryption?
- Is the additional encryption bad because I'm already using HTTPS?
- I'm not sure if I need HMAC and if so, how do I add it to my system?
- Can this be used for a conversation with more than 2 parties?