The foundations of end-to-end encryption: Domain separation (with code example) | Hacker News Reader