Web Cryptography
- RECJavaScript API for performing basic cryptographic operations in web applications
Chrome
- 4 - 36: Not supported (but has polyfill available)
- 37 - 123: Supported
- 124: Supported
- 125 - 127: Supported
Edge
- 12 - 18: Supported
- 79 - 123: Supported
- 124: Supported
Safari
- 3.1 - 7: Not supported (but has polyfill available)
- 7.1 - 10.1: Supported
- 11 - 17.3: Supported
- 17.4: Supported
- 17.5 - TP: Supported
Firefox
- 2 - 31: Not supported (but has polyfill available)
- 32 - 33: Disabled by default
- 34 - 124: Supported
- 125: Supported
- 126 - 128: Supported
Opera
- 9 - 23: Not supported (but has polyfill available)
- 24 - 108: Supported
- 109: Supported
IE
- 5.5: Not supported
- 6 - 10: Not supported (but has polyfill available)
- 11: Partial support
Chrome for Android
- 124: Supported
Safari on iOS
- 3.2 - 7.1: Not supported (but has polyfill available)
- 8 - 10.3: Supported
- 11 - 17.3: Supported
- 17.4: Supported
- 17.5: Supported
Samsung Internet
- 4 - 23: Supported
- 24: Supported
Opera Mini
- all: Not supported
Opera Mobile
- 10 - 12.1: Not supported (but has polyfill available)
- 80: Supported
UC Browser for Android
- 15.5: Supported
Android Browser
- 2.1 - 4.4.4: Not supported (but has polyfill available)
- 124: Supported
Firefox for Android
- 125: Supported
QQ Browser
- 14.9: Supported
Baidu Browser
- 13.52: Supported
KaiOS Browser
- 2.5: Supported
- 3: 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