For some reason, UAs have steered the current WebCrypto spec to only implement WebCrypto functions via async promises under window.crypto.subtle
.
Wanting to make computationally-intensive and potentially-parallelizable functions asynchronous is all well and good and all, but there’s lots of JS out there right now that needs the normal, synchronous versions of these functions. Not making it available in the browser (out of a desire to force programmers to use async) is just going to continue the issue of code using remote scripts for their crypto functions.