UNPKG

ya-express-ntlm

Version:
82 lines 3.56 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startCoder = exports.ntlmParse = exports.compactParseResult = void 0; const parser_interfaces_1 = require("./parser-interfaces"); const parser_utils_1 = require("./parser-utils"); const NTLMType1Parser_1 = require("./NTLMType1Parser"); const NTLMType2Parser_1 = require("./NTLMType2Parser"); const NTLMType3Parser_1 = require("./NTLMType3Parser"); const AbstractParser_1 = require("./AbstractParser"); const instantiateFromContent = (buffer) => { const str = (0, parser_utils_1.toHex)(buffer); const prefix = str.substring(0, 24); if (prefix === '4e544c4d5353500001000000') { return new NTLMType1Parser_1.NTLMType1Parser(buffer); } if (prefix === '4e544c4d5353500002000000') { return new NTLMType2Parser_1.NTLMType2Parser(buffer); } if (prefix === '4e544c4d5353500003000000') { return new NTLMType3Parser_1.NTLMType3Parser(buffer); } return new AbstractParser_1.AbstractParser(buffer); }; const compactParseResult = (r) => { if (r.osVersionStructure) { const { minorVersion: m1, majorVersion: m2, buildNumber: m3, unknown: m4 } = r.osVersionStructure; delete r.osVersionStructure; r.osVersion = `${m1}.${m2}.${m3} ${m4}`; } if (r.messageType === parser_interfaces_1.NTLMMessageType.NEGOTIATE_MESSAGE) { delete r.suppliedDomain; delete r.suppliedWorkstation; } if (r.messageType === parser_interfaces_1.NTLMMessageType.CHALLENGE_MESSAGE) { if (r.targetInfoData) { r.targetInfoData = r.targetInfoData.map((v) => v.content).filter((v) => String(v).trim()); delete r.targetNameSecBuf; delete r.targetInfoSecBuf; } } if (r.messageType === parser_interfaces_1.NTLMMessageType.AUTHENTICATE_MESSAGE) { ['sessionKey', 'lmResponse', 'ntlmResponse', 'targetName', 'userName', 'workstationName', 'sessionKey', 'ntlmResponseData'] .forEach((p) => { delete r[p]; }); } }; exports.compactParseResult = compactParseResult; const ntlmParse = (str, opts) => { const defaultOptions = { encoding: 'base64' }; const { encoding, compact } = { ...defaultOptions, ...opts }; if (encoding === 'hex') { str = Buffer.from(str, 'hex').toString('base64'); } const buffer = (0, parser_utils_1.decode)(str); const parser = instantiateFromContent(buffer); const result = parser.parse(); if (compact) { (0, exports.compactParseResult)(result); } return result; }; exports.ntlmParse = ntlmParse; var coder_1 = require("./coder/coder"); Object.defineProperty(exports, "startCoder", { enumerable: true, get: function () { return coder_1.startCoder; } }); __exportStar(require("./parser-interfaces"), exports); //# sourceMappingURL=index.js.map