Currently in early development stage.
-
Clone the repo to a working directory
-
CocoaPods is used to manage dependencies. Pods are setup easily and are distributed via a ruby gem. Follow the simple instructions on the website to setup. After setup, run the following command from the toplevel directory of TextSecureiOS to download the dependencies for TextSecure iOS:
pod install
If you are having build issues, first make sure your pods are up to date
pod update
pod install
occasionally, CocoaPods itself will need to be updated. Do this with
sudo gem update
- Temporary - Building Curve25519-donna manually. This step should be removed soon
- Clone the git repository into
Libraries/src/ - Run the bash script called
build-libcurve25519.shfrom withinLibraries/. This build should be quick, no coffee for you.
-
Open the
TextSecureiOS.xcworkspacein Xcode. Note that for CocoaPods to work properly it is very important to always open the workspace and not the.xcodeprojfile. Build and Run and you are ready to go! -
Debugging network calls. If you are contributing networked code, PonyDebugger is integrated in Debug mode of the application. Check out https://github.com/square/PonyDebugger#quick-start and easily debug network code from the iOS simulator
TextSecure uses certificate-pinning to avoid (wo)man-in-the-middle attacks. If you use your own server, here are the steps to generate the certificate file.
- Use OpenSSL to download the certificate (copy-paste the text between the
BEGINandENDinto acert.pemfile).
openssl s_client -showcerts -connect textsecure-service.whispersystems.org:443 </dev/null- Use OpenSSL to convert this PEM certificate into a DER certificate.
openssl x509 -inform PEM -outform DER -in cert.pem -out cert.der- Rename and move
cert.dertoTextSecureiOS/gcm.textsecure.whispersystems.org.cer
Looking for documentation? Check out the wiki!
https://github.com/WhisperSystems/TextSecure/wiki
The iOS code will be tested to be interoperable with the TextSecure Android push-library branch
$ git clone https://github.com/WhisperSystems/TextSecure.git
$ git checkout push-library
$ gradle build
$ adb install -r build/apk/TextSecure-debug-unaligned.apk
You'll need gradle > 1.8 installed on your build machine, as well as the "Android Support Repository" and "Google Repository" installed from the Android SDK manager on your build machine.
At this early stage there are two primary developers of TextSecure iOS and as we move from the early stages to more advanced ones opportunities will abound to contribute to the core code base. We are particularly interested in support and contributions associated localization, code review, and automated testing. Please contact us.
We are trying to follow the GitHub code conventions for Objective-C and we would really appreciate that pull requests do conform with those conventions.
In addition to that, always add curly braces to your if conditionals, even if there is no else.
One note, for programmers joining us from Java or similar language communities, note that exceptions are not commonly used for errors that may occur in normal use so familiarize yourself with NSError
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.
Copyright 2013 Whisper Systems
Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html