hemslo/keymaker-toolbox

View on GitHub
dist/keymaker-toolbox.min.js.map

Summary

Maintainability
Test Coverage
{"version":3,"sources":["keymaker-toolbox.min.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_sjcl","_sjcl2","Characters","lower","split","upper","number","special","keymakerToolbox","makeKey","password","salt","iterations","arguments","length","undefined","keylen","dk","misc","pbkdf2","codec","utf8String","toBits","hex","fromBits","types","allTypes","forEach","e","i","push","decs","match","map","parseInt","characters","dec","type","indices","index","splice","join"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,EAAQG,QAAQ,SACR,kBAAXC,SAAyBA,OAAOC,IAC9CD,QAAQ,QAASJ,GACS,gBAAZC,SACdA,QAAyB,gBAAID,EAAQG,QAAQ,SAE7CJ,EAAsB,gBAAIC,EAAQD,EAAW,OAC5CO,KAAM,SAASC,GAClB,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUT,OAGnC,IAAIC,GAASS,EAAiBD,IAC7BT,WACAW,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKZ,EAAOD,QAASC,EAAQA,EAAOD,QAASQ,GAG/DP,EAAOW,QAAS,EAGTX,EAAOD,QAvBf,GAAIU,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAASP,EAAQD,EAASQ,GAE/B,YAUA,SAASS,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GARvFG,OAAOC,eAAetB,EAAS,cAC7BuB,OAAO,GAGT,IAAIC,GAAQhB,EAAoB,GAE5BiB,EAASR,EAAuBO,GAIhCE,GACFC,MAAO,6BAA6BC,MAAM,IAC1CC,MAAO,6BAA6BD,MAAM,IAC1CE,OAAQ,aAAaF,MAAM,IAC3BG,QAAS,qCAAqCH,MAAM,KAGlDI,GACFC,QAAS,SAAiBC,EAAUC,GAClC,GAAIC,GAAaC,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,IAASA,UAAU,GACtFG,EAASH,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,GAAmB,GAAKA,UAAU,GAC9EV,EAAQU,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,GAC/ER,EAAQQ,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,GAC/EP,EAASO,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,GAChFN,EAAUM,UAAUC,QAAU,GAAsBC,SAAjBF,UAAU,IAAmB,EAAOA,UAAU,GAEjFI,EAAKhB,EAAAA,WAAeiB,KAAKC,OAAOT,EAAUT,EAAAA,WAAemB,MAAMC,WAAWC,OAAOX,GAAOC,EAAqB,EAATI,GACpGO,EAAMtB,EAAAA,WAAemB,MAAMG,IAAIC,SAASP,GAExCQ,KACAC,GAAY,QAAS,QAAS,SAAU,UAO5C,KANCvB,EAAOE,EAAOC,EAAQC,GAASoB,QAAQ,SAAUC,EAAGC,GAC/CD,GACFH,EAAMK,KAAKJ,EAASG,MAIH,IAAjBJ,EAAMX,QAAgBE,EAASS,EAAMX,OACvC,MAAOS,EAGT,IAAIQ,GAAOR,EAAIS,MAAM,SAASC,IAAI,SAAUJ,GAC1C,MAAOK,UAASL,EAAG,MAEjBM,EAAaJ,EAAKE,IAAI,SAAUG,GAClC,GAAIC,GAAOZ,EAAMW,EAAMX,EAAMX,OAC7B,OAAOZ,GAAWmC,GAAMD,EAAMlC,EAAWmC,GAAMvB,UAI7CwB,EAAUH,EAAWF,IAAI,SAAUL,EAAGC,GACxC,MAAOA,KAELU,EAAQ,CAOZ,OANAd,GAAME,QAAQ,SAAUU,GACtB,GAAIR,GAAIE,EAAKQ,GAASD,EAAQxB,MAC9ByB,GAAQD,EAAQT,GAChBS,EAAQE,OAAOX,EAAG,GAClBM,EAAWI,GAASrC,EAAWmC,GAAMN,EAAKQ,GAASrC,EAAWmC,GAAMvB,UAE/DqB,EAAWM,KAAK,KAI3BjE,GAAAA,WAAkBgC,GAIb,SAAS/B,EAAQD,GAEtBC,EAAOD,QAAUM","file":"keymaker-toolbox.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sjcl\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sjcl\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"keymakerToolbox\"] = factory(require(\"sjcl\"));\n\telse\n\t\troot[\"keymakerToolbox\"] = factory(root[\"sjcl\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\t\n\tvar _sjcl = __webpack_require__(1);\n\t\n\tvar _sjcl2 = _interopRequireDefault(_sjcl);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Characters = {\n\t  lower: 'abcdefghijklmnopqrstuvwxyz'.split(''),\n\t  upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''),\n\t  number: '0123456789'.split(''),\n\t  special: '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~'.split('')\n\t};\n\t\n\tvar keymakerToolbox = {\n\t  makeKey: function makeKey(password, salt) {\n\t    var iterations = arguments.length <= 2 || arguments[2] === undefined ? 100000 : arguments[2];\n\t    var keylen = arguments.length <= 3 || arguments[3] === undefined ? 32 : arguments[3];\n\t    var lower = arguments.length <= 4 || arguments[4] === undefined ? true : arguments[4];\n\t    var upper = arguments.length <= 5 || arguments[5] === undefined ? true : arguments[5];\n\t    var number = arguments.length <= 6 || arguments[6] === undefined ? true : arguments[6];\n\t    var special = arguments.length <= 7 || arguments[7] === undefined ? true : arguments[7];\n\t\n\t    var dk = _sjcl2.default.misc.pbkdf2(password, _sjcl2.default.codec.utf8String.toBits(salt), iterations, keylen * 8);\n\t    var hex = _sjcl2.default.codec.hex.fromBits(dk);\n\t\n\t    var types = [];\n\t    var allTypes = ['lower', 'upper', 'number', 'special'];\n\t    [lower, upper, number, special].forEach(function (e, i) {\n\t      if (e) {\n\t        types.push(allTypes[i]);\n\t      }\n\t    });\n\t\n\t    if (types.length === 0 || keylen < types.length) {\n\t      return hex;\n\t    }\n\t\n\t    var decs = hex.match(/.{2}/g).map(function (i) {\n\t      return parseInt(i, 16);\n\t    });\n\t    var characters = decs.map(function (dec) {\n\t      var type = types[dec % types.length];\n\t      return Characters[type][dec % Characters[type].length];\n\t    });\n\t\n\t    // ensure all types at least one\n\t    var indices = characters.map(function (e, i) {\n\t      return i;\n\t    });\n\t    var index = 0;\n\t    types.forEach(function (type) {\n\t      var i = decs[index] % indices.length;\n\t      index = indices[i];\n\t      indices.splice(i, 1);\n\t      characters[index] = Characters[type][decs[index] % Characters[type].length];\n\t    });\n\t    return characters.join('');\n\t  }\n\t};\n\t\n\texports.default = keymakerToolbox;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }\n/******/ ])\n});\n;\n//# sourceMappingURL=keymaker-toolbox.js.map"],"sourceRoot":"/source/"}