UNPKG

ya-express-ntlm

Version:
53 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decode = exports.getFlags = exports.toHex = exports.getNtLmResponseData = exports.getNtlmEncoding = exports.getSecBufData = exports.getOSVersionStructure = exports.getSecBuf = void 0; function getSecBuf(buffer, offset) { const dataView = new DataView(buffer, offset); return { length: dataView.getInt16(0, true), // short little endian allocated: dataView.getInt16(2, true), // short little endian offset: dataView.getInt32(4, true), // long little endian }; } exports.getSecBuf = getSecBuf; function getOSVersionStructure(buffer, offset) { const dataView = new DataView(buffer, offset); return { majorVersion: dataView.getInt8(0), // byte minorVersion: dataView.getInt8(1), // byte buildNumber: dataView.getInt16(2, true), // short little endian unknown: dataView.getInt32(4, false), // long }; } exports.getOSVersionStructure = getOSVersionStructure; function getSecBufData(buffer, secBuf, encoding) { const buf = buffer.slice(secBuf.offset, secBuf.offset + secBuf.length); return Buffer.from(buf).toString(encoding); } exports.getSecBufData = getSecBufData; function getNtlmEncoding(flag) { const unicode = 0x1; // NTLMSSP_NEGOTIATE_UNICODE if (flag | unicode) { return 'ucs2'; } return 'utf8'; } exports.getNtlmEncoding = getNtlmEncoding; const getNtLmResponseData = (buffer, secBuf) => ({ hex: getSecBufData(buffer, secBuf, 'hex') }); exports.getNtLmResponseData = getNtLmResponseData; const toHex = (buffer) => Buffer.from(buffer).toString('hex'); exports.toHex = toHex; function getFlags(flags, value) { const str = flags .filter((flag) => value & flag.value) .map((flag) => flag.label) .join(' '); return str.replace(/NTLMSSP_NEGOTIATE_/g, ''); } exports.getFlags = getFlags; function decode(base64) { const b = Buffer.from(base64, 'base64'); return b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength); } exports.decode = decode; //# sourceMappingURL=parser-utils.js.map