IAmKale
Show HN: Hardware-backed end-to-end message encryption, in the browser
When I first discovered WebAuthn in 2019 I imagined it being used for something like this, but never imagined something like the prf extension enabling true E2EE like this. Everything happens in the browser; there's no server used in any of this because to me that defeated the purpose. I also challenged myself to make a decent UX on top of this because what good is strong encryption if it's not...
Security Keys in the Land of Passkeys
Encrypting Data in the Browser Using WebAuthn
The pair of server and browser libraries (with a third TypeScript types library) supports IE10+ and get WebAuthn down to four method calls with a small handful of arguments. And since the libraries take care of JSON serialization devs don't need to think about how to get random buffers from the server to the browser and back.
If this means anything to you the server library is FIDO-conformant. It's not FIDO certified but it's pretty darn close, and will handle just about every WebAuthn use case you can think of. There are still things the server has to do to properly incorporate WebAuthn support, but the work I've done significantly reduces most of the common stuff to a couple of libraries you can `npm install` and go.