{"version":3,"sources":["jsdelivr-header.js","/npm/openssl-file@1.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACDA,MAAM,OAAS,QAAQ,UACjB,aAAe,OAAO,aACtB,eAAiB,OAAO,eACxB,WAAa,OAAO,WACpB,YAAc,OAAO,YAE3B,SAAS,aAAa,GAElB,OADQ,aAAa,EAAM,OAAO,MAAM,KAC/B,QAAQ,MACrB,CAEA,SAAS,eAAgB,EAAU,EAAM,EAAQ,EAAU,GAClD,OAAO,SAAS,KACjB,EAAW,OAAO,KAAK,EAAU,UACjC,IACG,OAAO,SAAS,KAAO,EAAO,OAAO,KAAK,EAAM,WAGvD,EAAQ,GAAS,EAKjB,IAJA,IAAI,EAAM,IAAI,OAAO,GACjB,EAAK,IAAI,OAAO,GAChB,EAAM,IAAI,OAAO,GAEd,EAAS,GAAK,EAAQ,GAAG,CAC5B,IAAI,EAAO,WAAW,GACtB,EAAK,OAAO,GACZ,EAAK,OAAO,GACR,GACA,EAAK,OAAO,GACd,EAAM,EAAK,SAEX,IAAI,EAAO,EAEb,GAAI,EAAS,EAAG,CACZ,IAAI,EAAW,EAAI,OAAS,EAC5B,EAAO,KAAK,IAAI,EAAQ,EAAI,QAC5B,EAAI,KAAK,EAAK,EAAU,EAAG,GAC3B,GAAU,CACd,CACA,GAAI,EAAO,EAAI,QAAU,EAAQ,EAAG,CAChC,IAAI,EAAU,EAAG,OAAS,EACtB,EAAS,KAAK,IAAI,EAAO,EAAI,OAAS,GAC1C,EAAI,KAAK,EAAI,EAAS,EAAM,EAAO,GACnC,GAAS,CACb,CACJ,CAEA,OADA,EAAI,KAAK,GACF,CAAE,IAAK,EAAK,GAAI,EAC3B,CAEA,SAAS,cAAc,EAAM,EAAK,EAAI,GAClC,IAAI,EACA,EAAY,aAAa,IACd,IAAZ,IACC,EAAO,YAAY,IACvB,IAAI,EAAQ,GACT,IACC,EAAQ,YACZ,IAEI,GAFA,IAAC,EAAG,GAAE,GAAM,eAAe,EAAI,EAAM,EAAW,MAAO,GACvD,EAAO,EAKP,EAHA,EAAI,OAGgB,KAAK,KAAK,EAAI,OAAS,GAAa,EAFpC,EAIxB,IAAI,EAAI,OAAO,MAAM,EAAM,QAAU,EAAO,EAAK,OAAS,GAAK,GAC5D,IACC,GAAQ,EAAE,MAAM,EAAO,EAAG,EAAM,OAAQ,SACxC,GAAQ,EAAK,KAAK,EAAG,IAEzB,IAAI,EAAI,eAAe,EAAM,EAAK,GAGlC,OAFA,GAAQ,EAAE,OAAO,GAAK,KAAK,EAAG,GAC9B,GAAQ,EAAE,QAAQ,KAAK,EAAG,GACnB,CACX,CAEA,OAAO,QAAU,CAAC,EAClB,OAAO,QAAQ,eAAiB,eAChC,OAAO,QAAQ,cAAgB","file":"/npm/openssl-file@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/openssl-file@1.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Author: Luca Lindhorst <info@lucalindhorst.de>\n * Copyright: Luca Lindhorst 2018\n */\n\nconst crypto = require('crypto');\nconst createCipher = crypto.createCipher;\nconst createCipheriv = crypto.createCipheriv;\nconst createHash = crypto.createHash;\nconst randomBytes = crypto.randomBytes;\n\nfunction getBlockSize(algo){\n    let c = createCipher(algo, Buffer.alloc(64));\n    return c.final().length;\n}\n\nfunction EVP_BytesToKey (password, salt, keyLen, hashName, ivLen) {\n    if (!Buffer.isBuffer(password)) \n        password = Buffer.from(password, 'ascii')\n    if (salt) {\n      if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'ascii')\n    }\n    \n    ivLen = ivLen || 0;\n    var key = new Buffer(keyLen)\n    var iv = new Buffer(ivLen)\n    var tmp = new Buffer(0)\n  \n    while (keyLen > 0 || ivLen > 0) {\n        let hash = createHash(hashName);\n        hash.update(tmp)\n        hash.update(password)\n        if (salt)\n            hash.update(salt)\n          tmp = hash.digest()\n  \n          var used = 0\n  \n        if (keyLen > 0) {\n            var keyStart = key.length - keyLen;\n            used = Math.min(keyLen, tmp.length);\n            tmp.copy(key, keyStart, 0, used);\n            keyLen -= used;\n        }\n        if (used < tmp.length && ivLen > 0) {\n            var ivStart = iv.length - ivLen;\n            var length = Math.min(ivLen, tmp.length - used);\n            tmp.copy(iv, ivStart, used, used + length);\n            ivLen -= length;\n        }\n    }\n    tmp.fill(0)\n    return { key: key, iv: iv }\n}\n\nfunction opensslEncBuf(algo, inp, pw, useSalt){\n    let salt;\n    let blockSize = getBlockSize(algo);\n    if(useSalt !== false)\n        salt = randomBytes(8);\n    let magic = \"\"; \n    if(salt)\n        magic = \"Salted__\";\n    let {key, iv} = EVP_BytesToKey(pw, salt, blockSize, \"md5\", blockSize);\n    let offs = 0;\n    let encryptedDataSize;\n    if(!inp.length){\n        encryptedDataSize = blockSize;\n    }else{\n        encryptedDataSize = Math.ceil(inp.length / blockSize) * blockSize;\n    }\n    let b = Buffer.alloc(magic.length + (salt ? salt.length : 0) + encryptedDataSize);\n    if(salt){\n        offs += b.write(magic, 0, magic.length, \"ascii\");\n        offs += salt.copy(b, offs);\n    }\n    let c = createCipheriv(algo, key, iv);\n    offs += c.update(inp).copy(b, offs);\n    offs += c.final().copy(b, offs);\n    return b;\n}\n\nmodule.exports = {};\nmodule.exports.EVP_BytesToKey = EVP_BytesToKey;\nmodule.exports.opensslEncBuf = opensslEncBuf;"]}