People want to forget v1 existed so there is no good doc to show. But essentially, v2 fixed some issues with message length (smaller messages would yield smaller encrypted bytes, which is not ideal). We also got rid XChaCha because it is not standardized and the added protections aren't needed inside Nostr messages.
v1: XChaCha20 with sha256(parity + ecdh) as a shared key per conversation
v2: secp256k1 ECDH, HKDF, padding, ChaCha20, HMAC-SHA256, base64
v1: https://github.com/coracle-social/nips/blob/7f98a7b8849c16f9d324e0ea15db4efda0ee84fb/44.md
v2: https://github.com/nostr-protocol/nips/blob/master/44.md
Thanks!!
What happens if a NIP44 (v1 or v2) message gets sent to a legacy NIP4 receiver? Does that client handle it?
No. The encryption is not backwards compatible so each other client will have to decide to support it or not.
And this replaces the giftwraps which were previously implemented in Amethyst Incognito DMs?
Ah, giftwraps is NIP24, and that's still there in the latest Amethyst.
So, what's the new thing for DMs?
Nip44 is used by GiftWraps, which is used by nip 24. :)
Of course, that makes sense!
Nipception