summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2023-04-06 23:37:11 +0200
committerDavid Lönnhager <david.l@mullvad.net>2023-05-03 10:23:33 +0200
commit5a8ce732572e83e8abbdef7afa38394730ed7ee7 (patch)
treeac124a74d731c0cabbab90aa7c738aa779c15fdb /mullvad-cli
parent4834225b593b7ac273ff44ef4105b87c21f1ba4e (diff)
downloadmullvadvpn-5a8ce732572e83e8abbdef7afa38394730ed7ee7.tar.xz
mullvadvpn-5a8ce732572e83e8abbdef7afa38394730ed7ee7.zip
Clean up conversion from base64 to key types
Diffstat (limited to 'mullvad-cli')
-rw-r--r--mullvad-cli/src/cmds/relay.rs12
1 files changed, 5 insertions, 7 deletions
diff --git a/mullvad-cli/src/cmds/relay.rs b/mullvad-cli/src/cmds/relay.rs
index 6b216c82c1..437b0977c2 100644
--- a/mullvad-cli/src/cmds/relay.rs
+++ b/mullvad-cli/src/cmds/relay.rs
@@ -145,10 +145,10 @@ pub enum SetCustomCommands {
/// Remote port
port: u16,
/// Base64 encoded public key of remote peer
- // TODO: parse
- peer_pubkey: String,
+ #[arg(value_parser = wireguard::PublicKey::from_base64)]
+ peer_pubkey: wireguard::PublicKey,
/// IP addresses of local tunnel interface
- // TODO: at least one
+ #[arg(required = true, num_args = 1..)]
tunnel_ip: Vec<IpAddr>,
/// IPv4 gateway address
#[arg(long)]
@@ -351,7 +351,7 @@ impl Relay {
async fn read_custom_wireguard_relay(
host: String,
port: u16,
- peer_pubkey: String,
+ peer_pubkey: wireguard::PublicKey,
tunnel_ip: Vec<IpAddr>,
ipv4_gateway: Ipv4Addr,
ipv6_gateway: Option<Ipv6Addr>,
@@ -369,8 +369,6 @@ impl Relay {
.await
.unwrap();
- let peer_public_key = wireguard::PublicKey::from_base64(&peer_pubkey)
- .map_err(|_| Error::InvalidCommand("invalid public key"))?;
let private_key = wireguard::PrivateKey::from_base64(&private_key_str)
.map_err(|_| Error::InvalidCommand("invalid private key"))?;
@@ -382,7 +380,7 @@ impl Relay {
addresses: tunnel_ip,
},
peer: wireguard::PeerConfig {
- public_key: peer_public_key,
+ public_key: peer_pubkey,
allowed_ips: all_of_the_internet(),
endpoint: SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), port),
psk: None,