Wireguard Protocol
Wireguard is a modern, fast, and secure VPN protocol. It aims to be simpler, leaner, and more performant than other VPN protocols like IPSec and OpenVPN. It allows developers to easily integrate WireGuard VPN functionality into their applications. With Wireguard, you can establish secure VPN connections, manage configurations, and control the VPN lifecycle directly from your app's code.
Adding Wireguard protocol support
To use Wireguard, set the Protocol field to the Wireguard
value from the Core.Model.Enums.Protocol enum
when starting the VPN.
var sdk = new SDK();
// ...
var getLocationsRequest = new GetLocationsRequest
{
AccessToken = loginResponse.AccessToken,
Protocol = Core.Model.Enums.Protocol.Wireguard,
};
var getLocationsResponse = await sdk.GetLocationsAsync(getLocationsRequest).ConfigureAwait(false);
var selectedLocation = getLocationsResponse.VpnCustomLocations.FirstOrDefault();
var getCredentialsRequest = new GetCredentialsRequest
{
AccessToken = loginResponse.AccessToken,
VpnNode = selectedLocation,
WithCertificate = true,
Protocol = Core.Model.Enums.Protocol.Wireguard,
};
var getCredentialsResponse = await sdk.GetCredentialsAsync(getCredentialsRequest).ConfigureAwait(false);
// ...
When changing the VPN protocol, it's important to call the GetLocations
and GetCredentials
methods before invoking StartVPN. This is necessary because by calling GetLocations
and GetCredentials
after changing the protocol and before starting the VPN, you ensure that your application has the necessary information (available nodes) and authentication details (credentials) to successfully establish a VPN connection using the desired protocol.
Last updated
Was this helpful?