Web Cryptography API updates

The Web Cryptography API provides basic cryptographic operations in web applications, such as hashing, signature generation and verification, and encryption and decryption.

Since its initial implementation in Internet Explorer 11, the World Wide Web Consortium (W3C) specification has changed significantly. The Microsoft Edge implementation has been updated to reflect these changes.

Promise-based model

The W3C Web Cryptography API specification has changed from an event-driven model to a new model based on JavaScript Promises. Microsoft Edge introduces support for this new model and removes support for the legacy model.

The following table summarizes the API changes across versions.

Web Cryptography API area IE11 Microsoft Edge
CryptoOperation object Supported Not supported
KeyOperation object Supported Not supported
window.crypto property Supported behind vendor prefix (window.msCrypto) Supported (no prefix)
Key.type property Return type DOMString Return type KeyType
Key.algorithm property Return type Algorithm Return type KeyAlgorithm
Key.keyUsage property Return type sequence<DOMString> Return type sequence<KeyUsage>
SubtleCrypto methods (encrypt, decrypt, sign, verify, digest, generateKey, importKey, exportKey, wrapKey, unwrapKey) Return type CryptoOperation or KeyOperation Return type Promise; Changes to various parameter types (see spec for details)
onabort, oncomplete, onerror, onprogress event callbacks Supported Not supported