Skip to content

Commit

Permalink
chore(vpn): add check for empty public key for Wireguard
Browse files Browse the repository at this point in the history
  • Loading branch information
qdm12 committed Jun 12, 2022
1 parent d4c6a9b commit 89b6a03
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 4 deletions.
3 changes: 2 additions & 1 deletion internal/provider/ivpn/connection_test.go
Expand Up @@ -72,7 +72,7 @@ func Test_Provider_GetConnection(t *testing.T) {
},
"default Wireguard port": {
filteredServers: []models.Server{
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}},
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}, WgPubKey: "x"},
},
selection: settings.ServerSelection{
VPN: vpn.Wireguard,
Expand All @@ -82,6 +82,7 @@ func Test_Provider_GetConnection(t *testing.T) {
IP: net.IPv4(1, 1, 1, 1),
Port: 58237,
Protocol: constants.UDP,
PubKey: "x",
},
},
}
Expand Down
3 changes: 2 additions & 1 deletion internal/provider/mullvad/connection_test.go
Expand Up @@ -72,7 +72,7 @@ func Test_Provider_GetConnection(t *testing.T) {
},
"default Wireguard port": {
filteredServers: []models.Server{
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}},
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}, WgPubKey: "x"},
},
selection: settings.ServerSelection{
VPN: vpn.Wireguard,
Expand All @@ -82,6 +82,7 @@ func Test_Provider_GetConnection(t *testing.T) {
IP: net.IPv4(1, 1, 1, 1),
Port: 51820,
Protocol: constants.UDP,
PubKey: "x",
},
},
}
Expand Down
10 changes: 10 additions & 0 deletions internal/provider/utils/connection.go
@@ -1,6 +1,7 @@
package utils

import (
"errors"
"fmt"
"math/rand"

Expand Down Expand Up @@ -29,6 +30,10 @@ type Storage interface {
servers []models.Server, err error)
}

var (
ErrWireguardPublicKeyMissing = errors.New("wireguard public key is missing")
)

func GetConnection(provider string,
storage Storage,
selection settings.ServerSelection,
Expand All @@ -52,6 +57,11 @@ func GetConnection(provider string,
continue
}

if selection.VPN == vpn.Wireguard && server.WgPubKey == "" {
return connection, fmt.Errorf("%w: for server hostname %s and ip %s",
ErrWireguardPublicKeyMissing, server.Hostname, ip)
}

hostname := server.Hostname
if selection.VPN == vpn.OpenVPN && server.OvpnX509 != "" {
// For Windscribe where hostname and
Expand Down
2 changes: 1 addition & 1 deletion internal/provider/wevpn/connection_test.go
Expand Up @@ -72,7 +72,7 @@ func Test_Provider_GetConnection(t *testing.T) {
},
"default Wireguard port": {
filteredServers: []models.Server{
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}},
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}, WgPubKey: "x"},
},
selection: settings.ServerSelection{
VPN: vpn.Wireguard,
Expand Down
3 changes: 2 additions & 1 deletion internal/provider/windscribe/connection_test.go
Expand Up @@ -73,7 +73,7 @@ func Test_Provider_GetConnection(t *testing.T) {
},
"default Wireguard port": {
filteredServers: []models.Server{
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}},
{IPs: []net.IP{net.IPv4(1, 1, 1, 1)}, WgPubKey: "x"},
},
selection: settings.ServerSelection{
VPN: vpn.Wireguard,
Expand All @@ -83,6 +83,7 @@ func Test_Provider_GetConnection(t *testing.T) {
IP: net.IPv4(1, 1, 1, 1),
Port: 1194,
Protocol: constants.UDP,
PubKey: "x",
},
},
}
Expand Down

0 comments on commit 89b6a03

Please sign in to comment.