<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "NetworkExtension",
  "identifier" : "/documentation/NetworkExtension/NEVPNProtocolIPSec",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Network Extension"
    ],
    "preciseIdentifier" : "c:objc(cs)NEVPNProtocolIPSec"
  },
  "title" : "NEVPNProtocolIPSec"
}
-->

# NEVPNProtocolIPSec

Settings for an IPsec VPN configuration.

```
class NEVPNProtocolIPSec
```

## Overview

To configure IKE version 2 (IKEv2), use the [`NEVPNProtocolIKEv2`](/documentation/NetworkExtension/NEVPNProtocolIKEv2) subclass. Instantiating [`NEVPNProtocolIPSec`](/documentation/NetworkExtension/NEVPNProtocolIPSec) directly implies IKE version 1.

## Topics

### Accessing IPSec properties

[`authenticationMethod`](/documentation/NetworkExtension/NEVPNProtocolIPSec/authenticationMethod)

The method used to authenticate the device with the IPSec server. For IKE version 2, when using extended authentication, this authentication method only affects how the client validates the authentication payload presented by the server.

[`NEVPNIKEAuthenticationMethod`](/documentation/NetworkExtension/NEVPNIKEAuthenticationMethod)

Internet Key Exchange (IKE) authentication methods used to authenticate with the IPSec server.

[`useExtendedAuthentication`](/documentation/NetworkExtension/NEVPNProtocolIPSec/useExtendedAuthentication)

A flag indicating if extended authentication will be negotiated.

[`sharedSecretReference`](/documentation/NetworkExtension/NEVPNProtocolIPSec/sharedSecretReference)

A persistent keychain reference to a keychain item containing the IKE shared secret.

[`localIdentifier`](/documentation/NetworkExtension/NEVPNProtocolIPSec/localIdentifier)

A string identifying the iOS or macOS device for authentication purposes

[`remoteIdentifier`](/documentation/NetworkExtension/NEVPNProtocolIPSec/remoteIdentifier)

A string identifying the IPSec server for authentication purposes

## Relationships

### Conforms To

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherited By

[`NEVPNProtocolIKEv2`](/documentation/NetworkExtension/NEVPNProtocolIKEv2)

### Inherits From

[`NEVPNProtocol`](/documentation/NetworkExtension/NEVPNProtocol)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)