passepartoutvpn/tunnelkit

After starting vpn, an error appears again and again. Please help me.

DanielJefferson123 opened this issue · 2 comments

NSError? domain: "NEVPNConnectionErrorDomainPlugin" - code: 7
"NSLocalizedDescription" : "The VPN session failed because an internal error occurred."

Client configuration is the following:
tls-client
remote x.x.x.x
port 1194
proto udp
dev tun0
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
comp-lzo
key-direction 1
redirect-gateway def1
keepalive 20 240
tun-mtu 1350

-----BEGIN OpenVPN Static key V1-----
3da045ffc92e88512287a4b0af1fd23c

-----END OpenVPN Static key V1-----


-----BEGIN CERTIFICATE-----
MIIDMDCCAhigAwIBAgIUb3XhqouZsbSmZZA3PMb1VTQckTcwDQYJKoZIhvcNAQEL

-----END CERTIFICATE-----


-----BEGIN CERTIFICATE-----
MIIDQzCCAiugAwIBAgIRAK2w9hQhMcbpc5uh5XMp85IwDQYJKoZIhvcNAQELBQAw

-----END CERTIFICATE-----


-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIUxNdq06/lXMCAggA

-----END ENCRYPTED PRIVATE KEY-----

I appreciate keeshux that made the tunnelkit project. This project help me so much for understanding OpenVPN.
This project is good and helpful.
I downloaded tunnelkit project and I modified some codes in demo mac app.
After running connect(), error appears again and again.
I tried to solve the errors but I can't. I hope that keeshux and someone help me.
And then I want to talk directly with keeshux on tunnelkit project.
The following is my connect function.

// where ovpnCfg is the URL to the config file
func connectWithOVPN(conf ovpnCfg: URL)
{

   do {
      let conf = try OpenVPN.ConfigurationParser.parsed(fromURL: ovpnCfg,passphrase:"12345")
      let ovpnConf = conf.configuration // OpenVPN.Configuration
      var builder = ovpnConf.builder()
       builder.usesPIAPatches = false
       builder.renegotiatesAfter = nil
      let customConfiguration = builder.build()
       customConfiguration.print()
       
       
      cfg = OpenVPN.ProviderConfiguration("PcxfVPN.OpenVPN",
                                          appGroup: appGroup,
                                          configuration: customConfiguration)
       let credentials = OpenVPN.Credentials("user", "12345")
       cfg?.username = credentials.username
       let passwordReference: Data
       do {
           passwordReference = try keychain.set(password: credentials.password, for: credentials.username, context: tunnelIdentifier)
       } catch {
           print("Keychain failure: \(error)")
           Logger.log(path:textPath.stringValue, "Keychain failure: \(error)")
           textLog.string = textLog.string + "Keychain failure: \(error) \r\n"
           return
       }
       Task {
           var extra = NetworkExtensionExtra()
           extra.passwordReference = passwordReference
           try await vpn.reconnect(tunnelIdentifier,
                                   configuration: cfg!, // needs to be NetworkExtensionConfiguration
                                   extra: extra,
                                   after: .seconds(2))
       }
      
   } catch (let error) {
      print("**** The error is \(error.localizedDescription)")
   }
}

Entitlements I guess.

I've been unable to ever reproduce this. Sorry, closing.