summaryrefslogtreecommitdiffhomepage
path: root/gui/src/main
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2023-02-21 16:13:39 +0100
committerOskar Nyberg <oskar@mullvad.net>2023-02-22 07:58:52 +0100
commit4e392544fc29f36f2307935d54fabc771ee884e2 (patch)
tree35f7bd8edbe96ea47d5777a5e4a9f3ee136ced80 /gui/src/main
parent26a81c00ba35e12af86d48985de0cfc98032a3fe (diff)
downloadmullvadvpn-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.ts34
-rw-r--r--gui/src/main/default-settings.ts1
-rw-r--r--gui/src/main/settings.ts3
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),
);