From 04dd23dd5c68f1ded56b50a992ce7374b4b2c390 Mon Sep 17 00:00:00 2001 From: RoyceDa Date: Sat, 4 Apr 2026 18:01:09 +0200 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=BE=D0=B1=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/providers/CallProvider/CallProvider.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/providers/CallProvider/CallProvider.tsx b/app/providers/CallProvider/CallProvider.tsx index e6ccccd..e998021 100644 --- a/app/providers/CallProvider/CallProvider.tsx +++ b/app/providers/CallProvider/CallProvider.tsx @@ -296,16 +296,19 @@ export function CallProvider(props : CallProviderProps) { * теперь мы получили ее публичную часть и можем создать общую * секретную сессию для шифрования звонка */ + const keys = generateSessionKeys(); const sharedPublic = packet.getSharedPublic(); if(!sharedPublic){ info("Received key exchange signal without shared public key"); return; } - if(!sessionKeys){ - info("Received key exchange signal but session keys are not generated"); - return; - } - const computedSharedSecret = nacl.box.before(Buffer.from(sharedPublic, 'hex'), sessionKeys.secretKey); + const signalPacket = new PacketSignalPeer(); + signalPacket.setSrc(publicKey); + signalPacket.setDst(activeCall); + signalPacket.setSignalType(SignalType.KEY_EXCHANGE); + signalPacket.setSharedPublic(Buffer.from(keys.publicKey).toString('hex')); + send(signalPacket); + const computedSharedSecret = nacl.box.before(Buffer.from(sharedPublic, 'hex'), keys.secretKey); sharedSecretRef.current = Buffer.from(computedSharedSecret).toString('hex'); info("Generated shared secret for call session: " + sharedSecretRef.current); setCallState(CallState.WEB_RTC_EXCHANGE);