Implemented PacketType Authentication

f_influx-checks
Ruakij 3 years ago
parent bba5da2599
commit 0d472e8cb3

@ -9,6 +9,7 @@ const PacketType = {
Acknowledgment: 'Acknowledgment', Acknowledgment: 'Acknowledgment',
BlockAcknowledgment: 'BlockAcknowledgment', BlockAcknowledgment: 'BlockAcknowledgment',
NoData: 'NoData', NoData: 'NoData',
Authentication: 'Authentication',
Unknown: 'Unknown' Unknown: 'Unknown'
} }
@ -41,6 +42,14 @@ class BeaconPacket extends PacketWithSSID{}
class ProbeRequestPacket extends PacketWithSSID{} class ProbeRequestPacket extends PacketWithSSID{}
class ProbeResponsePacket extends PacketWithSSID{} class ProbeResponsePacket extends PacketWithSSID{}
const AuthenticationType = {
OpenSystem_1: 'OpenSystem_1',
OpenSystem_2: 'OpenSystem_2',
Unknown: 'Unknown',
}
class AuthenticationPacket extends Packet{
authenticationType;
}
// Specify exports // Specify exports
module.exports = { module.exports = {
@ -49,5 +58,7 @@ module.exports = {
PacketWithSSID, PacketWithSSID,
BeaconPacket, BeaconPacket,
ProbeRequestPacket, ProbeRequestPacket,
ProbeResponsePacket ProbeResponsePacket,
AuthenticationType,
AuthenticationPacket,
}; };

@ -1,7 +1,7 @@
const logger = require.main.require("./helper/logger.js")("PacketStreamFactory"); const logger = require.main.require("./helper/logger.js")("PacketStreamFactory");
const { Transform } = require('stream'); const { Transform } = require('stream');
const { DateTime } = require("luxon"); const { DateTime } = require("luxon");
const { PacketType, Packet, PacketWithSSID, BeaconPacket, ProbeRequestPacket, ProbeResponsePacket } = require.main.require('./dto/Packet.js'); const { PacketType, Packet, PacketWithSSID, BeaconPacket, ProbeRequestPacket, ProbeResponsePacket, AuthenticationPacket, AuthenticationType } = require.main.require('./dto/Packet.js');
const PACKET_TYPE_MAP = { const PACKET_TYPE_MAP = {
"Beacon": PacketType.Beacon, "Beacon": PacketType.Beacon,
@ -12,10 +12,16 @@ const PACKET_TYPE_MAP = {
"Request-To-Send": PacketType.RequestToSend, "Request-To-Send": PacketType.RequestToSend,
"Clear-To-Send": PacketType.ClearToSend, "Clear-To-Send": PacketType.ClearToSend,
"Acknowledgment": PacketType.Acknowledgment, "Acknowledgment": PacketType.Acknowledgment,
"BA": PacketType.BlockAcknowledgment "BA": PacketType.BlockAcknowledgment,
"Authentication": PacketType.Authentication,
}; };
const PACKET_TYPES_REGEX = Object.keys(PACKET_TYPE_MAP).join('|'); const PACKET_TYPES_REGEX = Object.keys(PACKET_TYPE_MAP).join('|');
const AUTHENTICATION_TYPE_MAP = {
"(Open System)-1": AuthenticationType.OpenSystem_1,
"(Open System)-2": AuthenticationType.OpenSystem_2,
}
/** /**
* Read data from text-blocks and convert them to Packet * Read data from text-blocks and convert them to Packet
*/ */
@ -73,6 +79,11 @@ class PacketStreamFactory extends Transform{
newPacket = new PacketWithSSID(); newPacket = new PacketWithSSID();
newPacket.ssid = data.match(new RegExp(`(^| )${packetTypeStr} `+'\\'+`((.{0,32})`+'\\'+`)($| )`, 'i'))?.[2] ?? null; newPacket.ssid = data.match(new RegExp(`(^| )${packetTypeStr} `+'\\'+`((.{0,32})`+'\\'+`)($| )`, 'i'))?.[2] ?? null;
break; break;
case PacketType.Authentication:
newPacket = new AuthenticationPacket();
newPacket.authenticationType = AUTHENTICATION_TYPE_MAP[data.match(/(?<=(^|\s)Authentication\s).{3,}(?=\:(\s|$))/i)[0]] ?? AuthenticationType.Unknown;
break;
} }
if(newPacket) packet = Object.assign(new newPacket, packet); // Use new, more specific, packet and copy old data over if(newPacket) packet = Object.assign(new newPacket, packet); // Use new, more specific, packet and copy old data over
} }

Loading…
Cancel
Save