Commit Graph

234 Commits (036c6dca41cd34e459a947522d7e54e96047f917)

Author SHA1 Message Date
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