UNPKG

ya-express-ntlm

Version:
42 lines 1.61 kB
export 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 }; } export 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 }; } export function getSecBufData(buffer, secBuf, encoding) { const buf = buffer.slice(secBuf.offset, secBuf.offset + secBuf.length); return Buffer.from(buf).toString(encoding); } export function getNtlmEncoding(flag) { const unicode = 0x1; // NTLMSSP_NEGOTIATE_UNICODE if (flag | unicode) { return 'ucs2'; } return 'utf8'; } export const getNtLmResponseData = (buffer, secBuf) => ({ hex: getSecBufData(buffer, secBuf, 'hex') }); export const toHex = (buffer) => Buffer.from(buffer).toString('hex'); export function getFlags(flags, value) { const str = flags .filter((flag) => value & flag.value) .map((flag) => flag.label) .join(' '); return str.replace(/NTLMSSP_NEGOTIATE_/g, ''); } export function decode(base64) { const b = Buffer.from(base64, 'base64'); return b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength); } //# sourceMappingURL=parser-utils.js.map