refactor key exchange
This commit is contained in:
parent
46c495f126
commit
edeb1b7c73
@ -46,7 +46,7 @@ io.on('connection', async (socket) => {
|
||||
console.log('A user connected');
|
||||
const peers = await database.getPeers(session.publicKey);
|
||||
peers.forEach(peer => {
|
||||
socket.to(peer).emit('connected', session.publicKey);
|
||||
socket.to(peer).emit('key exchange', session.publicKey, null, 0);
|
||||
});
|
||||
socket.on('disconnect', () => {
|
||||
console.log('User disconnected');
|
||||
@ -60,11 +60,8 @@ io.on('connection', async (socket) => {
|
||||
console.log('message: ' + msg + ', sender: ' + session.id);
|
||||
console.log(session.publicKey);
|
||||
});
|
||||
socket.on('key exchange', (user_pubkey, pubkey) => {
|
||||
socket.to(user_pubkey).emit('key exchange', session.publicKey, pubkey);
|
||||
});
|
||||
socket.on('key exchange 2', (user_pubkey, pubkey) => {
|
||||
socket.to(user_pubkey).emit('key exchange 2', session.publicKey, pubkey);
|
||||
socket.on('key exchange', (user_pubkey, pubkey, part) => {
|
||||
socket.to(user_pubkey).emit('key exchange', session.publicKey, pubkey, part);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -193,7 +193,7 @@ const database = {
|
||||
}
|
||||
};
|
||||
|
||||
const retryWithDelay = (operation, retries = 5, delay = 5000) => new Promise((resolve, reject) => {
|
||||
const retryWithDelay = (operation, retries = 5, delay = 7500) => new Promise((resolve, reject) => {
|
||||
return operation()
|
||||
.then(resolve)
|
||||
.catch((err) => {
|
||||
|
@ -14,23 +14,26 @@ socket.on('chat message', (msg, room) => {
|
||||
window.scrollTo(0, document.body.scrollHeight);
|
||||
});
|
||||
|
||||
socket.on('connected', (user_pubkey) => {
|
||||
const keys = genKeys();
|
||||
secret = keys.privkey;
|
||||
socket.emit('key exchange', user_pubkey, toHexString(keys.pubkey));
|
||||
});
|
||||
|
||||
socket.on('key exchange', (user_pubkey, pubkey) => {
|
||||
const keys = genKeys();
|
||||
secret = keys.privkey
|
||||
sharedsecret[user_pubkey] = sharedKey(secret, fromHexString(pubkey));
|
||||
socket.emit('key exchange 2', user_pubkey, toHexString(keys.pubkey));
|
||||
console.log(`shared secret: ${toHexString(sharedsecret[user_pubkey])}`);
|
||||
});
|
||||
|
||||
socket.on('key exchange 2', (user_pubkey, pubkey) => {
|
||||
sharedsecret[user_pubkey] = sharedKey(secret, fromHexString(pubkey));
|
||||
console.log(`shared secret: ${toHexString(sharedsecret[user_pubkey])}`);
|
||||
socket.on('key exchange', (user_pubkey, pubkey, part) => {
|
||||
let keys = null;
|
||||
switch (part) {
|
||||
case 0:
|
||||
keys = genKeys();
|
||||
secret = keys.privkey;
|
||||
socket.emit('key exchange', user_pubkey, toHexString(keys.pubkey), 1);
|
||||
break;
|
||||
case 1:
|
||||
keys = genKeys();
|
||||
secret = keys.privkey
|
||||
sharedsecret[user_pubkey] = sharedKey(secret, fromHexString(pubkey));
|
||||
socket.emit('key exchange', user_pubkey, toHexString(keys.pubkey), 2);
|
||||
console.log(`shared secret: ${toHexString(sharedsecret[user_pubkey])}`);
|
||||
break;
|
||||
case 2:
|
||||
sharedsecret[user_pubkey] = sharedKey(secret, fromHexString(pubkey));
|
||||
console.log(`shared secret: ${toHexString(sharedsecret[user_pubkey])}`);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
export function create_listener(form, input) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user