Skip to content

Commit 91fdfd0

Browse files
Fix connecting to OpenVPN when failedto fetch auth certificate [VPNWIN-829]
1 parent 9f34532 commit 91fdfd0

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/ProtonVPN.App/Vpn/VpnCredentialProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using System.Threading.Tasks;
2121
using ProtonVPN.Common.Abstract;
2222
using ProtonVPN.Common.Extensions;
23+
using ProtonVPN.Common.Networking;
2324
using ProtonVPN.Common.Vpn;
2425
using ProtonVPN.Core.Auth;
2526
using ProtonVPN.Core.Models;
@@ -51,7 +52,7 @@ public async Task<Result<VpnCredentials>> Credentials()
5152
User user = _userStorage.User();
5253

5354
AuthCredential authCredential = await _authCredentialManager.GenerateAsync();
54-
if (authCredential.CertificatePem.IsNullOrEmpty())
55+
if (_appSettings.GetProtocol() == VpnProtocol.WireGuard && authCredential.CertificatePem.IsNullOrEmpty())
5556
{
5657
return Result.Fail<VpnCredentials>();
5758
}

src/ProtonVPN.Common/Vpn/VpnCredentials.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public readonly struct VpnCredentials
2727
public VpnCredentials(string username, string password, string clientCertPem, AsymmetricKeyPair clientKeyPair)
2828
: this(username, password)
2929
{
30-
Ensure.NotEmpty(clientCertPem, nameof(clientCertPem));
3130
Ensure.NotNull(clientKeyPair, nameof(clientKeyPair));
3231

3332
ClientCertPem = clientCertPem;

src/ProtonVPN.Vpn/Connection/BestPortWrapper.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
using System.Threading;
2222
using System.Threading.Tasks;
2323
using ProtonVPN.Common;
24+
using ProtonVPN.Common.Extensions;
2425
using ProtonVPN.Common.Logging;
2526
using ProtonVPN.Common.Threading;
2627
using ProtonVPN.Common.Vpn;
@@ -121,8 +122,11 @@ private VpnCredentials GetCredentials(IVpnEndpoint endpoint)
121122
}
122123

123124
string username = $"{_vpnCredentials.Username}+b:{endpoint.Server.Label}";
124-
return new VpnCredentials(username, _vpnCredentials.Password, _vpnCredentials.ClientCertPem,
125-
_vpnCredentials.ClientKeyPair);
125+
126+
return _vpnCredentials.ClientCertPem.IsNullOrEmpty() || _vpnCredentials.ClientKeyPair == null
127+
? new VpnCredentials(username, _vpnCredentials.Password)
128+
: new VpnCredentials(username, _vpnCredentials.Password, _vpnCredentials.ClientCertPem,
129+
_vpnCredentials.ClientKeyPair);
126130
}
127131

128132
private async void DelayedDisconnect(CancellationToken cancellationToken)

0 commit comments

Comments
 (0)