1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"ast":null,"code":"var Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\n\nvar defaultEncoding = require('./default-encoding');\n\nvar sync = require('./sync');\n\nvar toBuffer = require('./to-buffer');\n\nvar ZERO_BUF;\nvar subtle = global.crypto && global.crypto.subtle;\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n};\nvar checks = [];\n\nfunction checkNative(algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false);\n }\n\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false);\n }\n\n if (checks[algo] !== undefined) {\n return checks[algo];\n }\n\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8);\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function () {\n return true;\n }).catch(function () {\n return false;\n });\n checks[algo] = prom;\n return prom;\n}\n\nvar nextTick;\n\nfunction getNextTick() {\n if (nextTick) {\n return nextTick;\n }\n\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick;\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask;\n } else if (global.setImmediate) {\n nextTick = global.setImmediate;\n } else {\n nextTick = global.setTimeout;\n }\n\n return nextTick;\n}\n\nfunction browserPbkdf2(password, salt, iterations, length, algo) {\n return subtle.importKey('raw', password, {\n name: 'PBKDF2'\n }, false, ['deriveBits']).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3);\n }).then(function (res) {\n return Buffer.from(res);\n });\n}\n\nfunction resolvePromise(promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out);\n });\n }, function (e) {\n getNextTick()(function () {\n callback(e);\n });\n });\n}\n\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest;\n digest = undefined;\n }\n\n digest = digest || 'sha1';\n var algo = toBrowser[digest.toLowerCase()];\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out;\n\n try {\n out = sync(password, salt, iterations, keylen, digest);\n } catch (e) {\n return callback(e);\n }\n\n callback(null, out);\n });\n return;\n }\n\n checkParameters(iterations, keylen);\n password = toBuffer(password, defaultEncoding, 'Password');\n salt = toBuffer(salt, defaultEncoding, 'Salt');\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2');\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo);\n return sync(password, salt, iterations, keylen, digest);\n }), callback);\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/pbkdf2/lib/async.js"],"names":["Buffer","require","checkParameters","defaultEncoding","sync","toBuffer","ZERO_BUF","subtle","global","crypto","toBrowser","sha","sha1","sha256","sha384","sha512","checks","checkNative","algo","process","browser","Promise","resolve","importKey","deriveBits","undefined","alloc","prom","browserPbkdf2","then","catch","nextTick","getNextTick","queueMicrotask","setImmediate","setTimeout","password","salt","iterations","length","name","key","hash","res","from","resolvePromise","promise","callback","out","e","module","exports","keylen","digest","toLowerCase","Error","resp"],"mappings":"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","sourcesContent":["var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n"]},"metadata":{},"sourceType":"script"} |