@awo00/smb2
Version:
A SMB2 implementation in TypeScript
65 lines (64 loc) • 2.4 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateGuid = exports.getRandomInt = exports.toWindowsPath = exports.toUnixPath = exports.toWindowsFilePath = exports.toUnixFilePath = void 0;
const crypto_1 = __importDefault(require("crypto"));
const toUnixFilePath = (value) => {
value = (0, exports.toUnixPath)(value);
if (value[0] !== "/" && value[0] !== ".")
value = `./${value}`;
if (value[0] === "/")
value = `.${value}`;
return value;
};
exports.toUnixFilePath = toUnixFilePath;
const toWindowsFilePath = (value) => {
if (value[0] === ".")
value = value.substring(1);
if (value[0] === "/")
value = value.substring(1);
value = (0, exports.toWindowsPath)(value);
return value;
};
exports.toWindowsFilePath = toWindowsFilePath;
const toUnixPath = (value) => {
value = value.replace(/\\/g, "/");
return value;
};
exports.toUnixPath = toUnixPath;
const toWindowsPath = (value) => {
value = value.replace(/\//g, "\\");
return value;
};
exports.toWindowsPath = toWindowsPath;
const getRandomInt = (min, max) => {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
};
exports.getRandomInt = getRandomInt;
const generateGuid = () => {
const timeLow = (0, exports.getRandomInt)(0, Math.pow(2, 32) - 1);
const timeMiddle = (0, exports.getRandomInt)(0, Math.pow(2, 16) - 1);
const timeHighAndVersion = 0x4000 | (0, exports.getRandomInt)(0, Math.pow(2, 12) - 1);
const clockSequenceHighAndReserved = 0x80 | (0, exports.getRandomInt)(0, Math.pow(2, 6) - 1);
const clockSequenceLow = (0, exports.getRandomInt)(0, Math.pow(2, 8) - 1);
const node = crypto_1.default.randomBytes(6);
const buffer = Buffer.alloc(16);
let offset = 0;
buffer.writeUInt32LE(timeLow, offset);
offset += 4;
buffer.writeUInt16LE(timeMiddle, offset);
offset += 2;
buffer.writeUInt16LE(timeHighAndVersion, offset);
offset += 2;
buffer.writeUInt8(clockSequenceHighAndReserved, offset);
offset += 1;
buffer.writeUInt8(clockSequenceLow, offset);
offset += 1;
node.copy(buffer, offset);
return buffer;
};
exports.generateGuid = generateGuid;
;