UNPKG

@dioxide-js/silas

Version:

RPC utility for Silas

1 lines 45.2 kB
{"version":3,"file":"sha256.mjs","sources":["../../../../../node_modules/js-sha256/src/sha256.js"],"sourcesContent":["/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.10.1\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2023\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n"],"names":["global","crypto","require$$0","require$$1"],"mappings":"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,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AACxD,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACjE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AAChE,QAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAA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","x_google_ignoreList":[0]}