UNPKG

ya-express-ntlm

Version:
35 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NTLMType1Parser = void 0; const AbstractParser_1 = require("./AbstractParser"); const parser_utils_1 = require("./parser-utils"); const parser_interfaces_1 = require("./parser-interfaces"); const flags_1 = require("./flags"); class NTLMType1Parser extends AbstractParser_1.AbstractParser { // eslint-disable-next-line no-useless-constructor constructor(buffer) { super(buffer); } parse() { const flag = new Uint32Array(this.buffer.slice(12, 16))[0]; const result = { messageType: parser_interfaces_1.NTLMMessageType.NEGOTIATE_MESSAGE, flags: (0, parser_utils_1.getFlags)(flags_1.ntlmFlags, flag), }; if (this.buffer.byteLength === 16) { // NTLM version 1. return result; } result.suppliedDomain = (0, parser_utils_1.getSecBuf)(this.buffer, 16); result.suppliedWorkstation = (0, parser_utils_1.getSecBuf)(this.buffer, 24); if (result.suppliedDomain.offset !== 32) { // NTLM version 3: OS Version structure. result.osVersionStructure = (0, parser_utils_1.getOSVersionStructure)(this.buffer, 32); } result.domain = (0, parser_utils_1.getSecBufData)(this.buffer, result.suppliedDomain, 'ascii'); result.workstation = (0, parser_utils_1.getSecBufData)(this.buffer, result.suppliedWorkstation, 'ascii'); return result; } } exports.NTLMType1Parser = NTLMType1Parser; //# sourceMappingURL=NTLMType1Parser.js.map