Commit c7951f8e authored by simon's avatar simon

test: eap debugging

parent ab1ab1b1
...@@ -34,8 +34,11 @@ export class EAPPacketHandler implements IPacketHandler { ...@@ -34,8 +34,11 @@ export class EAPPacketHandler implements IPacketHandler {
// EAP MESSAGE // EAP MESSAGE
let msg = packet.attributes['EAP-Message'] as Buffer; let msg = packet.attributes['EAP-Message'] as Buffer;
if (Array.isArray(msg)) { if (Array.isArray(msg) && !(packet.attributes['EAP-Message'] instanceof Buffer)) {
msg = Buffer.concat(msg); log('multiple EAP Messages received, concat', msg.length);
const allMsgs = msg as Buffer[];
msg = Buffer.concat(allMsgs);
log('final EAP Message', msg);
} }
try { try {
......
...@@ -219,14 +219,15 @@ export class EAPTTLS implements IEAPMethod { ...@@ -219,14 +219,15 @@ export class EAPTTLS implements IEAPMethod {
if (decodedFlags.lengthIncluded) { if (decodedFlags.lengthIncluded) {
msglength = msg.slice(6, 10).readUInt32BE(0); // .readDoubleLE(0); // .toString('hex'); msglength = msg.slice(6, 10).readUInt32BE(0); // .readDoubleLE(0); // .toString('hex');
} }
const data = msg.slice(decodedFlags.lengthIncluded ? 10 : 6, msg.length); const data = msg.slice(decodedFlags.lengthIncluded ? 10 : 6).slice(0, msglength);
log('>>>>>>>>>>>> REQUEST FROM CLIENT: EAP TTLS', { log('>>>>>>>>>>>> REQUEST FROM CLIENT: EAP TTLS', {
flags: `00000000${flags.toString(2)}`.substr(-8), flags: `00000000${flags.toString(2)}`.substr(-8),
decodedFlags, decodedFlags,
identifier, identifier,
msglengthBuffer: msg.length,
msglength, msglength,
data, data
// dataStr: data.toString() // dataStr: data.toString()
}); });
...@@ -388,6 +389,7 @@ export class EAPTTLS implements IEAPMethod { ...@@ -388,6 +389,7 @@ export class EAPTTLS implements IEAPMethod {
}; };
const responseHandler = (encryptedResponseData: Buffer) => { const responseHandler = (encryptedResponseData: Buffer) => {
log('complete');
// send back... // send back...
sendResponsePromise.resolve( sendResponsePromise.resolve(
this.buildEAPTTLSResponse(identifier, 21, 0x00, stateID, encryptedResponseData) this.buildEAPTTLSResponse(identifier, 21, 0x00, stateID, encryptedResponseData)
...@@ -397,6 +399,7 @@ export class EAPTTLS implements IEAPMethod { ...@@ -397,6 +399,7 @@ export class EAPTTLS implements IEAPMethod {
// register event listeners // register event listeners
connection.events.on('incoming', incomingMessageHandler); connection.events.on('incoming', incomingMessageHandler);
connection.events.on('response', responseHandler); connection.events.on('response', responseHandler);
connection.events.on('secured', responseHandler);
// emit data to tls server // emit data to tls server
connection.events.emit('decrypt', data); connection.events.emit('decrypt', data);
...@@ -405,6 +408,7 @@ export class EAPTTLS implements IEAPMethod { ...@@ -405,6 +408,7 @@ export class EAPTTLS implements IEAPMethod {
// cleanup // cleanup
connection.events.off('incoming', incomingMessageHandler); connection.events.off('incoming', incomingMessageHandler);
connection.events.off('response', responseHandler); connection.events.off('response', responseHandler);
connection.events.off('secured', responseHandler);
// send response // send response
return responseData; // this.buildEAPTTLSResponse(identifier, 21, 0x00, stateID, encryptedResponseData); return responseData; // this.buildEAPTTLSResponse(identifier, 21, 0x00, stateID, encryptedResponseData);
...@@ -473,7 +477,7 @@ export class EAPTTLS implements IEAPMethod { ...@@ -473,7 +477,7 @@ export class EAPTTLS implements IEAPMethod {
let vendorId; let vendorId;
let data; let data;
if (flags & 0b010000000) { if (decodedFlags.V) {
// V flag set // V flag set
vendorId = currentBuffer.slice(8, 12).readUInt32BE(0); vendorId = currentBuffer.slice(8, 12).readUInt32BE(0);
data = currentBuffer.slice(12, length); data = currentBuffer.slice(12, length);
......
...@@ -96,6 +96,7 @@ export function startTLSServer(): ITLSServer { ...@@ -96,6 +96,7 @@ export function startTLSServer(): ITLSServer {
}); });
log('*********** new TLS connection established / secured ********'); log('*********** new TLS connection established / secured ********');
emitter.emit('secured');
}); });
cleartext.on('error', (err?: Error) => { cleartext.on('error', (err?: Error) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment