UNPKG

sha3-wasm

Version:

WebAssembly implementation of Keccak hash functions

62 lines (46 loc) 5.74 kB
module.exports = loadWebAssembly loadWebAssembly.supported = typeof WebAssembly !== 'undefined' function loadWebAssembly (opts) { if (!loadWebAssembly.supported) return null var imp = opts && opts.imports var wasm = toUint8Array('AGFzbQEAAAABHQVgA39/fwBgBH9/f38Bf2ADf39/AX9gAABgAX8AAwcGAAECAAMEBQYBAQqAgAQGrQI8fgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALBzYGBm1lbW9yeQIABGluaXQAAANwYWQAAQZhYnNvcmIAAgdzcXVlZXplAAMJZl9wZXJtdXRlAAUKgBYGwwEAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQgA3A0AgAEIANwNIIABCADcDUCAAQgA3A1ggAEIANwPEByAAQgA3A2ggAEIANwNwIABCADcDeCAAQgA3A4ABIABCADcDiAEgAEIANwOQASAAQgA3A5gBIABCADcDoAEgAEIANwOoASAAQgA3A7ABIABCADcDuAEgAEIANwPAASAAQgA3A8gBIAAgATYCAAuAAQEBfyACIQQCQAJAAkACQAJAIAMOAgMCAQsLIAFCHzwAAAwCCyABQgE8AAAMAQsgAUIGPAAADAALAkADQCACQQFqQQhsIABwQQBGDQEgAkEBaiECIAFBAWohASABQgA8AAAMAAsLIAEgASkDAEKAAYQ3AwAgAkEBaiECIAIgBGsLvwEDA38BfgF/IAEhBSAAKAIAIQcgACgCBCAHQQhucCIEIARBCHBrIQMCQANAIANBCGwgB0YEQCAAEAVBACEDCyABIAJGDQECQCACIAFrQQhJDQAgACADaiAAIANqKQMIIAEpAwCFNwMIIAFBCGohASADQQhqIQMMAQsgACADaiAAIANqMQAIIAExAACFPAAIIAFBAWohASAD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') var ready = null var mod = { buffer: wasm, memory: null, exports: null, realloc: realloc, onload: onload } onload(function () {}) return mod function realloc (size) { mod.exports.memory.grow(Math.max(0, Math.ceil(Math.abs(size - mod.memory.length) / 65536))) mod.memory = new Uint8Array(mod.exports.memory.buffer) } function onload (cb) { if (mod.exports) return cb() if (ready) { ready.then(cb.bind(null, null)).catch(cb) return } try { if (opts && opts.async) throw new Error('async') setup({instance: new WebAssembly.Instance(new WebAssembly.Module(wasm), imp)}) } catch (err) { ready = WebAssembly.instantiate(wasm, imp).then(setup) } onload(cb) } function setup (w) { mod.exports = w.instance.exports mod.memory = mod.exports.memory && mod.exports.memory.buffer && new Uint8Array(mod.exports.memory.buffer) } } function toUint8Array (s) { if (typeof atob === 'function') return new Uint8Array(atob(s).split('').map(charCodeAt)) return (require('buf' + 'fer').Buffer).from(s, 'base64') } function charCodeAt (c) { return c.charCodeAt(0) }