Skip to content
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

updating changes #1

Open
wants to merge 951 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
951 commits
Select commit Hold shift + click to select a range
327ca05
placeholder for db password
corbett Mar 16, 2014
b7e5b86
change DB password present in in-app settings, but not in settings.app
corbett Mar 16, 2014
211fcba
delete request in TSNetworkManager, infrastructure in settings to der…
corbett Mar 16, 2014
1012fc7
verbs in place, but calling wrong urls
corbett Mar 16, 2014
f640afa
added back in message pipeline code
corbett Mar 16, 2014
ebc2491
Screenshot protection
FredericJacobs Mar 17, 2014
70396ac
Update AFNetworking to 2.2.1
FredericJacobs Mar 17, 2014
2a38152
Fixes in the way contacts are stored
FredericJacobs Mar 17, 2014
aa70a5b
Fixing hasReceiverChain
FredericJacobs Mar 17, 2014
9e7b4c6
Fixing outgoing preKey messages
FredericJacobs Mar 17, 2014
f6b6bdd
deregister account option
corbett Mar 17, 2014
3fd658d
deregister account option
corbett Mar 17, 2014
5b0d5d0
Merge branch 'deregister'
corbett Mar 17, 2014
8d493df
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS
corbett Mar 17, 2014
e457f71
New API + Key versions
FredericJacobs Mar 17, 2014
6a5b6c4
Adding version byte to TSRegisterPrekeys
FredericJacobs Mar 17, 2014
facba84
tests
corbett Mar 17, 2014
cd5a635
Checking key sizes, enhancing storage of crypto pipeline
FredericJacobs Mar 17, 2014
e1b41bc
Fixing conversationview
FredericJacobs Mar 17, 2014
d811894
Fixing contact name lookup
FredericJacobs Mar 17, 2014
70ac5bd
More tests, and sending crypto pipeline
FredericJacobs Mar 18, 2014
9353e9f
Fixes in Prekey pipeline
FredericJacobs Mar 18, 2014
c85cfce
tests
corbett Mar 18, 2014
e5e6c92
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS
corbett Mar 18, 2014
95b4d48
testing attachment protocol buffers
corbett Mar 18, 2014
9d179d2
testing group protocol buffers
corbett Mar 18, 2014
0180b55
testing protocol buffers
corbett Mar 19, 2014
a79ebbc
protocol buffers almost done for attachments
corbett Mar 19, 2014
45517bd
attachment protocol buffers tested
corbett Mar 19, 2014
400b310
almost there with group protocol buffers
corbett Mar 19, 2014
948969e
just avatars for groups left
corbett Mar 19, 2014
9579cbf
group and attachment protocol buffer tests and passes
corbett Mar 19, 2014
4119a91
Simplifying ratted methods
FredericJacobs Mar 20, 2014
c4e2252
Fixing compilation error
FredericJacobs Mar 21, 2014
54f6fbc
Protobuffer encoding was not correctly configured.
FredericJacobs Mar 21, 2014
0df438d
version should be 1
FredericJacobs Mar 22, 2014
4a0c25f
Quick fix for #130
FredericJacobs Mar 23, 2014
10ab4d2
refactoring and fixing TSWhisperMessage abstract class bugs
corbett Mar 23, 2014
5c27f45
refactor complete. now testing.
corbett Mar 23, 2014
90d4281
tests succeeded
corbett Mar 23, 2014
5db3138
more conflation of TSWhisperMessage and TSEncryptedWhisperMessage fixing
corbett Mar 23, 2014
be166b7
Fixes on TSMessages - Closes #130
FredericJacobs Mar 23, 2014
0432359
refactoring, more of it
corbett Mar 23, 2014
829c4e7
Delete messages in conversation
FredericJacobs Mar 23, 2014
978156b
moving methods around
corbett Mar 23, 2014
d786407
Debug method that deletes sessions. Closes #129
FredericJacobs Mar 23, 2014
e5e0c25
merging Fred's deletes
corbett Mar 23, 2014
1a99542
fixing bug in send
corbett Mar 23, 2014
2b9a3da
prekey message being sent is received
corbett Mar 23, 2014
f8d6a7f
Tests and bug fixes for TSSessions
FredericJacobs Mar 23, 2014
516e746
Additional tests for receiving chains. Closes #132
FredericJacobs Mar 23, 2014
785c956
Fixes #131
FredericJacobs Mar 23, 2014
d0eda9f
IdentityKey could have been nil if DB not open.
FredericJacobs Mar 24, 2014
4e3abd6
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS int…
corbett Mar 24, 2014
464c716
identity keys are 32 not 33 bytes
corbett Mar 24, 2014
325dbc1
logging for debugging purposes
corbett Mar 24, 2014
785b744
Removing unused/confusing interface methods
FredericJacobs Mar 24, 2014
4a51ba1
Fixing key lengths with Android - Session objects always have short k…
FredericJacobs Mar 24, 2014
6a34726
Duplicate removal of version byte.
FredericJacobs Mar 24, 2014
22ee5ae
Updating version data to work with Android
FredericJacobs Mar 24, 2014
9c00a97
totally moved around axolotl stuff to match protocol
corbett Mar 24, 2014
cabe5a7
refactoring and logging. seem to have initial keys now matching
corbett Mar 24, 2014
677504c
RKs matching on sending and receiving device for their mirrored 3ECDH…
corbett Mar 25, 2014
0c18654
first hmac matching
corbett Mar 25, 2014
703dc5b
epic refactoring and Android audit
corbett Mar 25, 2014
4002432
epic refactoring complete. first intra-iOS message send. #yolocrypto
corbett Mar 25, 2014
7a86c0d
More consistent key length decoding
FredericJacobs Mar 26, 2014
6e7c32a
Redraw view on received message. Closes #137
FredericJacobs Mar 26, 2014
7ff4120
typo
corbett Mar 29, 2014
07039f9
merged Fred's fixes
corbett Mar 29, 2014
052cb45
basic verification UI
corbett Mar 29, 2014
0e45664
opens up verification
corbett Mar 29, 2014
d859194
formats keys correctly
corbett Mar 29, 2014
e16b094
displaying my identity key
corbett Mar 29, 2014
49cd8bd
displaying their identity key
corbett Mar 29, 2014
7122fbb
code setup for tracking identity key changes!
corbett Mar 29, 2014
3b5e496
identity key is there for the scanning
corbett Mar 30, 2014
a11c1ea
scanner in place
corbett Mar 30, 2014
4471ff9
demo of scan
corbett Mar 30, 2014
c38e52d
encoding utf8 so that stringvalue of barcode scanner works
corbett Mar 30, 2014
01d80c5
basic demo of scanner and verification in place
corbett Mar 30, 2014
b9ee25d
Deciphering Android Messages
FredericJacobs Mar 30, 2014
bccfe1d
HMAC verification passes (Android -> iOS)
FredericJacobs Mar 31, 2014
c01caf7
merger Fred's work
corbett Apr 1, 2014
a92fc24
idkey stuff
corbett Apr 5, 2014
381eb9c
merged
corbett Apr 5, 2014
7302817
basic ipad
corbett Apr 6, 2014
6c2ef0d
refactoring pbuffers to prevent misuse
corbett Apr 6, 2014
68f32a2
refactored tests
corbett Apr 6, 2014
aa9157a
refactored pbuffer tests passing
corbett Apr 6, 2014
da96c2d
tests passing
corbett Apr 6, 2014
83364d1
AESCBC encryption/decryption of TS Attachments uses HMACSHA256 to mac…
corbett Apr 6, 2014
750b0c5
no push message encryption statement before mistake, doc was wrong
corbett Apr 6, 2014
e0e0a9e
now sending command to refresh database on receipt. Droid-> first sen…
corbett Apr 6, 2014
dd68349
updated issues with droid->ios.
corbett Apr 6, 2014
ed46c05
test writing for android pipeline comparison
corbett Apr 7, 2014
d9d4ba4
New Whisper Systems Certificate after heartbleed
FredericJacobs Apr 11, 2014
aaade2c
push message content handled incorrectly previously
corbett Apr 12, 2014
d363c17
refactored to properly handle push message content, method names clearer
corbett Apr 12, 2014
5618364
finished writing tests
corbett Apr 12, 2014
c62a9d6
first droid->ios, ios->droid and ios->ios sends and displays
corbett Apr 12, 2014
7cbd1f4
Fix Locale bug where appears with garbage values
Apr 15, 2014
eb05792
Verification View Controller UI
Apr 15, 2014
f21a99c
Redesign signup view
Apr 15, 2014
cb9e344
Remove cancel button
Apr 15, 2014
8d11cc2
reinsert navbar for countryVC
Apr 15, 2014
79b5ae1
remove navbar for verif
Apr 15, 2014
ef6bfe2
Color category
Apr 15, 2014
0903452
layout for iphone 4 VerifVC
Apr 15, 2014
4c546ee
MONEYMONEY
Apr 15, 2014
8702258
disable button if number invalid
Apr 15, 2014
0bfd24c
If country code is valid, jump to number field
FredericJacobs Apr 16, 2014
5ae7806
Removing duplicates
FredericJacobs Apr 16, 2014
62fece7
Updating AFNetworking dependency
FredericJacobs Apr 16, 2014
61d2b8f
libPhoneNumber casting change
FredericJacobs Apr 16, 2014
2616f5d
fixed phone country code issue
corbett Apr 16, 2014
60260f5
Update CONTRIBUTING.md
corbett Apr 16, 2014
7504e55
UI for pw strength
Apr 16, 2014
ea9d0c6
clear code string after verification
Apr 16, 2014
4e48e25
Disable next button on verif code + idea for entropy label
Apr 16, 2014
c70d26f
fixes on pw view
Apr 16, 2014
e3714ea
Shake if password incorrect + redesign pw view
Apr 16, 2014
89a5b9f
Redesign group setup VC
Apr 16, 2014
23e1274
Fix some warnings
Apr 17, 2014
b7024d6
Updating to the new libPhoneNumber library
FredericJacobs Apr 17, 2014
25918b9
MONEYMONEY
Apr 17, 2014
df9f4e3
fixes
Apr 17, 2014
31d8f42
shoutout to contributors with substantial contributions
FredericJacobs Apr 17, 2014
b713289
Merge pull request #163 from WhisperSystems/contributors
FredericJacobs Apr 18, 2014
8aa5757
Update CONTRIBUTING.md
FredericJacobs Apr 18, 2014
f3a6cb6
Merging Dylan's PR with great new UI enhancements
FredericJacobs Apr 18, 2014
859b94d
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS
FredericJacobs Apr 18, 2014
c67789b
Remove notification observers.
Apr 18, 2014
f4cd600
Hide navigation bar in viewWillAppear instead of viewDidAppear.
Apr 18, 2014
2a05ed0
Make code more readable with early return.
Apr 18, 2014
9205205
Move UIColor category to categories folder.
Apr 18, 2014
9ebbf68
Add UIColor category header to get rid of possible compiler confusion.
Apr 18, 2014
a4937c2
local
corbett Apr 19, 2014
fea0a26
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS
corbett Apr 19, 2014
4fcf24e
removed errorneous index reset on receiver chain init
corbett Apr 20, 2014
223c139
using set method in typical style
corbett Apr 20, 2014
54f72e3
RATCHET IS RATCHET #YOLOCRYPTO
corbett Apr 20, 2014
1e2300c
Storing contact on receipt
FredericJacobs Apr 20, 2014
45b7b63
Removing Password Evaluator, adding as Pod
FredericJacobs Apr 20, 2014
b595c14
Starting fix for #165
FredericJacobs Apr 21, 2014
1128a04
improvements for password view
cbs Apr 24, 2014
b0fb75e
improvements for password handling
cbs Apr 24, 2014
412dd0e
improvements and enhancements for setting and entering passwords
cbs Apr 25, 2014
4af2edd
fixed double send issue, by changing counterFromNumber function to ma…
corbett Apr 26, 2014
92f4a1f
fixed for reals this time the issues of the double send
corbett Apr 26, 2014
f55f611
removed some logs. time to talk to myself.
corbett Apr 26, 2014
cf24764
just a bit of code cleanup
corbett Apr 26, 2014
634fcca
Merge branch 'fixingPendingPrekeys'
FredericJacobs Apr 28, 2014
50c335a
Fix for #173
FredericJacobs May 1, 2014
b4cc128
Closes #174
FredericJacobs May 3, 2014
704f435
story
corbett May 11, 2014
0c9cc55
merge
corbett May 11, 2014
55f685e
sketch of the identity key stuff
corbett May 11, 2014
62d9a70
Merge branch 'verifyidentitykeys'
corbett May 11, 2014
5955643
cleanup
corbett May 11, 2014
e5ab668
changing db format for identitykey stuff to be more consistent
corbett May 11, 2014
f198039
Add Travis CI configuration files
dcestari May 12, 2014
cad9567
Fixes dead store and uses NSData instead of malloc/free
Jaxan May 10, 2014
64d769d
Fixes memory leak
Jaxan May 10, 2014
18aebaa
Fixes some format strings
Jaxan May 10, 2014
8aa5e23
Fixes some int <-> unsigned long conversions
Jaxan May 10, 2014
974ef06
Merge pull request #180 from Jaxan/analyzer-issues
FredericJacobs May 15, 2014
64dc27b
WebSocket library and manager
FredericJacobs May 17, 2014
5e20a39
adding profile in spirit of TS android, adding storyboard control to …
corbett May 18, 2014
91cd418
WebSocket connection and endpoint
FredericJacobs May 18, 2014
c3fd854
consistently using storyboard in messaging now
corbett May 18, 2014
66efccb
fixed bug where nav bar was going over messages in message view
corbett May 18, 2014
61631d1
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS int…
corbett May 18, 2014
94f6aae
Fixing WebSocket responder
FredericJacobs May 18, 2014
02e7fae
Update CONTRIBUTING.md
corbett May 18, 2014
8fbf732
Update CONTRIBUTING.md
corbett May 18, 2014
81e9c56
Update CONTRIBUTING.md
corbett May 18, 2014
978942b
Update CONTRIBUTING.md
corbett May 18, 2014
2b6567d
Update CONTRIBUTING.md
corbett May 18, 2014
3e3046b
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS int…
corbett May 19, 2014
48ec8a0
Update CONTRIBUTING.md
corbett May 19, 2014
faa97c4
Disable WebSockets on master
FredericJacobs May 19, 2014
32bcc0e
Revert "Disable WebSockets on master"
FredericJacobs May 19, 2014
e9e8c66
WebSockets connection methods
FredericJacobs May 19, 2014
52d64ab
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS int…
corbett May 24, 2014
fe038c2
ability to display verification
corbett May 24, 2014
84a1049
now IDkey stored for both alice and bob at session start.
corbett May 24, 2014
68df450
marking identity key verified if scanned correctly
corbett May 24, 2014
2fbcd02
after some work with unwinding segues, now works on Alice's side (Bob…
corbett May 24, 2014
ce525b2
resolved storyboard merge conflict
corbett May 25, 2014
7adcab0
git push origin masterMerge branch 'cbs-master'
corbett May 25, 2014
669b8ef
merging project file
corbett May 25, 2014
58cc9f8
git push origin masterMerge branch 'ursachec-cleanups'
corbett May 25, 2014
dd31afa
Merge branch 'master' of https://github.com/dcestari/TextSecure-iOS i…
corbett May 25, 2014
6824f70
git push origin masterMerge branch 'dcestari-master'
corbett May 25, 2014
76df0bf
ability to change the password of the storage master key
cbs May 26, 2014
a50d992
added test case for changing the password of the storage master key
cbs May 26, 2014
3e3d2f2
added implementation to change storage master key password
cbs May 26, 2014
bbb4132
Merge pull request #186 from cbs/PasswordReset
FredericJacobs May 29, 2014
4853122
Merge branch 'master' of github.com:WhisperSystems/TextSecure-iOS
corbett Jun 1, 2014
2ce82bd
redo group creation UI
corbett Jun 1, 2014
bbd323f
storyboard to send first message
corbett Jun 1, 2014
d888d9b
first droid group create initiated by iOS, showing that PBuffers work…
corbett Jun 1, 2014
88d71ca
sketch of database for groups
corbett Jun 1, 2014
da81ec0
group stuff
corbett Jun 21, 2014
77b7016
PublicKeyPinning
FredericJacobs Jul 14, 2014
1690520
SocketRocket fork with ping pong
FredericJacobs Jul 20, 2014
b067309
Closing socket in the background properly
FredericJacobs Jul 20, 2014
4fabea5
WebSocket integration
FredericJacobs Jul 21, 2014
63ff33c
Merge branch 'WebSockets'
FredericJacobs Jul 21, 2014
0e03017
conflict resolved
corbett Jul 21, 2014
d19937c
merge
corbett Jul 21, 2014
2c01c8e
Cleanup
FredericJacobs Jul 21, 2014
7bcff4f
group work
corbett Jul 21, 2014
3b8c791
Merge branch 'groups' into groupshawaii
corbett Jul 21, 2014
e73a94c
merged old group work
corbett Jul 21, 2014
6cb4823
group messaging queries database correctly
corbett Jul 22, 2014
cfab74a
messages for group and messages for contact separated.
corbett Jul 22, 2014
4c2072d
group database tested
corbett Jul 22, 2014
9bc7ca7
iterating toward groups
corbett Jul 22, 2014
7c98e90
closer to groups
corbett Jul 23, 2014
083fd01
bug where group members from protobuf were not TSContacts
corbett Jul 23, 2014
68dbac9
now android can reply
corbett Jul 23, 2014
6f35331
iOS replies go to android inbox, need to fix
corbett Jul 23, 2014
60a4dd6
group volleys
corbett Jul 23, 2014
befa382
messages for groups should now not be stored multiple times
corbett Jul 23, 2014
5a873c6
messages for groups should now not be stored multiple times
corbett Jul 23, 2014
38a7ad0
conversation view now correct for groups
corbett Jul 23, 2014
433ef9a
now puts conversation with most recent message to top of conversation…
corbett Jul 23, 2014
85d560e
added support for displaying meta messages (group joins/quits/creatio…
corbett Jul 24, 2014
0021007
broadcast groups
corbett Jul 24, 2014
3cdb54e
removing the ability to delete sessions, even in debug mode.
corbett Jul 24, 2014
aba2b08
sketch of new broadcast group format
corbett Jul 24, 2014
1fcaa49
working on broadcast groups
corbett Jul 24, 2014
593447d
logic changed for broadcast groups
corbett Jul 24, 2014
382559a
broadcast messages well behaved in UI
corbett Jul 25, 2014
2435fbc
more broadcast work
corbett Jul 25, 2014
08b58f1
removing broadcast groups from UI to be consistent with android for n…
corbett Jul 25, 2014
7ae8899
working on protobuf bug
corbett Jul 25, 2014
061e7e8
fixed bug in group workflow where asking for contact
corbett Jul 25, 2014
c3c2f69
Fixing double receive
FredericJacobs Jul 25, 2014
b26a71c
Disabling temporary database
FredericJacobs Jul 25, 2014
d2b8d36
Did not reconnect on launch
FredericJacobs Jul 25, 2014
3a617db
Revert "group work"
corbett Jul 26, 2014
a5c853f
one method misnamed
corbett Jul 26, 2014
033a61d
Merging groups
FredericJacobs Jul 26, 2014
45a6032
Removing duplicate code
FredericJacobs Jul 26, 2014
82595a8
Update README.md
FredericJacobs Aug 11, 2014
a8d99c2
Fixed UI bug in set master password step of sign up stage
gavia Sep 24, 2014
7a3e6ca
Merge pull request #208 from gavia/master
FredericJacobs Sep 24, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Pods/*
Libraries/bin/*
Libraries/include/*
*.lock
Libraries/src/*
.DS_Store
*.swp
.Trashes
*~.nib
xcuserdata
Libraries/lib/*
*.xccheckout
Build/*
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
language: objective-c
before_install:
- export LANG=en_US.UTF-8
- gem install cocoapods --no-ri --no-rdoc
xcode_workspace: TextSecureiOS.xcworkspace
xcode_scheme: TextSecureiOS
xcode_sdk: iphonesimulator

Binary file added Builds/TextSecureiOS-unencryptedpipeline.ipa
Binary file not shown.
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
## Contribute

At this early stage there are two primary developers of TextSecure iOS: [@corbett](https://github.com/corbett) and [@FredericJacobs](https://github.com/fredericjacobs) 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, with any of the [Open Issues](https://github.com/WhisperSystems/TextSecure-iOS/issues?state=open) or [Milestones](https://github.com/WhisperSystems/TextSecure-iOS/issues/milestones?state=open). It may help to open an issue or milestone if you plan to make a contribution so we can be sure to clarify questions, give an overview of architectural plans, and ensure we do not overlap work.
## Contributor agreement

Apple requires contributors to iOS projects to relicense their code on submit. We'll have to have individual contributors sign something to enable this.

Our volunteer legal have put together a form you can sign electronically. So no scanning, faxing, or carrier pigeons involved. How modern:
https://whispersystems.org/cla/

Please go ahead and sign, putting your github username in "Address line #2", so that we can accept your pull requests at our heart's delight.

## Code Conventions

We are trying to follow the [GitHub code conventions for Objective-C](https://github.com/github/objective-c-conventions) and we 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`. Booleans should be declared according to their Objective-C definition, and hence take `YES` or `NO` as values.

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](http://stackoverflow.com/questions/324284/throwing-an-exception-in-objective-c-cocoa/324805#324805) so familiarize yourself with **NSError**

###UI conventions
We prefer to use [Storyboards](https://developer.apple.com/library/ios/documentation/general/conceptual/Devpedia-CocoaApp/Storyboard.html) vs. building UI elements within the code itself. We are not at the stage to provide a .strings localizable file for translating, but the goal is to have translatable strings in a single entry point so that we can reach users in their native language wherever possible.

Some tips
- any PR that does not use segues or story board conventions (red flags: ```[self.navigationController pushViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]``` and/or manual creation of UI elements and/or orphaned ViewControllers in the storyboard) will need to be refactored prior to merge
- the following are the storyboarder's best friends:

```- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;```

``` [self performSegueWithIdentifier:<#(NSString *)#> sender:<#(id)#>];```

## Tabs vs Spaces

It's the eternal debate. We chose to adopt spaces. Please set your default Xcode configuration to 4 spaces for tabs, and 4 spaces for indentation (it's Xcode's default setting).

![Tabs vs Spaces](http://cl.ly/TYPZ/Screen%20Shot%202014-01-26%20at%2019.02.28.png)

If you don't agree with us, you can use the [ClangFormat Xcode plugin](https://github.com/travisjeffery/ClangFormat-Xcode) to code with your favorite indentation style!

## PR conventions
If you are thinking about a major change, to speed up the merge talk with the lead developers first. PRs will not be accepted which break the master branch, so make sure to try, in addition to your unit tests, a simple "regression" test: register, send some messages back and forth, view a thread and conversation and make sure every is just as functional as before your PR only more so.

## BitHub

Open Whisper Systems is currently [experimenting](https://whispersystems.org/blog/bithub/) with the funding privacy Free and Open Source software. Payments are opt-in for the `TextSecure-iOS` repo and can be enabled by adding `MONEYMONEY` in a commit message string. For example, this is the current Open WhisperSystems payout per commit, rendered dynamically as an image by the Open WhisperSystems BitHub instance:

[![Bithub Payment Amount](https://bithub.herokuapp.com/v1/status/payment/commit)](https://whispersystems.org/blog/bithub/)

## Contributors

We would like to particularly thank the following contributors:

- Dylan Bourgeois: Substantial UI/UX Improvements
- Christine Corbett: Lead Developer
- Alban Diquet: Substantial contributions to the storage infrastructure
- Frederic Jacobs: Lead Developer
- Claudiu-Vlad Ursache: UI contributions

TextSecure wouldn’t be possible without the many open-source projects we depend on. Big shoutout to the maintainers of all the [pods](https://github.com/WhisperSystems/TextSecure-iOS/blob/master/Podfile) we use!
File renamed without changes
Binary file not shown.
5 changes: 5 additions & 0 deletions Documentation/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Protocol descriptions available
* https://github.com/WhisperSystems/TextSecure/wiki/ProtocolV2
* https://github.com/WhisperSystems/TextSecure-Server/wiki/API-Protocol
* https://www.whispersystems.org/blog/advanced-ratcheting/
* https://github.com/trevp/axolotl/wiki
8 changes: 8 additions & 0 deletions Libraries/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Build scripts

You don't need the build scripts provided in this folder to start contributing thanks to the magic of `Cocoapods`. But for security reasons (App Store builds where verifying integrity of dependencies is important) and debugging reasons, we keep the build scripts of this folder.

## [Curve25519 - Donna implementation](https://github.com/agl/curve25519-donna)

## [OpenSSL Website](http://www.openssl.org)
OpenSSL is currently not used in this project and if it's a dependency we can avoid, that would be better. Because yeah, OpenSSL code ...
1 change: 0 additions & 1 deletion Libraries/RNCryptor
Submodule RNCryptor deleted from af3b9d
48 changes: 48 additions & 0 deletions Libraries/build-libcurve25519.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/sh
# Automatic build script for curve25519-donna for iPhoneOS and iPhoneSimulator
# Created by Christine Corbett Moran 11/30/2013
#
#
###########################################################################
# Change values here #
# #
SDKVERSION="7.0" #
# #
# Probably shouldn't need to change anything under here

CURRENTPATH=`pwd`
CFLAGS="-Wmissing-prototypes -Wdeclaration-after-statement -O2 -Wall"
ARCHS="i386 armv7 armv7s"
DEVELOPER=`xcode-select -print-path`

mkdir -p "${CURRENTPATH}/src"
mkdir -p "${CURRENTPATH}/lib"

cd "${CURRENTPATH}/src/"
git clone https://github.com/agl/curve25519-donna.git
cd "${CURRENTPATH}/src/curve25519-donna/"

for ARCH in ${ARCHS}
do
make clean
if [ "${ARCH}" == "i386" ];
then
PLATFORM="iPhoneSimulator"
else
PLATFORM="iPhoneOS"
fi
export DEVELOPER_PLATFORM="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
export SDK="${PLATFORM}${SDKVERSION}.sdk"
echo "Building curve25519-donna for ${PLATFORM} ${SDKVERSION} ${ARCH}"
export CC="/Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch ${ARCH} -miphoneos-version-min=7.0 -isysroot ${DEVELOPER_PLATFORM}/SDKs/${SDK} ${CFLAGS}"
mkdir -p "${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk"
LOG="${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk/curve25519-donna.log"
$CC -c curve25519-donna.c -m32 curve25519-donna.c >> "${LOG}" 2>&1
ar -rc curve25519-donna.a curve25519-donna.o >> "${LOG}" 2>&1
ranlib curve25519-donna.a >> "${LOG}" 2>&1
mv curve25519-donna.a ${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk/curve25519-donna.a
done

echo "Build library for ${ARCHS}..."
lipo -create ${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}-i386.sdk/curve25519-donna.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/curve25519-donna.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7s.sdk/curve25519-donna.a -output ${CURRENTPATH}/lib/curve25519-donna.a

9 changes: 6 additions & 3 deletions Libraries/build-libssl.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
# Change values here #
# #
VERSION="1.0.1e" #
SDKVERSION="6.1" #
SDKVERSION="7.0" #
# #
###########################################################################
# #
Expand Down Expand Up @@ -57,6 +57,9 @@ DEVELOPER=`xcode-select -print-path`
# mkdir -p "${CURRENTPATH}/lib"
#
# tar zxf openssl-${VERSION}.tar.gz -C "${CURRENTPATH}/src"

mkdir -p "${CURRENTPATH}/lib"

cd "${CURRENTPATH}/src/openssl-${VERSION}"


Expand All @@ -76,11 +79,11 @@ do
echo "Building openssl-${VERSION} for ${PLATFORM} ${SDKVERSION} ${ARCH}"
echo "Please stand by..."

export CC="${CROSS_TOP}/usr/bin/gcc -arch ${ARCH}"
export CC="/Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch ${ARCH} -miphoneos-version-min=7.0"
mkdir -p "${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk"
LOG="${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk/build-openssl-${VERSION}.log"

./Configure iphoneos-cross --openssldir="${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk" > "${LOG}" 2>&1
./Configure iphoneos-cross --openssldir="z > "${LOG}" 2>&1
# add -isysroot to CC=
sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} !" "Makefile"

Expand Down
37 changes: 37 additions & 0 deletions Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
platform :ios, '7.0'

link_with ['TextSecureiOS', 'TextSecureiOS Tests']

pod 'RNCryptor', '~> 2.1'
pod 'FMDB', '~> 2.3'
pod 'HockeySDK', '~> 3.5.5'
pod 'libPhoneNumber-iOS', '~> 0.7.3'
pod 'AFNetworking', '~> 2.3.1'
pod 'SQLCipher', '~> 3.1.0'
pod 'GoogleProtobuf', '~> 2.5.0'
pod 'SWTableViewCell', '~> 0.3.0'
pod 'curve25519-donna', '~> 1.2.1'
pod 'UIImage-Categories', '~> 0.0.1'
pod 'JSMessagesViewController', '~> 3.4.4'
pod 'LBGIFImage', '~> 0.0.1'
pod 'Emoticonizer', '~> 1.0.0'
pod 'InAppSettingsKit', '~> 2.1'
pod 'HKDFKit', '~> 0.0.1'
pod 'RMStepsController', '~> 1.0.1'
pod 'Navajo', '~> 0.0.1'
pod 'SocketRocket', :podspec => "Podspecs/SocketRocket.podspec"

link_with ['TextSecureiOS', 'TextSecureiOS Tests']
post_install do |lib_rep|
lib_rep.project.targets.each do |target|
if target.name == 'Pods-FMDB'
target.build_configurations.each do |config|
if config.build_settings['OTHER_CFLAGS'].nil?
config.build_settings['OTHER_CFLAGS'] = Array.new
end
puts "Added -DSQLITE_HAS_CODEC CFlag to #{target.name} - #{config.name}"
config.build_settings['OTHER_CFLAGS'].unshift('-DSQLITE_HAS_CODEC')
end
end
end
end
14 changes: 14 additions & 0 deletions Podspecs/SocketRocket.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Pod::Spec.new do |s|
s.name = 'SocketRocket'
s.version = '0.3.2'
s.summary = 'A conforming WebSocket (RFC 6455) client library.'
s.homepage = 'https://github.com/square/SocketRocket'
s.authors = 'Square'
s.license = 'Apache License, Version 2.0'
s.source = { :git => 'https://github.com/FredericJacobs/SocketRocket.git', :tag => 'v0.3.2' }
s.source_files = 'SocketRocket/*.{h,m,c}'
s.requires_arc = true
s.ios.frameworks = %w{CFNetwork Security}
s.osx.frameworks = %w{CoreServices Security}
s.libraries = 'icucore'
end
92 changes: 91 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,91 @@
TextSecure for iOS, currently in prototype stage.
# TextSecure for iOS

Currently in early development stage. Please see [Contributing](https://github.com/WhisperSystems/TextSecure-iOS/blob/master/CONTRIBUTING.md) for details how best to contribute.

### This is a working directory. TextSecure will be the instant messaging part of [Signal](https://github.com/WhisperSystems/Signal-iOS)

## Temporary notice

The main Cocoapods repo got corrupted. Please [follow these instructions](http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/) for your next `pod update`

## Building

1) Clone the repo to a working directory

2) [CocoaPods](http://cocoapods.org) 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
```

3) Open the `TextSecureiOS.xcworkspace` in Xcode. **Note that for CocoaPods to work properly it is very important to always open the workspace and not the `.xcodeproj` file.** Build and Run and you are ready to go!

4) 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

### Compile Error when building for 64-bit architecture

Due to an issue in version 2.5.0 of the Google Protobuf Library the compiling fails when building the app for a 64-bit architecture (which is the case for the iPhone 5S)

See the Google-Issue for this: https://code.google.com/p/protobuf/issues/detail?id=575.

__However the specified Workaround in the Google Issue solves the compile errors__

## Certificate Pinning

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.

1) Use OpenSSL to download the certificate (copy-paste the text between the `BEGIN` and `END` into a `cert.pem` file).

```bash
openssl s_client -showcerts -connect textsecure-service.whispersystems.org:443 </dev/null
```
2) Use OpenSSL to convert this PEM certificate into a DER certificate.

```bash
openssl x509 -inform PEM -outform DER -in cert.pem -out cert.der
```

3) Rename and move `cert.der` to `TextSecureiOS/gcm.textsecure.whispersystems.org.cer`

## Documentation


Looking for documentation? Check out the wiki!

https://github.com/WhisperSystems/TextSecure/wiki

## Interoperability
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.

## Cryptography Notice

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.

## License

Copyright 2013 Whisper Systems

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html
Loading