Path: blob/master/node_modules/@bochilteam/scraper/lib/cjs/encryptions/crypto.js
1126 views
"use strict";1var __importDefault = (this && this.__importDefault) || function (mod) {2return (mod && mod.__esModule) ? mod : { "default": mod };3};4Object.defineProperty(exports, "__esModule", { value: true });5exports.createHash = exports.randomBytes = exports.randomUUID = void 0;6const crypto_1 = __importDefault(require("crypto"));7function randomUUID(opts) {8if (typeof crypto_1.default.randomUUID === 'function') {9return crypto_1.default.randomUUID(opts);10}11const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate12let poolPtr = rnds8Pool.length;13if (poolPtr > rnds8Pool.length - 16) {14crypto_1.default.randomFillSync(rnds8Pool);15poolPtr = 0;16}17// eslint-disable-next-line prefer-const18let rnds = rnds8Pool.slice(poolPtr, (poolPtr += 16));19rnds[6] = (rnds[6] & 0x0f) | 0x40;20rnds[8] = (rnds[8] & 0x3f) | 0x80;21return serializeUUID(rnds);22}23exports.randomUUID = randomUUID;24function randomBytes(size) {25return crypto_1.default.randomBytes(size).toString('hex');26}27exports.randomBytes = randomBytes;28function createHash(algorithm /* 'md4' | 'md5' | 'sha1' | 'sha256' | 'sha512 */, data) {29return crypto_1.default.createHash(algorithm).update(data).digest('hex');30}31exports.createHash = createHash;32const kHexBytes = [];33for (let i = 0; i < 256; ++i) {34kHexBytes.push((i + 0x100).toString(16).substr(1));35}36function serializeUUID(buf, offset = 0) {37return (kHexBytes[buf[offset]] +38kHexBytes[buf[offset + 1]] +39kHexBytes[buf[offset + 2]] +40kHexBytes[buf[offset + 3]] +41'-' +42kHexBytes[buf[offset + 4]] +43kHexBytes[buf[offset + 5]] +44'-' +45kHexBytes[(buf[offset + 6] & 0x0f) | 0x40] +46kHexBytes[buf[offset + 7]] +47'-' +48kHexBytes[(buf[offset + 8] & 0x3f) | 0x80] +49kHexBytes[buf[offset + 9]] +50'-' +51kHexBytes[buf[offset + 10]] +52kHexBytes[buf[offset + 11]] +53kHexBytes[buf[offset + 12]] +54kHexBytes[buf[offset + 13]] +55kHexBytes[buf[offset + 14]] +56kHexBytes[buf[offset + 15]]).toLowerCase();57}58//# sourceMappingURL=crypto.js.map5960