Commit Graph

5668 Commits

Author SHA1 Message Date
Jordan Rose
7fc6b2ef7f SSK: propagate untrusted identity errors when ensuring sessions
Regression introduced in "Use SignalClient for message encryption"
2021-01-28 12:03:50 -08:00
Jordan Rose
e595090046 Rename SSKSessionStore.containsSession() to containsActiveSession() 2021-01-28 12:03:50 -08:00
Jordan Rose
c7b6ba7010 Make OWSAccountIdFinder's methods into class methods
OWSAccountIdFinder is no longer used for dependency injection in
SignalMetadataKit, so there's no need to allocate empty NSObjects just
to call the methods.

No functionality change.
2021-01-28 12:03:50 -08:00
Jordan Rose
4a86e60b82 SSKSessionStore: fix containsSession to check for an /active/ session
This is how it's being used: not just that you've /ever/ had a session
with a contact/device, but that you /currently/ have a session with
them.
2021-01-28 12:03:50 -08:00
Jordan Rose
f88e8e0838 SSKSessionStore: Only use AxolotlKit types when talking to the db
This puts up the facade for the future we'll eventually want: the
database contains serialized protobuf data, not AxolotlKit
SessionRecord objects. This also allows us to transparently handle
fetches when the database can contain *either* SessionRecords or
serialized data---we only need to check which we have.
2021-01-28 12:03:50 -08:00
Jordan Rose
05725078f1 SSK: Migrate SSKSessionStore to Swift
This is a no-change migration /except/ that I've dropped entry points
that are unused in the app or tests.
2021-01-28 12:03:50 -08:00
Jordan Rose
77da9dcf16 SSK: Remove -maxSessionSenderChainKeyIndexForAccountId:transaction:
This was the last part of SignalServiceKit that poked inside
AxolotlKit's SessionRecord, and SignalClient doesn't currently expose
the same information. However, it was only being used as a heuristic
for merging phone number and UUID contacts when you already had a
session with each, and this just won't happen anymore except in rare
circumstances. (Specifically, all messages will have UUIDs, so a UUID
contact is always more up to date.)
2021-01-28 12:03:50 -08:00
Jordan Rose
e435532474 SSK: Use SignalClient for session archive operations
For now, this means some extra translation between AxolotlKit and
SignalClient types, but it helps pave the way for lazily migrating the
database to store protobuf-serialized records instead of
NSCoding-archived ones.
2021-01-28 12:03:50 -08:00
Jordan Rose
d75ac75546 SSK: Account for reset sessions in SignalClient/AxolotlKit migration 2021-01-28 12:03:50 -08:00
Jordan Rose
2a8206b7dd SSK: Fix session migration for absent pre-key IDs
Doing this correctly means going "back" to proto2 for SessionRecords,
because we need to distinguish between "0" and "absent" in the
serialized protobuf data. (Note that we can do this independently of
SignalClient properly making this distinction because the proto3
implementation we're using, prost, will omit scalar proto3 fields
whose values match their defaults.)
2021-01-28 12:03:50 -08:00
Jordan Rose
45e888826a SSK: Clean up uses of SignalClient now that EC*Key uses SignalClient 2021-01-28 12:03:50 -08:00
Jordan Rose
2b9aeb300e Transition OWSMessageDecrypter to SignalClient
This is the last bit of code that uses AxolotlKit.SessionCipher!
2021-01-28 12:03:50 -08:00
Jordan Rose
645cefcd47 Accomodate differences in UUID formatting checking cert validity 2021-01-28 12:03:50 -08:00
Jordan Rose
ebaf8c2238 Update for SignalClient.StoreContext 2021-01-28 12:03:50 -08:00
Jordan Rose
1ea62f2f50 SSK: Update for 'throws' removal in SignalClient 2021-01-28 12:03:50 -08:00
Jordan Rose
faccd52d93 SSK: Remove workaround from before Curve25519Kit adopted SignalClient 2021-01-28 12:03:50 -08:00
Jordan Rose
aeb78527ea SSK: Update for removal of SMK{Sender,Server}Certificate 2021-01-28 12:03:50 -08:00
Jordan Rose
4219c597b9 Fix inverted check (== instead of !=) 2021-01-28 12:03:50 -08:00
Jordan Rose
f8c2b764a2 Update for the removal of SMKEnvironment 2021-01-28 12:03:50 -08:00
Jordan Rose
833bff8889 Use SignalClient for message encryption
And update for SMKSecretSessionCipher's adoption of SignalClient as
well.
2021-01-28 12:03:50 -08:00
Jordan Rose
07c20a5f6f Rename the SignalClient test protocol to avoid conflicts 2021-01-28 12:03:50 -08:00
Jordan Rose
77257beacc Implement AxolotlKit<->SignalClient SessionRecord migration
This is accomplished by serializing into and out of the protobuf
format used by SignalClient.
2021-01-28 12:03:50 -08:00
Jordan Rose
1c77cc381c SSK: Use a named constant for provisioning cipher info data 2021-01-28 12:03:49 -08:00
Jordan Rose
afcfff317f SSK: Convert OWSProvisioningCipher to Swift for SignalClient HKDF 2021-01-28 12:03:49 -08:00
Jordan Rose
f7198339ab SSK: Move RemoteAttestation HKDF use to Swift/SignalClient 2021-01-28 12:03:49 -08:00
Jordan Rose
c620707091 SSK: Switch from HKDFKit to SignalClient.hkdf(...) in Swift sources 2021-01-28 12:03:49 -08:00
Jordan Rose
1705f36669 SSK: Add a test for sticker decryption 2021-01-28 12:03:49 -08:00
Matthew Chen
f1b6c93903 Improve "group update info message" copy when joining group via group link. 2021-01-28 11:34:17 -03:00
Matthew Chen
671272d56f Merge branch 'release/5.3.2' 2021-01-27 16:56:19 -03:00
Matthew Chen
6c5167606e Feature flags for .qa. 2021-01-27 16:42:43 -03:00
Matthew Chen
caf7ff266c Feature flags for .production. 2021-01-27 16:42:34 -03:00
Matthew Chen
a727ed9db3 Feature flags for .beta. 2021-01-27 16:42:14 -03:00
Matthew Chen
99034619be Fix rare crash around downloading quoted thumbnails. 2021-01-27 14:19:21 -03:00
Matthew Chen
90df86ba7a Protect oversize text messages from auto-download settings. 2021-01-27 11:35:10 -03:00
Matthew Chen
d2e6058ef6 Fix "empty snippet" issue in conversation list view. 2021-01-27 10:08:49 -03:00
Matthew Chen
57b7461848 Fix "empty snippet" issue in conversation list view. 2021-01-27 09:59:04 -03:00
Matthew Chen
5a1d4488ec Respond to CR. 2021-01-27 09:58:17 -03:00
Matthew Chen
7327002125 Create a new GRDB storage adapter after grdb schema migrations. 2021-01-27 09:45:12 -03:00
Matthew Chen
1be46d20bd Create a new GRDB storage adapter after grdb schema migrations. 2021-01-27 09:45:12 -03:00
Matthew Chen
d82b6f8250 Create a new GRDB storage adapter after grdb schema migrations. 2021-01-27 09:45:12 -03:00
Matthew Chen
584a638993 Create a new GRDB storage adapter after grdb schema migrations. 2021-01-27 09:45:12 -03:00
Jordan Rose
65cbcca821 Ignore message transcripts for null messages
This can happen when your primary device has used a null message to
reset a session and your secondary device gets it via sync.
2021-01-25 17:05:49 -08:00
Nora Trapp
f1f788c05c Feature flags for .qa. 2021-01-25 16:34:45 -08:00
Nora Trapp
aacaa09faa Feature flags for .production. 2021-01-25 16:34:32 -08:00
Matthew Chen
9a17bff403 Use nickname in group short names, part 2. 2021-01-25 15:14:43 -08:00
Matthew Chen
4df4700f63 Use nickname in group short names, part 2. 2021-01-25 15:14:43 -08:00
Matthew Chen
77b2ad834f Use nickname in group short names, part 1. 2021-01-25 15:14:43 -08:00
Matthew Chen
279b5778af Fix crash in OWSURLSession. 2021-01-25 15:12:23 -08:00
Matthew Chen
1902e7656c Fix broken test. 2021-01-25 19:39:40 -03:00
Nora Trapp
05efbd07e5 Feature flags for .qa. 2021-01-23 22:13:58 -08:00