<script src="https://cdnjs.cloudflare.com/ajax/libs/forge/0.9.1/forge.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@cryptography/sha256@0.2.0/dist/umd/sha256.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sjcl/1.0.6/sjcl.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/asmCrypto/2.3.2/asmcrypto.all.es5.min.js"></script>
;
var buf = new Uint8Array(128);
window.crypto.getRandomValues(buf);
var str = String.fromCharCode.apply(null, buf);
crypto.subtle.digest("SHA-256", buf).then(() => {
deferred.resolve();
});
sha256(str);
forge.md.sha256.create().update(str).digest();
sjcl.hash.sha256.hash(str)
new asmCrypto.Sha256().process(buf).finish()