The
Web Crypto JavaScript API makes
it possible to perform cryptographic operations entirely on the client. No cryptographic information is created on or sent to a server.
So, for example, if you create and save a new key pair, only you (and—ephemerally—your trusted browser) have those keys;
there is no opportunity for a server to surreptitiously capture and store them.