UNPKG

ya-express-ntlm

Version:
71 lines 1.87 kB
const binary2hex = { '0000': 0, '0001': 1, '0010': 2, '0011': 3, '0100': 4, '0101': 5, '0110': 6, '0111': 7, 1000: 8, 1001: 9, 1010: 'A', 1011: 'B', 1100: 'C', 1101: 'D', 1110: 'E', 1111: 'F', }; export function binaryArray2bytes(array) { const bufArray = []; for (let i = 0; i < array.length; i += 8) { if (i + 7 > array.length) break; const binString1 = `${array[i]}${array[i + 1]}${array[i + 2]}${array[i + 3]}`; const binString2 = `${array[i + 4]}${array[i + 5]}${array[i + 6]}${array[i + 7]}`; const hexChar1 = binary2hex[binString1]; const hexChar2 = binary2hex[binString2]; const buf = Buffer.from(`${hexChar1}${hexChar2}`, 'hex'); bufArray.push(buf); } return Buffer.concat(bufArray); } const hex2binary = { 0: [0, 0, 0, 0], 1: [0, 0, 0, 1], 2: [0, 0, 1, 0], 3: [0, 0, 1, 1], 4: [0, 1, 0, 0], 5: [0, 1, 0, 1], 6: [0, 1, 1, 0], 7: [0, 1, 1, 1], 8: [1, 0, 0, 0], 9: [1, 0, 0, 1], A: [1, 0, 1, 0], B: [1, 0, 1, 1], C: [1, 1, 0, 0], D: [1, 1, 0, 1], E: [1, 1, 1, 0], F: [1, 1, 1, 1], }; export function bytes2binaryArray(buf) { const hexString = buf.toString('hex').toUpperCase(); const array = []; for (let i = 0; i < hexString.length; i++) { const hexChar = hexString.charAt(i); array.push(...hex2binary[hexChar]); } return array; } export function insertZerosEvery7Bits(buf) { const binaryArray = bytes2binaryArray(buf); const newBinaryArray = []; for (let i = 0; i < binaryArray.length; i++) { newBinaryArray.push(binaryArray[i]); if ((i + 1) % 7 === 0) { newBinaryArray.push(0); } } return binaryArray2bytes(newBinaryArray); } //# sourceMappingURL=utils.js.map