Today web developers are getting around the unavailability of modern hash / crypto algorithms in browser by either including an implementation of its operations in JavaScript or compiling a native one into WebAssembly. Aside from wasting bandwidth shipping algorithms that are already included in browsers that support TLS 1.3, this practice also has security implications, e.g. side-channel attacks
Proposal
Implement in WebCrypto :
- Argon2 (GitHub)
- Curve448 (Bugzilla)
- Curve25519 (Chrome platform Status - No signal since 2016)
- Curve secp256k1 (GitHub - For Bitcoin)
- ChaCha20-Poly1305 (TLS Caniuse)
- XChaCha20-Poly1305
–
See also