ya-express-ntlm
Version:
35 lines • 1.58 kB
JavaScript
;
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