UNPKG

netkitty

Version:
80 lines (79 loc) 7.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Codec_1 = require("../../lib/codec/Codec"); async function DecodeAndEncode(packet) { const packetBuffer = Buffer.from(packet, 'base64'); console.log('packetBuffer:', packetBuffer.toString('hex')); const codec = new Codec_1.Codec(); const decodeResult = await codec.decode(packetBuffer); // console.log(JSON.stringify(decodeResult, null, 2)) // for (let i = 0; i < 100000; i++) { // const encodeResult = await codec.encode(decodeResult) // } const encodeResult = await codec.encode(decodeResult); // const pw=new PcapWriter({filename:`/Users/alex/Desktop/genPcap${Date.now()}.pcap`}) // pw.write(Buffer.from(packet,'base64'),0,0) // pw.write(encodeResult.packet,1,0) // await pw.close() console.log('encodeResult:', encodeResult.packet.toString('hex')); console.log('packetBuffer===encodeResult', packetBuffer.toString('hex') === encodeResult.packet.toString('hex')); const decodeResult1 = await codec.decode(encodeResult.packet); console.log(JSON.stringify(decodeResult1, null, 2)); } async function GOOSE_Codec(packet) { await DecodeAndEncode(packet); } async function IEC61850SampleValues_Codec(packet) { await DecodeAndEncode(packet); } async function IPv4_Codec(packet) { await DecodeAndEncode(packet); } async function IPv6_Codec(packet) { await DecodeAndEncode(packet); } async function ARP_Codec(packet) { await DecodeAndEncode(packet); } async function TCP_Codec(packet) { await DecodeAndEncode(packet); } async function UDP_Codec(packet) { await DecodeAndEncode(packet); } (async () => { console.time('GOOSE'); // await GOOSE_Codec('AaD0CC93AKD0CC93iLgAAQCRAAAAAGGBhoAaR0VEZXZpY2VGNjUwL0xMTjAkR08kZ2NiMDGBAwCcQIIYR0VEZXZpY2VGNjUwL0xMTjAkR09PU0UxgwtGNjUwX0dPT1NFMYQIOG6780IXKAqFAQGGAQuHAQCIAQGJAQCKAQirIIMBAIQDAwAAgwEAhAMDAACDAQCEAwMAAIMBAIQDAwAA') // await GOOSE_Codec('AQzNAQNVABAAAANVgQAABoi4A1UAlgAAAABhgYuAGlBMMTEwMVBJR08wMS9MTE4wJEdPJGdvY2IwgQInEIIZUEwxMTAxUElHTzAxL0xMTjAkZHNHT09TRYMXUEwxMTAxUElHTzAxL0xMTjAuZ28AA1AAAA///wAApdAQcA==') // await GOOSE_Codec('AQzNARACABQ7WwNyiLgQAgDXAAAAAGGBzIAYUENTMDAyUElHTy9MTE4wJEdPJGdvY2IxgQIBkIIYUENTMDAyUElHTy9MTE4wJGRzR09PU0UxgxhQQ1MwMDJQSUdPL0xMTjAkR08kZ29jYjGECGf88cRG/rQAhQMOWIGGAQCHAQCIAQGJAQCKAQ6rWocFCEScQACHBQg+0OVhhQEChwUIAAAAAIcFCEKSmZqHBQhEu4AAhwUIRLuAAIcFCEScQACHBQg+1P30hQEChwUIAAAAAIcFCEJlmZqHBQhEu4AAhwUIRLuAAA==') await GOOSE_Codec('AQzNAQH/ABEiM0RVgQCgzIi4EjQAcwAAAABhaYASRGV2MS9MTE4wJEdPJGdjYjAxgQEUghFEZXYxL0xMTjAkRGF0U2V0MYMIR1NfZ2NiMDGECAAAAAAAAAAAhQEAhgEAhwEAiAEBiQEAigEDqxeFAQuiC4MBAYkGESIzRFVmhwUIwEhfww=='); console.timeEnd('GOOSE'); // // console.time('IEC61850SampleValues') // await IEC61850SampleValues_Codec('AQzNBAAByv7A/+5piLpAAQBmAAAAAGBcgAEBolcwVYAENDAwMYICCDaDBAAAAAGFAQKHQAADpBwAAAAAAAAgrAAAAAD//DyAAAAAAAAAAUgAACAAAPOi+AAAAAAAC1wyAAAAAP8BRogAAAAAAABFsgAAIAA=') // console.timeEnd('IEC61850SampleValues') // await IPv4_Codec('AQBeAAD7RvyxjrRvCABFAABDFi9AAP8Rwg7AqAHI4AAA+61EFOkALwQ6AAAAAAABAAAAAAAACl9seXJhLW1kbnMEX3VkcAVsb2NhbAAADIAB') // console.time('IPv4') // await IPv4_Codec('AAAAAAAAAAAAAAAACABLAABseDcAAEABdS1/AAABfwAAAYYWAAAAAgIQAAIAAAACAAQABQAGAO8AAAAAKVCMCgABkk2uRRMODAAICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc=') // await IPv4_Codec('AAABAAABAAECAwQFgQAHAQgARQAD73UOAAD//cCqwFUBAsAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1jALb5b3GR/EWXIj8AcbMw8pHUAAAEAAAEAAQIDBAWBAAcCCABFAAHvdQ8AAP/9wqnAVQECwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoikeAWYiHtu0w+Ilen5pPcowdgE=') // await IPv4_Codec('jrqXwYfpMsUZ/NE3CABFAABU9jEAAEABAIjAqAGewKgBAQgAVeFhQwAAZ+gRVAAC3JkICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc=') // console.timeEnd('IPv4') // // console.time('ARP') // await ARP_Codec('////////AFDCV7MQCAYAAQgABgQAAQBQwlezEMCorNcAAAAAAADAqKwBAAAAAAAAAAAAAAAWOgAFAgAA') // console.timeEnd('ARP') // // // await TCP_Codec('jrqXwYfpMsUZ/NE3CABFAABAAABAAEAG7RnAqAGf3LWuof8nAbtj7USXAAAAALAC//8W3wAAAgQFtAEDAwYBAQgKrHN8owAAAAAEAgAA') // console.time('TCP') // await TCP_Codec('MsUZ/NE3jrqXwYfpCABFAAJtAABAADMGCAYr+E9GwKgBnwBQxWyUVlJ28OAPzYAYAf/ikQAAAQEICu648gfnwk9J+s/+/j/vP/v7/uz/7O/72352Oswm1bo1vf3hf+t/9vf8CRLU/Od/3l/1X/49/yCJC4U2G3u23cjEvL4q2un8J8mR/z0kh/7ZG/ILfmG2WOl67ld1+dnvvvdM/VjS/nm9zEqiLcsVyZhIHfokx4F6iHXqBsfc0VBOtoXhIKYQx/K//EP/esL9v/gr/jzAuQUY0AhOI6A5Kn109O03b16+fk8YIPQvojT7dbYsswl7mx8dHZ8RYhSz/ed/xJ9NM/o1INb5rLjI63FWELRX/+hfzX9RzEmD/a/+qj/IgY1xAsCanqbV6pqXCYnkPNP/1d//N1KQm/4jf/Xezt79lKj2n/89fypNA6lJfLBDy4whQoTPJKfhjRdF0ZJ3fTmeLgnW3/LXnJ28/M//sj9y52Bn99P9g4f/+Z/4dwKdNKVv/vM//K+jWf3P/4Y/mr5P7+3u7FJURotwuw/2PuVmwM9D3CgV+tX+/viu6BL8avUQfT+sJDltSOZi9pJ0LSmhO+P1JJPfbeKjq9joIzzwsNLPxQFts4t064L+peDgjjj9ikAs6MBMiedKbyyyJanRmjkAECja+D1IK36+/el3Hj57svfqwbN9WFWB5uDSb1gpZlcYDvdzoEzqu/cR+8Y0AC+Vh24oi2fbiONMzgKn3po7h5ze4VYf/3RDyTvYhKdkQ7bugBTuS1q+PC8uqMHHPrpsLTyMiVY0Q5Nqdk1/PL47bxfwDQpiDQqC/h9WtstCH04AAA0KMA0KDQo=') // console.timeEnd('TCP') // // // await TCP_Codec('MsUZ/NE3jrqXwYfpCABFAAAoAABAAEAG4N0NQoppwKgBnwG7wHisAGbXAAAAAFAEAACA4gAA') // console.time('UDP') // await UDP_Codec('////////CAAnzP1BCABFAAD/uTJAAEAR+6XAqAHGwKgB/wCKAIoA62oQEQp9csCoAcYAigDVAAAgRkFGRUZEQ0FDQUNBQ0FDQUNBQ0FDQUNBQ0FDQUNBQUEAIEZIRVBGQ0VMRUhGQ0VQRkZGQUNBQ0FDQUNBQ0FDQUJOAP9TTUIlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAOwAAAAAAAAAAAAAAAAAAAAAAAAA7AFYAAwABAAEAAgBMAFxNQUlMU0xPVFxCUk9XU0UAAe2A/AoAUFRTAAAAAAAAAAAAAAAAAAYBA5qBAA8BVapwdHMgc2VydmVyIChTYW1iYSwgVWJ1bnR1KQA=') // console.timeEnd('UDP') // console.time('IPv6') // await IPv6_Codec('xAI6RAAAxAA6RAAAht1gAAAAADw6QP6AAAAAAAAAxgA6//5EAAD+gAAAAAAAAMYCOv/+RAAAgQDIrxOKAAEBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0') // await IPv6_Codec('MzMAAAAWxAI6RAAAht1uAAAAACQAAf6AAAAAAAAAxgI6//5EAAD/AgAAAAAAAAAAAAAAAAAWOgAFAgAAAQCPAHDCAAAAAQQAAAD/AgAAAAAAAAAAAAAAAAAC') // console.timeEnd('IPv6') })();