Commit Graph

275 Commits (fc7d118cd5e5443b19be0e66a67dbcda37458dad)

Author SHA1 Message Date
Matthew Chen 67110d0def Migrate to websocket proto wrappers. 7 years ago
Matthew Chen 45e782c243 Revamp orphan data cleaner. 7 years ago
Matthew Chen ab31e5a07f Code generate Swift wrappers for protocol buffers. 7 years ago
Matthew Chen 16e51b8542 Fixup CDS auth properties. 7 years ago
Matthew Chen 4a4edc68e7 Clean up data. 7 years ago
Michael Kirk b860dce7f9 Swift protos for Envelope 7 years ago
Michael Kirk f002f89f2c Update retryable
Per Jeff, don't handle CDS requests yet.
7 years ago
Michael Kirk 558b3bd245 Report contact discovery feedback 7 years ago
Michael Kirk 8c5d6ba9bb Respond to code review. 7 years ago
Michael Kirk b42f528713 Integrate with new contact discovery endpoint
Also:
* use system cookie parsing
* add AESGCM additional authenticated data parameter

// FREEBIE
7 years ago
Matthew Chen bebb8ecfd1 Cycle the socket after linking a new device. 7 years ago
Matthew Chen 75c3b385b2 Respond to CR. 7 years ago
Matthew Chen f2fdb96931 Clean up ahead of PR. 7 years ago
Matthew Chen d7bb2b7505 Remote attestation. 7 years ago
Matthew Chen f3ba6d4c27 Remote attestation. 7 years ago
Michael Kirk b7288b2565 Move contact intersection into batched operation
// FREEBIE
7 years ago
Nancy Mast c2f7c15f72 removed jsq strings, modified MULTIDEVICE_PAIRING_MAX_RECOVERY text and comment 7 years ago
Matthew Chen d14f764b50 Streamline SignalRecipient. 7 years ago
Michael Kirk d591fb7f2c Fix some compiler warnings 7 years ago
Matthew Chen 16a1dcfb77 Respond to CR. 7 years ago
Matthew Chen ac6f78a5fc Tweak message cells. 7 years ago
Michael Kirk e88dc15255 Fix failing assert: only set state on main thread
MessageSender completion queue is not the main queue.

// FREEBIE
7 years ago
Matthew Chen a7d712d1b2 Respond to CR. 7 years ago
Matthew Chen e507256e52 Outage detection. 7 years ago
Matthew Chen c96e2bb8b4 Outage detection. 7 years ago
Matthew Chen 20b1a2606e Outage detection. 7 years ago
Matthew Chen 7f346326f6 Add re-registration UI. 7 years ago
Matthew Chen fc4763673f Improve de-registration checks in socket manager. 7 years ago
Matthew Chen 985f735f1a Track and persist "is de-registered" state. 7 years ago
Matthew Chen d5c738af2f Clean up websocket logging. 7 years ago
Matthew Chen b59140cb3f Revert some of the socket sending logging. 7 years ago
Matthew Chen 3fe63726e0 Improve logging around socket messages. 7 years ago
Matthew Chen e7ca98fcfe Improve logging around socket messages. 7 years ago
Matthew Chen 61ec865b6d Respond to CR. 7 years ago
Matthew Chen 4342b04bd3 Include response data in 'request over websocket' failures. 7 years ago
Matthew Chen 4d498563e7 Unify the socket manager's 'can send requests' logic. 7 years ago
Michael Kirk 966b1ac84b Treat `id` as reserved word, use consistent setter style
// FREEBIE
7 years ago
Matthew Chen d4fe671261 Respond to CR. 7 years ago
Matthew Chen 0a41684374 Respond to CR. 7 years ago
Matthew Chen dc36ae134d Respond to CR. 7 years ago
Matthew Chen 1a441cc40c Respond to CR. 7 years ago
Matthew Chen b50561a5b6 Use websocket for sends. 7 years ago
Matthew Chen 5ff984ab16 Use websocket for sends. 7 years ago
Matthew Chen fa36f2fb10 Use websocket for sends. 7 years ago
Matthew Chen 8a76e778b5 Use websocket for sends. 7 years ago
Matthew Chen 5f1682deab Use websocket for sends. 7 years ago
Matthew Chen 1a3737d5c6 Respond to CR. 7 years ago
Matthew Chen 530983c161 Build & enqueue network requests async. 7 years ago
Matthew Chen c5981b164b Notify users of corrupt messages. 7 years ago
Matthew Chen 5ce39337ed Handle malformed protos. 7 years ago
Michael Kirk c926ca10a5 Update nullability
If object is nil, which it can be, Swift freaks out, since we'd promised
it would never be nil.

// FREEBIE
7 years ago
Michael Kirk 4399967e99 Comment cleanup, remove unnecessary includes
// FREEBIE
7 years ago
Michael Kirk 0b8b3b4f16 WIP: towards avatar attachment streams
// FREEBIE
7 years ago
Michael Kirk 53af41fcc6 Reusable UploadOperation based on extracted OWSOperation
// FREEBIE
7 years ago
Michael Kirk 875321cecc Reflector configuration supports per-country code
Also update reflector hosts/policy

// FREEBIE
7 years ago
Michael Kirk 394cc6637c Backport comments from translations
// FREEBIE
7 years ago
Matthew Chen db430d6aa7 Revert unwanted changes. 7 years ago
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 7 years ago
Matthew Chen 3435be5aba Preserve registration lock when updating account attributes. 7 years ago
Matthew Chen 7fa7f95066 Cleanup ahead of PR. 7 years ago
Matthew Chen 3e6db43b24 Clean up ahead of PR. 7 years ago
Matthew Chen 59c745756a Clean up codebase. 7 years ago
Matthew Chen c2f092018c Elaborate request factory. 7 years ago
Matthew Chen 3acdd84398 Elaborate request factory. 7 years ago
Matthew Chen 004479a2ce Elaborate request factory. 7 years ago
Matthew Chen c17a819366 Elaborate request factory. 7 years ago
Matthew Chen 0ca497846b Elaborate request factory. 7 years ago
Matthew Chen baf6fcc535 Add 2FA registration view. 7 years ago
Matthew Chen caeb97b466 Respond to CR. 7 years ago
Matthew Chen 1f6cbd399e Sketch out 2FA feature. 7 years ago
Matthew Chen 1a0f4bf928 Improve logging around network activity. 7 years ago
Matthew Chen 6f28c75257 Fix glitch in batch processing of incoming messages. 7 years ago
Matthew Chen 81522e4a23 Respond to CR. 7 years ago
Matthew Chen 888bf9256f Avoid deadlocks in message sender. 7 years ago
Matthew Chen a19882baaa Avoid deadlocks in message sender. 7 years ago
Matthew Chen b21f793756 Register all database views asynchronously. 7 years ago
Matthew Chen 0cc7f3e00e Clean up ahead of PR. 7 years ago
Matthew Chen 89c7ebf74b Respond to CR. 7 years ago
Matthew Chen 9ac2383a2c Retain changes from session database branch. 7 years ago
Matthew Chen d52eba739d Clean up TSStorageManager usage. 8 years ago
Matthew Chen 9a990b58e8 Respond to CR. 8 years ago
Matthew Chen a29c4ce5d6 Pull out OWSStorage base class for TSStorageManager. 8 years ago
Matthew Chen f9ce34f553 Improve background task logic. 8 years ago
Matthew Chen 5adf98788d Use background task during message processing. 8 years ago
Michael Kirk a58f1f385c Share a photo from photos app
Shows the conversation picker, and sends the attachment to that
conversation.

There's still a lot TODO

-[ ] resolve JSQ dependency
-[ ] properly wait for app to load
-[ ] dismiss share extension after send is complete
-[ ] support non jpeg file types
-[ ] Fix device sleep manager

// FREEBIE
8 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 8 years ago
Michael Kirk 0dec643b94 update header to match implementation atomicity
// FREEBIE
8 years ago
Michael Kirk 5e7ca89930 Proper function prototypes
// FREEBIE
8 years ago
Matthew Chen e712e8bfc4 Use AppContext to resolve share extension FIXMEs. 8 years ago
Michael Kirk a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
8 years ago
Michael Kirk 7894a58769 FIXME: Changes to get share extension compiling
This was a slash and burn approach, and breaks existing functionality.
We need to address all of these before merging.

// FREEBIE
8 years ago
Matthew Chen 829464baaf Remove concurrency limitations from signal service. 8 years ago
Matthew Chen 6e840ff956 Fix build warnings from XCode 9. 8 years ago
Matthew Chen 2d21e2ae2c Fix build warnings from XCode 9. 8 years ago
Matthew Chen da7338580c Merge tag '2.18.1.0' 8 years ago
Michael Kirk 8ef9e96b91 Avoid group-sync deadlock by making post-upload save async
// FREEBIE
8 years ago
Matthew Chen e07a240ee5 Merge tag '2.18.0.9' 8 years ago
Michael Kirk 81cff837ae Include root certs from pki.goog
// FREEBIE
8 years ago
Michael Kirk 6c13d46be2 use manually specified censorship host
// FREEBIE
8 years ago
Michael Kirk 11e07370a9 more logging
// FREEBIE
8 years ago
Michael Kirk a30533e7b5 Add GTSGIAG3 to censorship circumvention trust store
openssl x509 -outform der -in GIAG3.pem -out GIAG3.crt

// FREEBIE
8 years ago
Michael Kirk 295646e5fa Rebase cleanup
// FREEBIE
8 years ago
Michael Kirk 0706edf42a Generate new registrationId on re-register
In order for others to know they should start a new session with us, we
need to change our registration id.

To achieve this, I consolidated all the Account related attributes on
TSAccountManager - luckily they were already in the proper collection, I
just moved the API to hang on the AccountManager instead of a TSStorage
category extension.

Also:

@synchronize access to `registrationId`

// FREEBIE
8 years ago
Matthew Chen e3868df69a Move write of incoming messages off main thread.
// FREEBIE
8 years ago
Michael Kirk 9a7e3cb9d8 Register for manual message fetching when unable to obtain push tokens
// FREEBIE
8 years ago
Michael Kirk df15c904bc Rework push registration
== Account Registration ==

Not complete until push tokens are uploaded

== Remote Notifications Registration ==

Extracted from PushManager

- wait for notification-settings registration to complete before
  requesting push tokens, otherwise it's possible token requests will
  be ignored.

- Less state required for push notification callbacks, specifically, we
  no longer need to ensure we've created a promise before the
  registration delegate methods get called.

- no more TOCFuture in Signal-iOS (still in SSK for now). It's not in
  cases of inexplicable behavior - one a recently, push notification
  premature free, in redphone, and more popular use, and I've seen two
  futures inexplicably being nil.  Instead, let's consolidate around
  PromiseKit for popularly used, maintained, strongly-typed futures.

- separate logic for registering for vanilla push/voip notifications
  (few dependencies) from responding to UILocalNotifications (lots of
  dependencies). Ultimately I'd like to consolidate the remaining
  UILocalNotifications logic with the existing NotificationsManager

== Misc ==

more debug logging
more uniform logging
remove stale logic around newly registered user

// FREEBIE
8 years ago
Joshua Lund 8ff14a3f6a Enable censorship circumvention in Qatar.
// FREEBIE
8 years ago
Matthew Chen ee13084d5c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 35a2470cb7 Post notifications asynchronously.
// FREEBIE
8 years ago
Matthew Chen b28c4b74b2 Pull out TSMessageDecrypter class.
// FREEBIE
8 years ago
Matthew Chen 183f0f1ccd Respond to CR.
// FREEBIE
8 years ago
Michael Kirk 251e206b6d profiles vs. censorship circumvention
// FREEBIE
8 years ago
Michael Kirk 135243e383 CR: variable rename, better comments, fix up tests
// FREEBIE
8 years ago
Michael Kirk 7499b3aaf0 Avatar API integration / WIP crypto scheme
Crypto Scheme:

- Name (un)padding
- WIP AES-GCM (funtioning, but need to verify against android
  implementation, and tag functionality)

Changes to avatar API:

- hard code avatar domain (cdn.signal.org)
- avatar form hands out new avatar key, invalidating old avatar
- preliminary aes-gcm integration

Also:

- New type to represent AES128 keys, rather than passing around opaque
  data blobs everywhere, we can use the compiler to help us make sure
  we're passing compliant keying material.

- Started using factory pattern for API requests. This is intended to be
  a lighter weight way to implement new API requests, rather than the
  current 1-method class ceremony.

// FREEBIE
8 years ago
Michael Kirk fc3f9ae396 Replace server sent avatar URL with hardcoded
// FREEBIE
8 years ago
Michael Kirk a3ae22c84f Upload profile avatar to service
WIP, this currently lacks crypto pending further discussion.

// FREEBIE
8 years ago
Michael Kirk 45a1f534ba Rename method to make way for new method.
No behavioral changes.

// FREEBIE
8 years ago
Matthew Chen e01fbc247e Refine profile logic.
// FREEBIE
8 years ago
Matthew Chen 823927685d Update profile on service.
// FREEBIE
8 years ago
Michael Kirk 8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
8 years ago
Matthew Chen f1807cd709 Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen f973af5a83 Streamline analytics properties.
// FREEBIE
8 years ago
Michael Kirk 4d8429186d Store undecrypted envelopes before doing any processing.
This lets us clear the server side queue immediately, and paves the way
for retry, give up logic.

// FREEBIE
8 years ago
Matthew Chen 9587aab37b Instrument network errors.
// FREEBIE
8 years ago
Michael Kirk ccb4a88742 Import SSK (and history) into Signal-iOS
git remote add ssk ../SignalServiceKit
git remote update
git merge -s ours --allow-unrelated-histories --no-commit ssk/master
git read-tree --prefix=SignalServiceKit -u ssk/master
git commit
8 years ago