diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2023-02-21 16:13:39 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2023-02-22 07:58:52 +0100 |
| commit | 4e392544fc29f36f2307935d54fabc771ee884e2 (patch) | |
| tree | 35f7bd8edbe96ea47d5777a5e4a9f3ee136ced80 /gui/src/main | |
| parent | 26a81c00ba35e12af86d48985de0cfc98032a3fe (diff) | |
| download | mullvadvpn-4e392544fc29f36f2307935d54fabc771ee884e2.tar.xz mullvadvpn-4e392544fc29f36f2307935d54fabc771ee884e2.zip | |
Add quantum resistant property to daemon rpc and internal structures
Diffstat (limited to 'gui/src/main')
| -rw-r--r-- | gui/src/main/daemon-rpc.ts | 34 | ||||
| -rw-r--r-- | gui/src/main/default-settings.ts | 1 | ||||
| -rw-r--r-- | gui/src/main/settings.ts | 3 |
3 files changed, 38 insertions, 0 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts index 9898a1d2c2..5d24870908 100644 --- a/gui/src/main/daemon-rpc.ts +++ b/gui/src/main/daemon-rpc.ts @@ -437,6 +437,25 @@ export class DaemonRpc { await this.callNumber(this.client.setWireguardMtu, mtu); } + public async setWireguardQuantumResistant(quantumResistant?: boolean): Promise<void> { + const quantumResistantState = new grpcTypes.QuantumResistantState(); + switch (quantumResistant) { + case true: + quantumResistantState.setState(grpcTypes.QuantumResistantState.State.ON); + break; + case false: + quantumResistantState.setState(grpcTypes.QuantumResistantState.State.OFF); + break; + case undefined: + quantumResistantState.setState(grpcTypes.QuantumResistantState.State.AUTO); + break; + } + await this.call<grpcTypes.QuantumResistantState, Empty>( + this.client.setQuantumResistantTunnel, + quantumResistantState, + ); + } + public async setAutoConnect(autoConnect: boolean): Promise<void> { await this.callBool(this.client.setAutoConnect, autoConnect); } @@ -1230,6 +1249,9 @@ function convertFromTunnelOptions(tunnelOptions: grpcTypes.TunnelOptions.AsObjec }, wireguard: { mtu: tunnelOptions.wireguard!.mtu, + quantumResistant: convertFromQuantumResistantState( + tunnelOptions.wireguard?.quantumResistant?.state, + ), }, generic: { enableIpv6: tunnelOptions.generic!.enableIpv6, @@ -1253,6 +1275,18 @@ function convertFromTunnelOptions(tunnelOptions: grpcTypes.TunnelOptions.AsObjec }; } +function convertFromQuantumResistantState( + state?: grpcTypes.QuantumResistantState.State, +): boolean | undefined { + return state === undefined + ? undefined + : { + [grpcTypes.QuantumResistantState.State.ON]: true, + [grpcTypes.QuantumResistantState.State.OFF]: false, + [grpcTypes.QuantumResistantState.State.AUTO]: undefined, + }[state]; +} + function convertFromObfuscationSettings( obfuscationSettings?: grpcTypes.ObfuscationSettings.AsObject, ): ObfuscationSettings { diff --git a/gui/src/main/default-settings.ts b/gui/src/main/default-settings.ts index 13650926a4..9989575f80 100644 --- a/gui/src/main/default-settings.ts +++ b/gui/src/main/default-settings.ts @@ -45,6 +45,7 @@ export function getDefaultSettings(): ISettings { }, wireguard: { mtu: undefined, + quantumResistant: undefined, }, dns: { state: 'default', diff --git a/gui/src/main/settings.ts b/gui/src/main/settings.ts index 634a9109ee..08871f42ea 100644 --- a/gui/src/main/settings.ts +++ b/gui/src/main/settings.ts @@ -53,6 +53,9 @@ export default class Settings implements Readonly<ISettings> { IpcMainEventChannel.settings.handleSetWireguardMtu((mtu?: number) => this.daemonRpc.setWireguardMtu(mtu), ); + IpcMainEventChannel.settings.handleSetWireguardQuantumResistant((quantumResistant?: boolean) => + this.daemonRpc.setWireguardQuantumResistant(quantumResistant), + ); IpcMainEventChannel.settings.handleUpdateRelaySettings((update) => this.daemonRpc.updateRelaySettings(update), ); |
