Unified VPN SDK for Apple

General

The iOS and macOS SDK is part of the Pango Partner SDK, providing client-side libraries for implementing custom VPN infrastructure.

Architectural Diagram

The architectural diagram illustrates the components and data flow for providing unified and tunnel SDKs to applications.

For the unified SDK, the App interacts with the SDK Configuration, which connects to the VPN SDK. The VPN SDK consists of a VPN Core that utilizes Remote Host Provider services (Remote Config and Remote Host) and an API Service that fetches data from Credentials Source and passes it to the CNL (Cellular Network Layer). The VPN Core also includes config files that are used by the Interceptor and Analytics components. The Interceptor sends data through the VPN Transport layer.

In the tunnel SDK architecture, the Network Extension interacts with the API Service, which retrieves data from the Credentials Source and CNL. The Analytics component sends data through the Tunnel Transport layer to the Killswitch. The Tunnel Transport is connected to the Extension Delegate and VPN Node components. The VPN Node is likely responsible for managing the VPN connection.

Both SDKs share common components such as Remote Config, Credentials Source, CNL, and Analytics, but differ in their specific implementations. The unified SDK focuses on providing a VPN Core with interceptor capabilities, while the tunnel SDK utilizes a network extension and tunnel transport for VPN connectivity.

Data storage is shown as a separate component, used for storing configuration settings, logs, and other relevant data.

Overall, the architectural diagram illustrates the modular design of the SDKs, separating concerns and responsibilities among different components to provide a robust and flexible VPN solution for applications.

Prerequisites

The following prerequisites are required to use the SDK:

  • Requires iOS 13+ or macOS 10.15+

Additionally, in order to be able to use the SDK, the following steps have to be done:

  • Sign in at pango-cloud.com.

  • Create a project and use a name for your project as a Public key. Private key is optional.

  • Use SDK where carrierId equals given Public Key and backend url equals default SDK url or url provided by Pango team.

Note that at this time, it is not possible for users to create their own accounts directly if they do not already have an account established with us. Please contact your sales representative to initiate account creation as part of the project and client onboarding process or contact us. We apologize for any inconvenience.

Supported Protocols

  • Hydra

  • WireGuard

  • IPSec

  • Unlike most SDKs that require a two-step integration process, IPSecSDK offers a more streamlined approach. By leveraging Apple's built-in tunnel implementation, IPSecSDK eliminates the need to set up a separate network extension target. This simplifies the integration process and reduces the amount of configuration required.

  • For detailed instructions on setting up IPSecSDK, please refer to our dedicated IPSec setup guide.

Supported Features

Feature
Description

Provides a comprehensive set of features for integrating VPN functionality into your application, including configuring the SDK, connecting to VPN, handling errors, using the Fireshield categorization service, and sharing logs.

Allows using and switching between different VPN protocols (Hydra, IPSec, WireGuard) inside one app, with options for manual or automatic protocol switching.

API Documentation

To view a complete list of of the available APIs, click the following link: API reference.

Changelog

The SDK version history and changes are documented here.

Support

If you encounter any issues or have questions regarding integrating the SDK, please visit our Github.

Last updated

Was this helpful?