{"version":3,"file":"md5.mjs","names":["a: number[]","MD5: HashFn","HmacMD5: HMACHashFn"],"sources":["../src/md5.ts"],"sourcesContent":["import {\n  WordArray,\n  Hasher,\n  Hasher32,\n  HashFn,\n  HMACHashFn,\n} from './core';\n\n// Constants table\nconst T = /* @__PURE__ */ (() => {\n  const a: number[] = [];\n  for (let i = 0; i < 64; i += 1) {\n    a[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n  }\n  return a;\n})();\n\n/**\n * MD5 round function F\n */\nconst FF = (a: number, b: number, c: number, d: number, x: number, s: number, t: number): number => {\n  const n = a + ((b & c) | (~b & d)) + x + t;\n  return ((n << s) | (n >>> (32 - s))) + b;\n};\n\n/**\n * MD5 round function G\n */\nconst GG = (a: number, b: number, c: number, d: number, x: number, s: number, t: number): number => {\n  const n = a + ((b & d) | (c & ~d)) + x + t;\n  return ((n << s) | (n >>> (32 - s))) + b;\n};\n\n/**\n * MD5 round function H\n */\nconst HH = (a: number, b: number, c: number, d: number, x: number, s: number, t: number): number => {\n  const n = a + (b ^ c ^ d) + x + t;\n  return ((n << s) | (n >>> (32 - s))) + b;\n};\n\n/**\n * MD5 round function I\n */\nconst II = (a: number, b: number, c: number, d: number, x: number, s: number, t: number): number => {\n  const n = a + (c ^ (b | ~d)) + x + t;\n  return ((n << s) | (n >>> (32 - s))) + b;\n};\n\n/**\n * MD5 hash algorithm.\n */\nexport class MD5Algo extends Hasher32 {\n  _doReset(): void {\n    this._hash = new WordArray([\n      0x67452301,\n      0xefcdab89,\n      0x98badcfe,\n      0x10325476,\n    ]);\n  }\n\n  _doProcessBlock(M: number[], offset: number): void {\n    const _M = M;\n\n    // Swap endian\n    for (let i = 0; i < 16; i += 1) {\n      // Shortcuts\n      const offset_i = offset + i;\n      const M_offset_i = M[offset_i];\n\n      _M[offset_i] = (\n        (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff)\n          | (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n      );\n    }\n\n    // Shortcuts\n    const H = this._hash.words;\n\n    const M_offset_0 = _M[offset + 0];\n    const M_offset_1 = _M[offset + 1];\n    const M_offset_2 = _M[offset + 2];\n    const M_offset_3 = _M[offset + 3];\n    const M_offset_4 = _M[offset + 4];\n    const M_offset_5 = _M[offset + 5];\n    const M_offset_6 = _M[offset + 6];\n    const M_offset_7 = _M[offset + 7];\n    const M_offset_8 = _M[offset + 8];\n    const M_offset_9 = _M[offset + 9];\n    const M_offset_10 = _M[offset + 10];\n    const M_offset_11 = _M[offset + 11];\n    const M_offset_12 = _M[offset + 12];\n    const M_offset_13 = _M[offset + 13];\n    const M_offset_14 = _M[offset + 14];\n    const M_offset_15 = _M[offset + 15];\n\n    // Working variables\n    let a = H[0];\n    let b = H[1];\n    let c = H[2];\n    let d = H[3];\n\n    // Computation\n    a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n    d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n    c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n    b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n    a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n    d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n    c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n    b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n    a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n    d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n    c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n    b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n    a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n    d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n    c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n    b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n    a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n    d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n    c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n    b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n    a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n    d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n    c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n    b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n    a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n    d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n    c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n    b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n    a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n    d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n    c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n    b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n    a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n    d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n    c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n    b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n    a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n    d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n    c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n    b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n    a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n    d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n    c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n    b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n    a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n    d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n    c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n    b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n    a = II(a, b, c, d, M_offset_0, 6, T[48]);\n    d = II(d, a, b, c, M_offset_7, 10, T[49]);\n    c = II(c, d, a, b, M_offset_14, 15, T[50]);\n    b = II(b, c, d, a, M_offset_5, 21, T[51]);\n    a = II(a, b, c, d, M_offset_12, 6, T[52]);\n    d = II(d, a, b, c, M_offset_3, 10, T[53]);\n    c = II(c, d, a, b, M_offset_10, 15, T[54]);\n    b = II(b, c, d, a, M_offset_1, 21, T[55]);\n    a = II(a, b, c, d, M_offset_8, 6, T[56]);\n    d = II(d, a, b, c, M_offset_15, 10, T[57]);\n    c = II(c, d, a, b, M_offset_6, 15, T[58]);\n    b = II(b, c, d, a, M_offset_13, 21, T[59]);\n    a = II(a, b, c, d, M_offset_4, 6, T[60]);\n    d = II(d, a, b, c, M_offset_11, 10, T[61]);\n    c = II(c, d, a, b, M_offset_2, 15, T[62]);\n    b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n    // Intermediate hash value\n    H[0] = (H[0] + a) | 0;\n    H[1] = (H[1] + b) | 0;\n    H[2] = (H[2] + c) | 0;\n    H[3] = (H[3] + d) | 0;\n  }\n\n  _doFinalize(): WordArray {\n    // Shortcuts\n    const data = this._data;\n    const dataWords = data.words;\n\n    const nBitsTotal = this._nDataBytes * 8;\n    const nBitsLeft = data.sigBytes * 8;\n\n    // Add padding\n    dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n\n    const nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n    const nBitsTotalL = nBitsTotal;\n    dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n      (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff)\n        | (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n    );\n    dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n      (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff)\n        | (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n    );\n\n    data.sigBytes = (dataWords.length + 1) * 4;\n\n    // Hash final blocks\n    this._process();\n\n    // Shortcuts\n    const hash = this._hash;\n    const H = hash.words;\n\n    // Swap endian\n    for (let i = 0; i < 4; i += 1) {\n      // Shortcut\n      const H_i = H[i];\n\n      H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff)\n        | (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n    }\n\n    // Return final computed hash\n    return hash;\n  }\n\n  clone(): this {\n    const clone = super.clone.call(this);\n    clone._hash = this._hash.clone();\n\n    return clone;\n  }\n}\n\n/**\n * Shortcut function to the hasher's object interface.\n *\n * @param message - The message to hash.\n * @returns The hash.\n *\n * @example\n * ```js\n * const hash = MD5('message');\n * const hash = MD5(wordArray);\n * ```\n */\nexport const MD5: HashFn = Hasher._createHelper(MD5Algo);\n\n/**\n * Shortcut function to the HMAC's object interface.\n *\n * @param message - The message to hash.\n * @param key - The secret key.\n * @returns The HMAC.\n *\n * @example\n * ```js\n * const hmac = HmacMD5(message, key);\n * ```\n */\nexport const HmacMD5: HMACHashFn = Hasher._createHmacHelper(MD5Algo);"],"mappings":"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"}