IPSec Protocol

IPSec (Internet Protocol Security) is a secure network protocol suite that authenticates and encrypts data packets to provide secure encrypted communication between two computers over an Internet Protocol network. Unified SDK is using system default IKEv2 device for IPSec VPN tunnel.

Adding IPSec protocol support

The Apple SDK provides IPSec support as a wrapper on the native Apple IPSec implementation using IKEv2. You can use IPSec either as a standalone single-protocol SDK or as part of the Unified SDK with multiple protocols.

Standalone IPSec SDK:

import VPNSDK
import VPNApplicationSDK


let groupData = VPNGroupData(
    groupID: "group.com.yourcompany.vpnsdk-demo",
    usesSystemExtension: false
)

let iPSecConfiguration = IPSecConfiguration(
    carrierID: "YOUR_CARRIER_ID",
    groupData: groupData,
    trafficCountersFetchInterval: 3.0,
    hostURLs: nil,
    profileName: "My VPN",
    onDemandConfiguration: OnDemandConfiguration.default,
    networkConfiguration: nil,
    modulesConfiguration: ModulesConfiguration.default,
    securityConfiguration: SecurityConfiguration.default,
    deviceType: nil,
    logsCryptographicCredentials: nil,
    externalDeviceID: nil,
    storageServiceName: nil,
    systemExtensionEncryptionKey: nil
)

let iPSecSDK = IPSecSDK(configuration: iPSecConfiguration)

Unified SDK with IPSec:

Note:

  • ComposedConfiguration requires at least 2 protocols, so the snippet includes both .hydra and .ipsec in availableTypes, with .ipsec set as the initialProtocolType.

Last updated

Was this helpful?