Sorted the scripts, made profiles

This commit is contained in:
jsrobson10 2019-04-10 15:47:50 +10:00
parent 2a326d477f
commit cde5914101
10 changed files with 154 additions and 147 deletions

View File

@ -3,15 +3,28 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Connect</title> <title>Connect</title>
<script src="index.js"></script> <script src="scripts/include.js"></script>
<script src="scripts.js"></script> <script src="scripts/profiles.js"></script>
<script src="scripts/communications.js"></script>
<script src="scripts/scripts.js"></script>
</head> </head>
<body> <body>
<p>Direct Connect:</p> <div class="chat-menu">
<p> <ul id="chat-menu">
<input type="text" id="hostname"><br/>
<input type="text" id="port" value="22068"></br> </ul>
<button onclick="connect_direct()"> </div>
</p> <div class="new-profile">
<p>New Profile:</p>
<p>
<table>
<tr><td>Hostname</td><td><input type="text" id="edit_profile_hostname"></td></tr>
<tr><td>Port</td><td><input type="text" id="edit_profile_port" value="22068"></td></tr>
<tr><td>Username</td><td><input type="text", id="edit_profile_username"></td></tr>
<tr><td>Password</td><td><input type="password" id="edit_profile_password"></td></tr>
</table>
<button onclick="profile_save()">Save Profile</button>
</p>
</div>
</body> </body>
</html> </html>

51
key
View File

@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

14
key.pub
View File

@ -1,14 +0,0 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjj0aDW3uJI8tivbJEk2q
0EAWnkwmR3k91P61WFhFtA5j6rl+DqF5Fr1AhjutkZT+xeno0n3Mm+/XqTTABKfc
YpMmmGCHMvIc3AkFb0deXXHBqLeSSoid+MsmMp/68/jvtvWGQzJKEPURHndcupTX
FJmclYpHrHOLjndX01ofLaUg2fT+3Pu81gVJBE53xT97KQQvHN+xpGJYPTts0A3b
lrWyJ44WQha/jWQN84hRJuDe1SA2bTPx4UIyAmfY7RG3j2nLJgzZUTI2Z35mKhfg
vdYazTpYld9bm9CfLljCr4lKR50AZo4qZuIgD5+qYq1PUpsqQX04KcTOUiDHRFlD
06Wn9l7eeFZNwbDp7e397vueDdVBwe0sujuefwDyVon43DaO8ljEz+H0iq9L+0Mw
x8UshuQtWUAvgFqctJoITWNUEe78ib/3KXO4CurXcuOqfW+KA1TQQi3KKnP9cuTg
ajoxv4LPrBR6CtFzN/1TjzEjwdSXsecZ5Kz9SJVf1ZDDKl4CnGMFug1V9UGpbV4g
APGcZBvhVM1lWFC25T6YfviO/e1nPKTaLgFNsyzAFbX508Ta/9K5V8xw9JDfpoEb
HuFPFqsKTVV9pva8A1djfhMRTFCujQVpYTDp8tdmKoE0crAeJU+1EwlCZSSlz1Kh
CqBh5wLmGQNLbxSInu8oPYcCAwEAAQ==
-----END PUBLIC KEY-----

View File

@ -1,12 +1,4 @@
// Get some libraries
const fs = require("fs");
const net = require("net");
const path = require("path");
const node_rsa = require("node-rsa");
const bsplit = require("buffer-split");
const child_process = require('child_process');
// Load the settings // Load the settings
var settings = require("./settings.json"); var settings = require("./settings.json");
@ -225,8 +217,12 @@ function socket_write(socket, encryption, data)
socket.write(data); socket.write(data);
} }
function connect(hostname, port=22068) function connect(profile, connection_id)
{ {
// Setup the port and hostname varibles
var port = profile.port;
var hostname = profile.hostname;
// Make an accessible global object // Make an accessible global object
var g = new Object(); var g = new Object();
@ -239,8 +235,6 @@ function connect(hostname, port=22068)
} }
); );
g.rsa_task.unref();
g.rsa_task.stdout.on('data', function(data) g.rsa_task.stdout.on('data', function(data)
{ {
//console.log("child stdout:", data.toString()); //console.log("child stdout:", data.toString());
@ -339,8 +333,8 @@ function connect(hostname, port=22068)
client.on('close', function(data) client.on('close', function(data)
{ {
// Close the window // Close the connection
//window.close(); delete connections[connection_id];
}); });
g.rsa_task.on('message', function(message) g.rsa_task.on('message', function(message)
@ -380,22 +374,14 @@ function connect(hostname, port=22068)
// Send status // Send status
socket_write(client, g.encryption, 1); socket_write(client, g.encryption, 1);
socket_write(client, g.encryption, { console.log("Trying to get login data");
mode: "Hello",
text: "This is from the client!",
array: [
[1, 2, 3],
{4: 5, 6: "7"},
"8",
9,
true,
false,
],
});
console.log("Done."); // Create a variable
var userdata_filename = "servers/"+hostname+":"+port.toString()+".json";
console.log(userdata_filename);
// Perform initialise operations here // Try and get the users login data
//var userdata = readFile()
} }
}); });

10
scripts/include.js Normal file
View File

@ -0,0 +1,10 @@
// Get some libraries
const fs = require("fs");
const net = require("net");
const path = require("path");
const node_rsa = require("node-rsa");
const bsplit = require("buffer-split");
const child_process = require('child_process');
const PORT_DEFAULT = 22068;

2
scripts/jquery-3.3.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

108
scripts/profiles.js Normal file
View File

@ -0,0 +1,108 @@
// Create a profiles varible
var profiles;
// Create a connections varible
var connections = [];
// Load the profiles
fs.readFile("profiles.json", "utf-8", function(err, data)
{
try
{
// Throw an error if there is one
if(err) throw err;
// Try to load it from the data
profiles = JSON.parse(data);
}
catch(e)
{
// Set the profiles varible to its default value
profiles = [];
}
// Reload the profiles
profiles_reload();
// Connect to all the profiles
for(var i=0;i<profiles.length;i++)
{
// Connect to the server
profile_connect(i);
}
});
function profile_save()
{
// Get the values from the form
var hostname = document.getElementById("edit_profile_hostname").value;
var port = document.getElementById("edit_profile_port").value;
var username = document.getElementById("edit_profile_username").value;
var password = document.getElementById("edit_profile_password").value;
// Push the profiles data
profiles.push({
hostname: hostname,
port: port,
username: username,
password: password
});
// Write the data to the profiles file
fs.writeFileSync("profiles.json", JSON.stringify(profiles));
// Reload the profiles
profiles_reload();
// Start a connection
profile_connect(profiles.length-1);
}
function profile_connect(id)
{
// Connect to the server
var server = connect(profiles[id], connections.length);
// Add the server to the active connections
connections.push(server);
}
function profile_switch_to(id)
{
}
function profiles_reload()
{
// Get the chat menu id
var chat_menu = document.getElementById("chat-menu");
// Reset it
chat_menu.innerHTML = "";
// Loop over the profiles
for(var i=0;i<profiles.length;i++)
{
// Create a list item
var profile = document.createElement("li");
// Should the port be displayed
var port_display = "";
// Is the port not the default port
if(profiles[i].port != PORT_DEFAULT)
{
// Set the port display varible
port_display = ":"+profiles[i].port.toString();
}
// Set the html for the list item
profile.innerHTML = "<a href='javascript:void(0)' onclick='profile_connect("+
i+")'>"+profiles[i].username+"@"+profiles[i].hostname+port_display+"</a>";
// Add the profile to the menu
chat_menu.appendChild(profile);
}
}

0
style.css Normal file
View File

View File

@ -1,47 +0,0 @@
// Include some libraries
const node_rsa = require("node-rsa");
module.exports = function(args, callback)
{
// Does the main task want an rsa key
if(args["mode"] == "make_rsa_key")
{
// Make an rsa key with the specified size
var key = new node_rsa({b:args['size']});
// Get the public and private keys
var data = {
public: key.exportKey("public"),
private: key.exportKey("private")
}
// Send it back to the main task
callback(data);
}
// Does the main task want to decode something
else if(args["mode"] == "decrypt_rsa")
{
// Load the key
var key = new node_rsa();
key.importKey(args["public"], "public");
key.importKey(args["private"], "private");
// Decode the data
var data = key.decrypt(args["string"]);
// Send it back to the main task
callback({
out: data.toString(),
public: key.exportKey("public"),
private: key.exportKey("private")
});
}
else
{
// Call back nothing
callback(undefined);
}
}