Sorted the scripts, made profiles
This commit is contained in:
parent
2a326d477f
commit
cde5914101
29
index.html
29
index.html
|
@ -3,15 +3,28 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Connect</title>
|
||||
<script src="index.js"></script>
|
||||
<script src="scripts.js"></script>
|
||||
<script src="scripts/include.js"></script>
|
||||
<script src="scripts/profiles.js"></script>
|
||||
<script src="scripts/communications.js"></script>
|
||||
<script src="scripts/scripts.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<p>Direct Connect:</p>
|
||||
<p>
|
||||
<input type="text" id="hostname"><br/>
|
||||
<input type="text" id="port" value="22068"></br>
|
||||
<button onclick="connect_direct()">
|
||||
</p>
|
||||
<div class="chat-menu">
|
||||
<ul id="chat-menu">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<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>
|
||||
</html>
|
||||
|
|
51
key
51
key
|
@ -1,51 +0,0 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
14
key.pub
14
key.pub
|
@ -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-----
|
|
@ -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
|
||||
var settings = require("./settings.json");
|
||||
|
||||
|
@ -225,8 +217,12 @@ function socket_write(socket, encryption, 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
|
||||
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)
|
||||
{
|
||||
//console.log("child stdout:", data.toString());
|
||||
|
@ -339,8 +333,8 @@ function connect(hostname, port=22068)
|
|||
|
||||
client.on('close', function(data)
|
||||
{
|
||||
// Close the window
|
||||
//window.close();
|
||||
// Close the connection
|
||||
delete connections[connection_id];
|
||||
});
|
||||
|
||||
g.rsa_task.on('message', function(message)
|
||||
|
@ -380,22 +374,14 @@ function connect(hostname, port=22068)
|
|||
// Send status
|
||||
socket_write(client, g.encryption, 1);
|
||||
|
||||
socket_write(client, g.encryption, {
|
||||
mode: "Hello",
|
||||
text: "This is from the client!",
|
||||
array: [
|
||||
[1, 2, 3],
|
||||
{4: 5, 6: "7"},
|
||||
"8",
|
||||
9,
|
||||
true,
|
||||
false,
|
||||
],
|
||||
});
|
||||
console.log("Trying to get login data");
|
||||
|
||||
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()
|
||||
}
|
||||
});
|
||||
|
|
@ -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;
|
File diff suppressed because one or more lines are too long
|
@ -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);
|
||||
}
|
||||
}
|
47
tasks.js
47
tasks.js
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue