Фикс бесконечного обмена ключами

This commit is contained in:
RoyceDa
2026-04-04 18:04:11 +02:00
parent a9164c7087
commit a341aedd8d

View File

@@ -301,17 +301,23 @@ export function CallProvider(props : CallProviderProps) {
return;
}
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);
if(roleRef.current == CallRole.CALLER){
/**
* Вызывающий уже отправил ключ
*/
return;
}
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);
}
if(signalType == SignalType.ACCEPT){
/**