refactor key exchange
This commit is contained in:
		| @@ -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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user