It's above my head, but there are a few PRs in the NIPs about this: 
GitHub
NIP-44: Encrypted Direct Message (Versioned), replaces NIP-4 by paulmillr · Pull Request #574 · nostr-protocol/nips
Simple solution that fixes broken cryptography and introduces versioning. Preview, PR to nostr-tools
tl;dr
confidentiality is achieved by xchacha(...