summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-05-25 14:30:27 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-06-14 12:38:35 +0200
commit1758d860bf1f40f48679f6389095f39fad513304 (patch)
tree0ad4a9181e1ccf7ac944132f1d34d5513b2ef14d
parent7cde3d4e36d5bda320da6bac1ca3808325ac4b6c (diff)
downloadmullvadvpn-1758d860bf1f40f48679f6389095f39fad513304.tar.xz
mullvadvpn-1758d860bf1f40f48679f6389095f39fad513304.zip
Output whether quantum resistant tunnels are enabled in CLI
-rw-r--r--mullvad-cli/src/format.rs11
-rw-r--r--mullvad-management-interface/proto/management_interface.proto7
-rw-r--r--mullvad-management-interface/src/types.rs1
-rw-r--r--talpid-types/src/net/mod.rs4
4 files changed, 19 insertions, 4 deletions
diff --git a/mullvad-cli/src/format.rs b/mullvad-cli/src/format.rs
index 74630166d2..47c05611b2 100644
--- a/mullvad-cli/src/format.rs
+++ b/mullvad-cli/src/format.rs
@@ -109,6 +109,15 @@ fn format_relay_connection(relay_info: &TunnelStateRelayInfo, verbose: bool) ->
} else {
String::new()
};
+ let quantum_resistant = if verbose {
+ if endpoint.quantum_resistant {
+ "\nQuantum resistant tunnel: true".to_string()
+ } else {
+ "\nQuantum resistant tunnel: false".to_string()
+ }
+ } else {
+ String::new()
+ };
let mut bridge_type = String::new();
let mut obfuscator_type = String::new();
@@ -127,7 +136,7 @@ fn format_relay_connection(relay_info: &TunnelStateRelayInfo, verbose: bool) ->
}
format!(
- "{exit_endpoint}{first_hop}{bridge}{obfuscator}{tunnel_type}{bridge_type}{obfuscator_type}",
+ "{exit_endpoint}{first_hop}{bridge}{obfuscator}{tunnel_type}{quantum_resistant}{bridge_type}{obfuscator_type}",
first_hop = first_hop.unwrap_or_default(),
bridge = bridge.unwrap_or_default(),
obfuscator = obfuscator.unwrap_or_default(),
diff --git a/mullvad-management-interface/proto/management_interface.proto b/mullvad-management-interface/proto/management_interface.proto
index 9d53ccf837..9148a10150 100644
--- a/mullvad-management-interface/proto/management_interface.proto
+++ b/mullvad-management-interface/proto/management_interface.proto
@@ -194,9 +194,10 @@ message TunnelEndpoint {
string address = 1;
TransportProtocol protocol = 2;
TunnelType tunnel_type = 3;
- ProxyEndpoint proxy = 4;
- ObfuscationEndpoint obfuscation = 5;
- Endpoint entry_endpoint = 6;
+ bool quantum_resistant = 4;
+ ProxyEndpoint proxy = 5;
+ ObfuscationEndpoint obfuscation = 6;
+ Endpoint entry_endpoint = 7;
}
enum ObfuscationType {
diff --git a/mullvad-management-interface/src/types.rs b/mullvad-management-interface/src/types.rs
index 640d97d676..cc2086d66e 100644
--- a/mullvad-management-interface/src/types.rs
+++ b/mullvad-management-interface/src/types.rs
@@ -35,6 +35,7 @@ impl From<talpid_types::net::TunnelEndpoint> for TunnelEndpoint {
net::TunnelType::Wireguard => i32::from(TunnelType::Wireguard),
net::TunnelType::OpenVpn => i32::from(TunnelType::Openvpn),
},
+ quantum_resistant: endpoint.quantum_resistant,
proxy: endpoint.proxy.map(|proxy_ep| ProxyEndpoint {
address: proxy_ep.endpoint.address.to_string(),
protocol: i32::from(TransportProtocol::from(proxy_ep.endpoint.protocol)),
diff --git a/talpid-types/src/net/mod.rs b/talpid-types/src/net/mod.rs
index 8100ca6e53..31c872da87 100644
--- a/talpid-types/src/net/mod.rs
+++ b/talpid-types/src/net/mod.rs
@@ -29,6 +29,7 @@ impl TunnelParameters {
match self {
TunnelParameters::OpenVpn(params) => TunnelEndpoint {
tunnel_type: TunnelType::OpenVpn,
+ quantum_resistant: false,
endpoint: params.config.endpoint,
proxy: params.proxy.as_ref().map(|proxy| proxy.get_endpoint()),
obfuscation: None,
@@ -36,6 +37,7 @@ impl TunnelParameters {
},
TunnelParameters::Wireguard(params) => TunnelEndpoint {
tunnel_type: TunnelType::Wireguard,
+ quantum_resistant: params.options.use_pq_safe_psk,
endpoint: params
.connection
.get_exit_endpoint()
@@ -134,6 +136,8 @@ pub struct TunnelEndpoint {
#[cfg_attr(target_os = "android", jnix(skip))]
pub tunnel_type: TunnelType,
#[cfg_attr(target_os = "android", jnix(skip))]
+ pub quantum_resistant: bool,
+ #[cfg_attr(target_os = "android", jnix(skip))]
pub proxy: Option<proxy::ProxyEndpoint>,
#[cfg_attr(target_os = "android", jnix(skip))]
pub obfuscation: Option<ObfuscationEndpoint>,