diff options
| author | Emīls <emils@mullvad.net> | 2024-12-05 10:38:44 +0100 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2024-12-19 17:05:28 +0100 |
| commit | ee5c10bf7e2cac67cedaae53d9d565ccfb72a623 (patch) | |
| tree | dab54da1fc4080e5924cde87c397c2e7cddb4d48 /ios/PacketTunnel/PostQuantum | |
| parent | f1df6d52b322f19d15abf784d6ea66b02b7f501b (diff) | |
| download | mullvadvpn-ee5c10bf7e2cac67cedaae53d9d565ccfb72a623.tar.xz mullvadvpn-ee5c10bf7e2cac67cedaae53d9d565ccfb72a623.zip | |
Change key exchange to be asynchronous
Diffstat (limited to 'ios/PacketTunnel/PostQuantum')
| -rw-r--r-- | ios/PacketTunnel/PostQuantum/EphemeralPeerExchangingPipeline.swift | 16 | ||||
| -rw-r--r-- | ios/PacketTunnel/PostQuantum/SingleHopEphemeralPeerExchanger.swift | 16 |
2 files changed, 16 insertions, 16 deletions
diff --git a/ios/PacketTunnel/PostQuantum/EphemeralPeerExchangingPipeline.swift b/ios/PacketTunnel/PostQuantum/EphemeralPeerExchangingPipeline.swift index 0d0da931f0..1619889003 100644 --- a/ios/PacketTunnel/PostQuantum/EphemeralPeerExchangingPipeline.swift +++ b/ios/PacketTunnel/PostQuantum/EphemeralPeerExchangingPipeline.swift @@ -13,14 +13,14 @@ import WireGuardKitTypes final public class EphemeralPeerExchangingPipeline { let keyExchanger: EphemeralPeerExchangeActorProtocol - let onUpdateConfiguration: (EphemeralPeerNegotiationState) -> Void + let onUpdateConfiguration: (EphemeralPeerNegotiationState) async -> Void let onFinish: () -> Void private var ephemeralPeerExchanger: EphemeralPeerExchangingProtocol! public init( _ keyExchanger: EphemeralPeerExchangeActorProtocol, - onUpdateConfiguration: @escaping (EphemeralPeerNegotiationState) -> Void, + onUpdateConfiguration: @escaping (EphemeralPeerNegotiationState) async -> Void, onFinish: @escaping () -> Void ) { self.keyExchanger = keyExchanger @@ -28,7 +28,7 @@ final public class EphemeralPeerExchangingPipeline { self.onFinish = onFinish } - public func startNegotiation(_ connectionState: ObservedConnectionState, privateKey: PrivateKey) { + public func startNegotiation(_ connectionState: ObservedConnectionState, privateKey: PrivateKey) async { keyExchanger.reset() let entryPeer = connectionState.selectedRelays.entry let exitPeer = connectionState.selectedRelays.exit @@ -56,14 +56,14 @@ final public class EphemeralPeerExchangingPipeline { onFinish: onFinish ) } - ephemeralPeerExchanger.start() + await ephemeralPeerExchanger.start() } - public func receivePostQuantumKey(_ key: PreSharedKey, ephemeralKey: PrivateKey) { - ephemeralPeerExchanger.receivePostQuantumKey(key, ephemeralKey: ephemeralKey) + public func receivePostQuantumKey(_ key: PreSharedKey, ephemeralKey: PrivateKey) async { + await ephemeralPeerExchanger.receivePostQuantumKey(key, ephemeralKey: ephemeralKey) } - public func receiveEphemeralPeerPrivateKey(_ ephemeralPeerPrivateKey: PrivateKey) { - ephemeralPeerExchanger.receiveEphemeralPeerPrivateKey(ephemeralPeerPrivateKey) + public func receiveEphemeralPeerPrivateKey(_ ephemeralPeerPrivateKey: PrivateKey) async { + await ephemeralPeerExchanger.receiveEphemeralPeerPrivateKey(ephemeralPeerPrivateKey) } } diff --git a/ios/PacketTunnel/PostQuantum/SingleHopEphemeralPeerExchanger.swift b/ios/PacketTunnel/PostQuantum/SingleHopEphemeralPeerExchanger.swift index f959a335ef..3c6ab5631a 100644 --- a/ios/PacketTunnel/PostQuantum/SingleHopEphemeralPeerExchanger.swift +++ b/ios/PacketTunnel/PostQuantum/SingleHopEphemeralPeerExchanger.swift @@ -18,7 +18,7 @@ struct SingleHopEphemeralPeerExchanger: EphemeralPeerExchangingProtocol { let keyExchanger: EphemeralPeerExchangeActorProtocol let devicePrivateKey: PrivateKey let onFinish: () -> Void - let onUpdateConfiguration: (EphemeralPeerNegotiationState) -> Void + let onUpdateConfiguration: (EphemeralPeerNegotiationState) async -> Void let enablePostQuantum: Bool let enableDaita: Bool @@ -28,7 +28,7 @@ struct SingleHopEphemeralPeerExchanger: EphemeralPeerExchangingProtocol { keyExchanger: EphemeralPeerExchangeActorProtocol, enablePostQuantum: Bool, enableDaita: Bool, - onUpdateConfiguration: @escaping (EphemeralPeerNegotiationState) -> Void, + onUpdateConfiguration: @escaping (EphemeralPeerNegotiationState) async -> Void, onFinish: @escaping () -> Void ) { self.devicePrivateKey = devicePrivateKey @@ -40,8 +40,8 @@ struct SingleHopEphemeralPeerExchanger: EphemeralPeerExchangingProtocol { self.onFinish = onFinish } - func start() { - onUpdateConfiguration(.single(EphemeralPeerRelayConfiguration( + func start() async { + await onUpdateConfiguration(.single(EphemeralPeerRelayConfiguration( relay: exit, configuration: EphemeralPeerConfiguration( privateKey: devicePrivateKey, @@ -55,8 +55,8 @@ struct SingleHopEphemeralPeerExchanger: EphemeralPeerExchangingProtocol { ) } - public func receiveEphemeralPeerPrivateKey(_ ephemeralKey: PrivateKey) { - onUpdateConfiguration(.single(EphemeralPeerRelayConfiguration( + public func receiveEphemeralPeerPrivateKey(_ ephemeralKey: PrivateKey) async { + await onUpdateConfiguration(.single(EphemeralPeerRelayConfiguration( relay: exit, configuration: EphemeralPeerConfiguration( privateKey: ephemeralKey, @@ -73,8 +73,8 @@ struct SingleHopEphemeralPeerExchanger: EphemeralPeerExchangingProtocol { func receivePostQuantumKey( _ preSharedKey: WireGuardKitTypes.PreSharedKey, ephemeralKey: WireGuardKitTypes.PrivateKey - ) { - onUpdateConfiguration(.single(EphemeralPeerRelayConfiguration( + ) async { + await onUpdateConfiguration(.single(EphemeralPeerRelayConfiguration( relay: exit, configuration: EphemeralPeerConfiguration( privateKey: ephemeralKey, |
