Web Cryptography
- RECJavaScript API for performing basic cryptographic operations in web applications
Chrome
- 4 - 36: Not supported (but has polyfill available)
- 37 - 109: Supported
- 110: Supported
- 111 - 113: Supported
Edge
- 12 - 18: Supported
- 79 - 108: Supported
- 109: Supported
Safari
- 3.1 - 7: Not supported (but has polyfill available)
- 7.1 - 10.1: Supported
- 11 - 16.2: Supported
- 16.3: Supported
- TP: Supported
Firefox
- 2 - 31: Not supported (but has polyfill available)
- 32 - 33: Disabled by default
- 34 - 108: Supported
- 109: Supported
- 110 - 111: Supported
Opera
- 9 - 23: Not supported (but has polyfill available)
- 24 - 93: Supported
- 94: Supported
IE
- 5.5: Not supported
- 6 - 10: Not supported (but has polyfill available)
- 11: Partial support
Chrome for Android
- 109: Supported
Safari on iOS
- 3.2 - 7.1: Not supported (but has polyfill available)
- 8 - 10.3: Supported
- 11 - 16.2: Supported
- 16.3: Supported
Samsung Internet
- 4 - 18.0: Supported
- 19.0: Supported
Opera Mini
- all: Not supported
Opera Mobile
- 10 - 12.1: Not supported (but has polyfill available)
- 73: Supported
UC Browser for Android
- 13.4: Supported
Android Browser
- 2.1 - 4.4.4: Not supported (but has polyfill available)
- 109: Supported
Firefox for Android
- 109: Supported
QQ Browser
- 13.1: Supported
Baidu Browser
- 13.18: Supported
KaiOS Browser
- 2.5: Supported
Many browsers support the [crypto.getRandomValues()](#feat=getrandomvalues)
method, but not actual cryptography functionality under crypto.subtle
.
- Resources:
- Cross-browser cryptography library
- MDN Web Docs - Web Crypto API
- Test suite for various algorithms/methods
- PKI.js - another crypto library for Public Key Infrastructure applications
- Microsoft Research JavaScript Cryptography Library
- Polyfill by Netflix with partial support
- Web Cryptography API shim for IE11 and Safari - set of bugfixes and workarounds of prefixed api implementations
- The History and Status of Web Crypto API