encryptWithPassword возвращён к SHA256+rawDeflate (iOS-only данные)

Добавлен encryptWithPasswordDesktopCompat (SHA1+zlibDeflate) для кросс-платформенных данных (aesChachaKey, аватар)
3 вызова в SessionManager переведены на desktop-compatible путь
Добавлен Notification.Name.profileDidUpdate для мгновенного обновления имени в Settings
Удалены debug-логи из CryptoManager и SessionManager
This commit is contained in:
2026-03-15 03:50:56 +05:00
parent acc3fb8e2f
commit dd4642f251
48 changed files with 3865 additions and 517 deletions

View File

@@ -46,6 +46,7 @@ final class ProtocolManager: @unchecked Sendable {
var onSearchResult: ((PacketSearch) -> Void)?
var onTypingReceived: ((PacketTyping) -> Void)?
var onSyncReceived: ((PacketSync) -> Void)?
var onDeviceNewReceived: ((PacketDeviceNew) -> Void)?
var onHandshakeCompleted: ((PacketHandshake) -> Void)?
// MARK: - Private
@@ -98,6 +99,9 @@ final class ProtocolManager: @unchecked Sendable {
connectionState = .disconnected
savedPublicKey = nil
savedPrivateHash = nil
Task { @MainActor in
TransportManager.shared.reset()
}
}
/// Immediately reconnect after returning from background, bypassing backoff.
@@ -292,10 +296,21 @@ final class ProtocolManager: @unchecked Sendable {
if let p = packet as? PacketDelivery {
onDeliveryReceived?(p)
}
case 0x09:
if let p = packet as? PacketDeviceNew {
onDeviceNewReceived?(p)
}
case 0x0B:
if let p = packet as? PacketTyping {
onTypingReceived?(p)
}
case 0x0F:
if let p = packet as? PacketRequestTransport {
Self.logger.info("📥 Transport server: \(p.transportServer)")
Task { @MainActor in
TransportManager.shared.setTransportServer(p.transportServer)
}
}
case 0x17:
if let p = packet as? PacketDeviceList {
handleDeviceList(p)
@@ -350,6 +365,10 @@ final class ProtocolManager: @unchecked Sendable {
flushPacketQueue()
startHeartbeat(interval: packet.heartbeatInterval)
// Desktop parity: request transport server URL after handshake.
sendPacketDirect(PacketRequestTransport())
onHandshakeCompleted?(packet)
case .needDeviceVerification: