Made connections happen in a function instead of globally.
This commit is contained in:
parent
727643aa79
commit
e685e63c70
112
index.js
112
index.js
|
@ -7,9 +7,22 @@ const bsplit = require("buffer-split");
|
|||
// Load the settings
|
||||
var settings = require("./settings.json");
|
||||
|
||||
function connect()
|
||||
{
|
||||
// Make an accessible global object
|
||||
var g = new Object();
|
||||
|
||||
// Encryption varibles
|
||||
var encryption;
|
||||
var rsa_key;
|
||||
g.encryption;
|
||||
g.rsa_key;
|
||||
|
||||
// Set new
|
||||
g.sock_new = 2;
|
||||
|
||||
// Set a temporary encryption varible
|
||||
g.raw_encryption_data = "";
|
||||
g.raw_encryption_data_upto = 0;
|
||||
g.raw_encryption_data_size = 0;
|
||||
|
||||
// Create a client
|
||||
var client = new net.Socket();
|
||||
|
@ -110,52 +123,39 @@ function socket_ondata(socket, callback)
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
// Connect to the server
|
||||
client.connect(22068, '127.0.0.1', function()
|
||||
{
|
||||
// Create an rsa key
|
||||
rsa_key = new node_rsa({b:settings.rsa_size});
|
||||
g.rsa_key = new node_rsa({b:settings.rsa_size});
|
||||
|
||||
// Send the public key to the server
|
||||
client.write(rsa_key.exportKey("public"));
|
||||
client.write(g.rsa_key.exportKey("public")+"\n");
|
||||
});
|
||||
|
||||
// Set new
|
||||
var sock_new = 2;
|
||||
|
||||
// Set a temporary encryption varible
|
||||
var raw_encryption_data = "";
|
||||
var raw_encryption_data_upto = 0;
|
||||
var raw_encryption_data_size = 0;
|
||||
|
||||
// Wait for data
|
||||
client.on('data', function(data)
|
||||
{
|
||||
if(sock_new == 2)
|
||||
console.log("RAW: ", {
|
||||
input: data,
|
||||
sock_new:g.sock_new,
|
||||
raw_encryption_data_upto: g.raw_encryption_data_upto,
|
||||
bsplit_length: bsplit(data, Buffer.from("\n")).length
|
||||
});
|
||||
|
||||
if(g.sock_new != 0)
|
||||
{
|
||||
console.log("Recieved key.");
|
||||
// Split the data by newlines
|
||||
data = bsplit(data, Buffer.from("\n"));
|
||||
|
||||
// Set the size of the key
|
||||
raw_encryption_data_size = parseInt(data);
|
||||
|
||||
// Set sock new to 1
|
||||
sock_new = 1;
|
||||
}
|
||||
|
||||
// Is the socket recieving the key
|
||||
else if(sock_new == 1)
|
||||
// Iterate over the values
|
||||
for(var i=0;i<data.length;i++)
|
||||
{
|
||||
console.log(data);
|
||||
|
||||
// Decode the data
|
||||
raw_encryption_data += data;
|
||||
raw_encryption_data_upto += data.length;
|
||||
console.log(data.length);
|
||||
|
||||
// Is this the end of the stream
|
||||
if(raw_encryption_data_upto == raw_encryption_data_size)
|
||||
// Done signal
|
||||
if(data[i]=="done")
|
||||
{
|
||||
// Set sock new to 0
|
||||
/*// Set sock new to 0
|
||||
sock_new = 0;
|
||||
|
||||
// Set the key
|
||||
|
@ -163,14 +163,52 @@ client.on('data', function(data)
|
|||
|
||||
console.log("Done.");
|
||||
|
||||
socket_write(client, encryption, {message: "hello, world!", number: 53});
|
||||
socket_write(client, encryption, {message: "hello, world!", number: 53});*/
|
||||
}
|
||||
|
||||
// Is the client recieving the key size
|
||||
if(g.sock_new == 2)
|
||||
{
|
||||
console.log("Recieved key.");
|
||||
|
||||
// Set the size of the key
|
||||
g.raw_encryption_data_size = parseInt(data[i]);
|
||||
|
||||
// Set sock new to 1
|
||||
g.sock_new = 1;
|
||||
}
|
||||
|
||||
// Is the client recieving the key
|
||||
else if(g.sock_new == 1)
|
||||
{
|
||||
console.log(data[i]);
|
||||
|
||||
// Decode the data
|
||||
g.raw_encryption_data += data[i];
|
||||
g.raw_encryption_data_upto += data[i].length;
|
||||
console.log(data[i].length);
|
||||
|
||||
// Is this the end of the stream
|
||||
if(g.raw_encryption_data_upto == g.raw_encryption_data_size)
|
||||
{
|
||||
// Set sock new to 0
|
||||
g.sock_new = 0;
|
||||
|
||||
// Set the key
|
||||
g.encryption = make_encryption_key(g.rsa_key.decrypt(g.raw_encryption_data));
|
||||
|
||||
console.log("Done.");
|
||||
|
||||
socket_write(client, g.encryption, {message: "hello, world!", number: 53});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// Decrypt the data
|
||||
data = string_decrypt(encryption, data);
|
||||
data = string_decrypt(g.encryption, data);
|
||||
|
||||
// Split the data by newlines
|
||||
data = bsplit(data, Buffer.from("\n"));
|
||||
|
@ -188,3 +226,7 @@ client.on('close', function(data)
|
|||
// Close the window
|
||||
//window.close();
|
||||
});
|
||||
|
||||
// Return the global varibles
|
||||
return g;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"rsa_size": 512
|
||||
"rsa_size": 2048
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue