Commit Graph

238 Commits (8b0e4f902ea11c5bdc7bf8056acee5692567e2c0)

Author SHA1 Message Date
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
9 years ago
Matthew Chen 3c3f782e7d Clean up prekey usage.
// FREEBIE
9 years ago
Michael Kirk 08425853cf re-use shared call strings
// FREEBIE
9 years ago
Michael Kirk cd36123bf1 rename method to better reflect how its used
// FREEBIE
9 years ago
Michael Kirk 6c14f2f500 Fix "Answer" from iOS9 notification doesn't init audio
The removed code was from an older eon. CallService shouldn't be touched
except via the CallUIAdapter since only there is the omnipresent
distinction between CallKit vs. NonCallKit made.

i.e. when the RTCAudioSession get's started depends on the
CallUIAdaptee.

// FREEBIE
9 years ago
Matthew Chen 98e087a47f Fix font lookup on iOS before 8.2.
// FREEBIE
9 years ago
Michael Kirk 647b2b37e9 WIP: WebRTC calling
* Ensure NotificationsManager has dependencies
    Otherwise it's easy to mess up the order of the required dependencies.
* move AccountManager into Environment, it's heavy to construct

// FREEBIE
9 years ago
Matthew Chen 2dac6c888a Update SignalServiceKit pod.
* Fetch messages when app becomes active.
9 years ago
Michael Kirk a636f0b6af Redphone works on ipv6 only network
// FREEBIE
9 years ago
Michael Kirk ddba843d44 Censorship circumvention in Egypt and UAE
* domain fronting
* non-websocket message fetching

// FREEBIE
9 years ago
Russ Shanahan e7126f8c60 Less confusing "#" avatar for unknown Contact instead of "+"
For consistency with the Android and Desktop client behavior.

* Show a placeholder avatar when no image, initials (#1512)

  If all we know about the user is their phone number, their avatar image
  is rendered as a placeholder. Previously, it would render the first few
  characters of their phone number as if they were initials (eg. "+")

* Rename, extend OWSContactsManager methods (#1512)

  Rename from: nameStringForPhoneIdentifier
           to: displayNameForPhoneIdentifier

  Also, add:
  - (BOOL)nameExistsForPhoneIdentifier:(NSString *)identifier;

  Which reports whether there's any "name" for a contact.

* Remove unused typedefs

  These aren't used in the project anymore, and they were causing
  compiling warnings due to a lack of nullability indication.

* Resolve some OWSContactsManager nullability warnings

  Did a pass through all of the existing nullability warnings in
  OWSContactsManager. Tried to pick descriptors that best reflected the
  behavior of the methods.

// FREEBIE
9 years ago
Michael Kirk 1dd06a5e6c Fix registration flow / Keep push tokens in sync
* Separate registering an account from registering for push notifications
  * Allows us to complete registration without prompting user for
    notification settings.

UX Changes
----------
* Automatically keep push tokens in sync on startup.
  Push tokens *can* change, though they rarely do. It happens more often
  for people switching between appstore/beta builds.

  fixes #1174

* Show alert with registration failure
  * add secret 8-tap debug log gesture to registration flow

* Move registration to separate flow
  * don't see flash of inbox when first launching

* show useful error messages when given wrong code / no code

* remove background fetch
  We werent using it, but only relying on a side effect of it which is
  no longer necessary.

Code Changes
------------

* More registration logging.

* Install PromiseKit with carthage

  Our dependencies are not yet framework compatible, so we can't use
  cocoapods.

* Merge preferences util "category" into superclass.

  The immediate reason for this is Swift interop was assuming optional
  types were not optional, and exploding when a value was nil.

  This is clearer anyway, since we were treating it like a subclass, and
  it was the only thing using the class anyway.

* auto-genstrings now searches *.swift (and *.h, which was previously
  broken) for translateable strings.

// FREEBIE
9 years ago
Michael Kirk 33f6a95520 Explain send failures for text and media messages
fixes #1231

Motivation
----------
Previously when messages failed to send, there was no reason given.
Furthermore, when media messages failed to send there was no indication
that any attempt to send the message even occurred, nor a retry
dialog.

UX Changes
----------
- Show "uploading" status for media
- Show specific error message in retry-send dialog
- Only scroll to bottom when new message is inserted
- Show specific errors when group creation fails

Code Changes
-----------
- Updated incorrect references to TSMessageAdapters which were actually
  references to OWSMessageData
- MessageSender was extracted from SSK MessagesManager
- access MessagesManager as property
- idiomatic init/properties for Env
- log contact intersections
- Move scroll-to-bottom animation to main thread.

// FREEBIE
9 years ago
Michael Kirk 11a586a835 New Fingerprint Format
Rather than verifying eachothers keys separately, you now verify the
privacy with your recipient by sharing a single composite number or
QRCode.

This is a breaking change, in coordination with Desktop and Android.

UX
--

Fingeprint is no longer in line with identity key error. Instead you
have the option of going to the full-screen safety number verification
experience.

Overhauled fingerprint design
-----------------------------

* use same modal dismiss button as elsewhere
* remove fingerprint from settings.
* quick slide in animation vs slow fade
  * existing was painfully slow
  * blur effect is better metaphor for something slide over top
  * anyway there was a rendering glitch in the end of fade where
    underlying navbar would "snap" out

Also Fixed
----------
Always provide a name string for contact

* Centralize all the nil-checking
* Fall back to "unknown contact"

allow multi-line error messages

// FREEBIE
9 years ago
Michael Kirk 7c6e9e07b8 Read receipts remove lockscreen notifications
No need to have a notification for a message you've already read on
desktop.

// FREEBIE
9 years ago
Michael Kirk ef6784ed95 Device Manager
* List linked devices
* Adding a new device
* Removing a device

TODO: design on the QRScanner

// FREEBIE
9 years ago
Michael Kirk 9f2bb5d2cc Fixes lingering interactions after removing thread (#1297)
Most of the work was done in SignalServiceKit 0.0.7, this adapts to
those changes.

Migration to clean any orphaned interactions/attachments.

- don't set new migration version until migration was successful.
- remove dead code from migrations

- rename message.attachments->message.attachmentIds
- Remove unused parameter from GroupModel
- formatting touched method/'s signatures

//FREEBIE
9 years ago
Michael Kirk 1e43e139fd Get back on upstream SocketRocket (#1241)
* Latest SocketRocket includes
  * crash fixes.
  * our new security policy management, so we don't have to
    keep rebasing to incorporate updates.

* Adapt to policy renaming in SignalServiceKit
* bump XCode version to play nice with SWIFT_NAME

// FREEBIE
9 years ago
Michael Kirk 1e0f0157c1 namespace ContactsManager -> OWSContactsManager
rename test class ContactManager->OWSContact_s_Manager
update docs

// FREEBIE
9 years ago
Frederic Jacobs 4034baedb9 Adapting to renaming. 10 years ago
Frederic Jacobs c6d44e59e2 TextSecureKit Refactoring
- Using same clang format file for old and new files.
- Moving out all TextSecure code to allow other clients (OS X, iOS) to
  integrate easily TextSecure functionality.
- Use TextSecure API to signup.
10 years ago
Frederic Jacobs 26f9207cab Bye Bye Bloomfilters
For reasons outlined in
https://whispersystems.org/blog/contact-discovery/ , Signal will no
more use bloom filters for RedPhone contact intersection.
10 years ago
Frederic Jacobs 0fd9acfb2c Phone emoji 10 years ago
Frederic Jacobs e98a6217fe TLS 1.2 on signaling tcp. 10 years ago
Frederic Jacobs bbde7cd2a8 iOS 9 Support
- Fixing size classes rendering bugs.
- Supporting native iOS San Francisco font.
- Quick Reply
- Settings now slide to the left as suggested in original designed
  opposed to modal.
- Simplification of restraints on many screens.
- Full-API compatiblity with iOS 9 and iOS 8 legacy support.
- Customized AddressBook Permission prompt when restrictions are
  enabled. If user installed Signal previously and already approved
  access to Contacts, don't bugg him again.
- Fixes crash in migration for users who installed Signal <2.1.3 but hadn't signed up
  yet.

- Xcode 7 / iOS 9 Travis Support
- Bitcode Support is disabled until it is better understood how exactly
  optimizations are performed. In a first time, we will split out the
  crypto code into a separate binary to make it easier to optimize the
  non-sensitive code. Blog post with more details coming.
- Partial ATS support. We are running our own Certificate Authority at
  Open Whisper Systems. Signal is doing certificate pinning to verify
  that certificates were signed by our own CA. Unfortunately Apple's App
  Transport Security requires to hand over chain verification to their
  framework with no control over the trust store. We have filed a radar
  to get ATS features with pinned certificates. In the meanwhile, ATS is
  disabled on our domain. We also followed Amazon's recommendations for
  our S3 domain we use to upload/download attachments. (#891)
- Implement a unified `AFSecurityOWSPolicy` pinning strategy accross
  libraries (AFNetworking RedPhone/TextSecure & SocketRocket).
10 years ago
Frederic Jacobs f6c0625c2c Removing unused imported classes.
//FREEBIE
10 years ago
Frederic Jacobs e7328bd673 Upgrading cert pinning & flagging release. 10 years ago
Frederic Jacobs 07abcaf7da Register extra keying material at registration. 10 years ago
Frederic Jacobs 57f86008d1 UX and Notifications fixes
- Removes large confusing UX bar and related assets. Replaced with UISwitch.
- Enhanced user experience for missed calls.
- Fixes issue where missed call would appear as incoming call in call log.
- Fixing issues where PushKit handler not called on launch.
11 years ago
Frederic Jacobs bb1a4c1800 Addressing issues with managing socket connections in background. 11 years ago
Frederic Jacobs 0f45294221 Reliability enhancements for notifications. 11 years ago
Frederic Jacobs 1550c61216 Addressing issues with background decryption.
- Simplifying background timeout strategy for reliabilty.
- Adding Notifications settings.
- Dropping support for VOIP Push < 8.2 because buggy.
11 years ago
Frederic Jacobs 13448bdb2d Notifications enhancements.
- Tap to reply to a message.
- Badges application with the number of unread messages.
- Pick up a phone call from lock screen, or decline it.
- Settings for notification sounds while app in foreground and text displayed on local notifications.
11 years ago
Frederic Jacobs abc63eca27 Fixes issues with registration in iOS simulator. 11 years ago
Frederic Jacobs c6cdbea89a Fixes #761 11 years ago
Frederic Jacobs 788aa8cb4f Dropping some required permissions. Smarter microphone permission. 11 years ago
Frederic Jacobs 9872bed428 Addressing some storage related fixes.
- Tested on jailbroken phone that correct files are getting encrypted
- Fixes #557
- Stores image file extension
- Addresses issue with deletion of debug logs
- Preventing user to browse in app if not registered with TS server
11 years ago
Christine Corbett 1ede61f272 Localizing the TextSecure component of Signal. 11 years ago
Frederic Jacobs 5e92fdbbbe Pinning upstream cert. 11 years ago
Frederic Jacobs 5ccbc4131b Closes #315 11 years ago
Christine Corbett 478110dc86 Allows unregistering of RedPhone. 11 years ago
Frederic Jacobs c69ce8ad25 Actions on messages notification for replying. 11 years ago
Frederic Jacobs 8435a800d4 WebSocket Public Key Pinning. 11 years ago
Frederic Jacobs 35a2762c5f Starting background fetching of messages. 11 years ago
Frederic Jacobs 1eff2b3ad5 Rewriting outgoing pipeline with GCD. 11 years ago
Frederic Jacobs b22579d8f8 Settings and thread fixes. 11 years ago
Frederic Jacobs d73e42beff Integrating Message View. 11 years ago
dtsbourg e48ea52924 ContactDetail: Fix crash on parsedPhoneNumbers 11 years ago
Frederic Jacobs 6dd04a49fe Refactoring signup flow, storage, contacts.
- Signal preferences and keying material moved to the unified storage
- Set up for staging environment to try out the new APIs
- Changes in the push registration flow to send token to RP & TS
11 years ago
Frederic Jacobs c3dff810ad Registration refactoring - wip. 11 years ago
Frederic Jacobs 43af8c18e3 Merging UI code with some basic TextSecureKit code. 11 years ago
Ben Sandofsky f65d552f6d Prefix NSArray categories.
Begin process of prefixing categories on Foundation and UIKit. This
follows Cocoa best practices. This makes sense given the number of third
party libraries the project incorporates, which may include their own
colliding category method names.

Use OWS prefix on classes that may be used across apps.
11 years ago
Craig Gidney 867402afa5 Update doc comment in ZrptManager.h // FREEBIE
The note about the role parameter was way out of date.
11 years ago
Frederic Jacobs 5091c53aa3 More advanced fixes for push notifications on iOS7 11 years ago
Frederic Jacobs f8d201fc52 Fixing singleton initialization
//FREEBIE
11 years ago
Frederic Jacobs c572132c95 Fixing iOS 7 push notification issue
#176 will complement this
//FREEBIE
11 years ago
Frederic Jacobs 43ca8b511b Fixing registration issues
Fixes the simulator and client (when permissions disabled) registration
fixes as discussed in #172

//FREEBIE
11 years ago
Frederic Jacobs 953d4d80fd Syntax fixes from #172
//FREEBIE
11 years ago
Frederic Jacobs d05791e699 Moving away from custom HTTP stack 11 years ago
Frederic Jacobs 510831d701 Auto-layout enhancements + Submit Debug Logs 11 years ago
Frederic Jacobs cd0bda7105 iOS 8 Support
- Supporting iOS 8
- Updating translations
- Rewriting PushManager to extensively use futures
- Pick up calls directly from the lock-screen
11 years ago
Frederic Jacobs 8b42036f16 Reverting timestamp RTP field
See discussion in #143
//FREEBIE
11 years ago
Craig Gidney f1de95ab06 Recursively added dot syntax, translating more terms when they were encountered in the dif
FREEBIE
11 years ago
Craig Gidney baaef78323 Using dot syntax for local*, all*, full*, first*, last*, to*, encodedAs*, copy*
FREEBIE
11 years ago
Craig Gidney 97e2285b23 Setting timestamp based on number of samples sent
- Added timeStamp property to EncodedAudioPacket
- Added timeStamp parameter to rtpPackageWithDefaults constructor
- Added nextTimeStamp to AudioPacker with random initial value and sample length increases
- AudioSocket forwards timeStamp
- Added generateSecureRandomUInt32 to CryptoTools
- Updated tests
FREEBIE
11 years ago
Craig Gidney e9f8881bd4 Checking error codes and cleaning up when errors occur in EvpKeyAgreement
- Added a test to actually exercise the DH agreement path
//FREEBIE
11 years ago
Craig Gidney 5401056d31 Checked indentation, future source results, directory layout, thenTry vs then, dependencies 11 years ago
Craig Gidney ced4fc8947 Initial work to depend on external futures library instead of internal implementation
Still need to:
- Fix indentation
- Check for any FutureSource being returned instead of FutureSource.future
- Check for then: vs thenTry: mixups
- Check for main thread related issues
- Check for other exception catching issues
- Adjust directory layout
- Manual end-to-end testing
11 years ago
Craig Gidney 5d31f76f3e Fixed packEcCoordinatesFromEcPoint having variable-sized output, prevent reconstruction of public key 11 years ago
Craig Gidney 4cd30f32ed Using getter syntax for shared*, is*, and has* 11 years ago
Craig Gidney 9e36872644 Using dot syntax for count and length 11 years ago
Craig Gidney 84eb87ac60 Manually refactored cases the refactoring to Modern Objective-C was complaining about
//FREEBIE
11 years ago
Craig Gidney 1e9a3e9a46 Ran "Edit -> Refactor -> Convert to Modern Objective-C Syntax"
- dictionaryWithObject -> @{key: val}
- objectAtIndex -> a[i]
- numberWithBool/Int/etc -> @1, @(val)
- Reverted friendly fire on ProtocolBuffers
- Did not do ANY other changes (including changes to make more refactorings succeed)
//FREEBIE
11 years ago
Frederic Jacobs 50e1b8012b Fixing localization and performance issues
- Cleaning up unused VC xib
- Optimization in Call Server Requests
- Fixing localization issues in Registration flow
- Changing order of labels for the Settings view
//FREEBIE
11 years ago
Frederic Jacobs f5bbf9d480 Enhancements to certificate pinning
//FREEBIE
11 years ago
Frederic Jacobs aca4733ac0 Multiple fixes
- Make logging optional if desired
- HTTPS external URLs
- Clean app data when re-registering
- If registration future fails, bring back user interaction
11 years ago
Frederic Jacobs 9240a095ae Travis CI-support and iOS8 push notifications
//FREEBIE
11 years ago
Frederic Jacobs 5ac7acfbc5 Enhancements in the verification flow
- Certificate Pinning with AFNetworking
- Block syntax for number validation
- Fixes null debug logs
11 years ago
Frederic Jacobs c2d78bba12 Migration scheme 11 years ago
Frederic Jacobs 60fb869baa Closes #80 #37
- Use of new Keychain Access attribute
- Error management (notifying the user) when opening app without
required push and microphone permission
- Enforcing APNID are sent to server, retry later if not able to reach
server
11 years ago
David Caldwell 021468ff45 Fix case of openssl/ includes for case-sensitive build environments. 11 years ago
Frederic Jacobs 44bd921db2 Changes for arm64 and Clang redefined-types 11 years ago
Frederic Jacobs c839f05c17 Cleaning environment prefs 11 years ago
Frederic Jacobs 05fe10612e Advanced network logging 11 years ago
Frederic Jacobs 021da47a99 Bug fixes + Keychain store 11 years ago
Frederic Jacobs 09b6fdea10 Adding more logging to address the initialization issues 11 years ago
Frederic Jacobs a6bf143855 Cleaner Keychain storage 12 years ago
Frederic Jacobs 6373507108 initial commit 12 years ago