Tor + Pluggable Transports on iOS and macOS
IPtProxyUI provides all things necessary to use the Pluggable Transports from the IPtProxy library with Tor, preferrably via Tor.framework.
It includes all necessary configuration, code to interact with Tor Project's MOAT/rdsys service to update the user's configuration and fetch lesser-known bridges and, of course, a ready-made UI to show to your users which can handle all of the above.
The UI is complete for your users to configure all aspects of the Transports. However, you're not obliged to use it. You can create your own and use the lower-level code only.
Additionally there's a helper class IpSupport
which can aid in better supporting
IPv6-only networks which are common with some mobile network carriers.
IPtProxyUI is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'IPtProxyUI'
For a headache-free start into the world of Tor on iOS and macOS, check out
the new TorManager
project!
use IPtProxyUI
// ATTENTION: Since IPtProxy 2.0.0 this needs to be set explicitly before starting a transport!
Settings.stateLocation = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!.appendingPathComponent("pt_state")
Transport.obfs4.start(log: true)
print((try? String(contentsOf: Transport.obfs4.logFile!)) ?? "throwed")
Transport.obfs4.stop()
Localization is done with BartyCrouch, licensed under MIT.
Just add new NSLocalizedStrings
calls to the code. After a build, they will
automatically show up in Localizable.strings
.
Don't use storyboard and xib file localization. That just messes up everything. Localize these by explicit calls in the code.
- IPtProxy, licensed under MIT
- Eureka, licensed under MIT
- ProgressHUD, licensed under MIT
- MBProgressHUD-OSX, licensed under MIT
- ReachabilitySwift, licensed under [MIT] (https://github.com/ashleymills/Reachability.swift/blob/master/LICENSE))
https://tordev.guardianproject.info
Benjamin Erhart, berhart@netzarchitekten.com for the Guardian Project
IPtProxyUI is available under the MIT license. See the LICENSE file for more info.