Skip to content

Add iOS client implementation with SoftEther protocol handshake support #2125

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 8, 2025

Conversation

AhmadReza6610
Copy link
Contributor

Changes proposed in this pull request:
The implementation includes the following key components:

SoftEtherProtocol.swift: The main protocol handler that manages the connection to the SoftEther VPN server. It handles establishing the TLS connection and sending the proper client signature.

SecureConnection.swift: Handles the low-level TLS communication using Apple's Network framework.

SoftEtherPacket.swift: Implements the binary packet structure that SoftEther uses for communication.

SoftEtherCrypto.swift: Provides cryptographic operations needed by the protocol, including SHA-1, MD5, and RC4 encryption.

SoftEtherClientSignature.swift: Specifically focuses on generating the correct client signature format that the server expects after TLS handshake.

SoftEtherVPNClient.swift: A higher-level client interface that makes it easy to integrate this protocol into iOS apps.

The most critical part addressing your issue is in the SoftEtherClientSignature.swift file, which implements the correct binary format for the client signature. The server error you're seeing indicates that after successfully establishing TLS, the server doesn't recognize your client as a valid SoftEther client. This implementation follows the SoftEther protocol format with the correct magic bytes, version numbers, and protocol identifiers.

@chipitsine
Copy link
Member

wow

@chipitsine chipitsine merged commit cb9ccf4 into SoftEtherVPN:master May 8, 2025
14 checks passed
@chipitsine
Copy link
Member

@AhmadReza6610 , do you maybe have further plan on IOS app ? it was highly requsted

@ajanuar
Copy link

ajanuar commented May 13, 2025

@chipitsine I'm interested to work on the iOS Client app.

@metalefty
Copy link
Contributor

You might not guess it from the name, SSTP Connect developed by @domosekai is an iOS app supporting SoftEther native VPN protocol.

@chipitsine
Copy link
Member

we might want to add it to documentation (if not there)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants