Commit Graph

70 Commits

Author SHA1 Message Date
kate-signal
33a8457599
Megaphone for inactive primary devices 2025-07-16 13:10:05 -07:00
Max Radermacher
da3fc4df92
Don’t send empty sync messages 2025-04-22 11:58:31 -05:00
Max Radermacher
1a452633f7
Use DeviceId when parsing getDevices response 2025-04-21 15:47:06 -05:00
Pete Walters
ac9d3e9afe
Fix tests for xcode 16.3 2025-04-08 12:50:42 -05:00
Pete Walters
b82d49478d
Refactor device provisioning 2025-03-31 11:24:51 -05:00
Max Radermacher
279a11f742
Add DeviceId type 2025-03-21 16:49:38 -05:00
Sasha Weiss
bb048e8b59
One transaction type to rule them all and in the darkness bind them 2025-03-13 21:43:35 -07:00
Pete Walters
1b7caa8ce9
Split out various key managment methods into AccountKeyStore 2025-02-24 10:12:47 -06:00
Pete Walters
ecc084de55
Remove AEP & MasterKey protocols 2025-02-24 09:42:03 -06:00
Pete Walters
e9863fcb4d
Bulk of AEP registration changes. 2025-02-24 09:04:55 -06:00
Pete Walters
dc6e869fab
Add non-registration AEP changes 2025-02-24 08:53:06 -06:00
Pete Walters
fe00738f67
Consolidate MBRK/BackupKey/AEP/MasterKey management into one place. 2025-02-24 07:41:40 -06:00
Pete Walters
1bfd579dd3
Asyncify device linking
Co-authored-by: Max Radermacher <max@signal.org>
2025-02-14 13:04:50 -06:00
Elaine
83ba76de31
Show megaphone for new linked devices when notifications are disabled 2025-02-07 11:32:36 -07:00
Ehren Kret
0a5677997e
remove NSDate OWS objc category 2025-02-05 11:06:42 -06:00
Harry
71f8b829ba
Allow for restarting the provisioning flow (link'n'sync retry button) 2025-01-08 18:42:45 -08:00
Harry
81d37086d1
Unlink iPads on server when deleting all device data 2024-12-16 12:31:32 -08:00
Elaine
63a72d4697
Allow linked device names to be edited 2024-12-06 15:33:32 -07:00
Sasha Weiss
e47a864a1a
Protocolize and asyncify OWSDevicesService 2024-12-06 12:39:05 -08:00
Sasha Weiss
2000b82c0b
One KeyValueStore to rule them all 2024-11-15 18:47:54 -06:00
Max Radermacher
788e87f15b
Decode a bunch of JSON constants 2024-10-28 21:34:41 -05:00
Harry
01fbce844f
Generate, persist, and read/write MediaRootBackupKey aka MrBurgerKing 2024-10-28 10:28:27 -07:00
Harry
6cb911ae93
Add tokenIdentifier to device provisioning code response 2024-10-25 14:34:33 -07:00
Harry
1f03f0e52d
Add link'n'sync ephemeralBackupKey provisioning proto 2024-10-25 14:33:45 -07:00
Max Radermacher
b902790b93
Add & use global.messageQueueTime remote config 2024-10-18 15:07:10 -05:00
Harry
ce5689dcb3
Remove MockDB in favor of InMemoryDB 2024-10-07 19:06:08 -07:00
Harry
ba2f10732e
Parametrize transaction type in DB v2 protocol 2024-10-04 16:12:52 -07:00
Ehren Kret
8db47c5f62 inline Cryptography.generateRandomBytes 2024-08-01 15:33:26 -05:00
Max Radermacher
dc910cfa7f
Remove OWSDeviceManager cache 2024-06-27 14:06:46 -05:00
Max Radermacher
c748618219
Adjust property that tracks unknown devices 2024-06-26 12:51:23 -05:00
Harry
bb083ca39c
Fold SignalCoreKit into SignalServiceKit
Co-authored-by: Adam Sharp <sharplet@signal.org>
2024-06-26 08:44:41 -07:00
Sasha Weiss
4b97d0bb16
Ensure we've refreshed at least once before finding inactive devices 2024-04-25 11:10:39 -07:00
Sasha Weiss
c26ad8a4e5
Add an "inactive linked device" megaphone 2024-04-24 11:28:33 -07:00
Harry
188e6e9faa
Read optional master key from provisioning message 2023-11-07 14:26:15 -08:00
Max Radermacher
d52082abbe
Prefer IdentityKey over typeless Data objects 2023-11-07 11:37:02 -06:00
Harry
d01be5e3f7
Add master key field to provisioning proto 2023-11-06 21:35:06 -08:00
Max Radermacher
600eef4bec
Replace Curve25519Kit with LibSignal 2023-10-31 14:18:22 -05:00
Max Radermacher
0233059f44
Add DB-conforming InMemoryDB type 2023-10-31 00:54:32 -05:00
Max Radermacher
710f4c0831
[ServiceId] Update everything that's left 2023-08-24 19:18:33 -05:00
Max Radermacher
c6ad290e45
[ServiceId] Update some local identifiers 2023-08-17 12:10:06 -05:00
Harry
c5d92b039d
Atomic device linking 2023-08-10 15:21:35 -07:00
Evan Hahn
b178b1f3d5 Swiftify OWSProvisioningCipherTest 2023-04-21 18:19:51 -07:00
Max Radermacher
94a9c8cd65 Improve the performance of some tests 2023-04-17 14:14:57 -07:00
Sasha Weiss
f1063c1071
Migrate OWSDevice to SDSCodableModel 2023-04-13 14:00:46 -07:00
Max Radermacher
90769ea381
Swiftify OWSDeviceProvisioner 2023-02-13 12:12:16 -08:00
Evan Hahn
370ff654e7
Change license to AGPL
Change license to AGPL

This commit:

- Updates the `LICENSE` file

- Start every file with something like:

      // Copyright YEAR_FIRST_PUBLISHED Signal Messenger, LLC
      // SPDX-License-Identifier: AGPL-3.0-only

---

First, I removed existing license headers with this Ruby 3.1.2 script:

    require 'set'

    EXTENSIONS_TO_CHECK = Set['.h', '.hpp', '.cpp', '.m', '.mm', '.pch', '.swift']

    same = 0
    different = 0

    all_files = `git ls-files`.lines.map { |line| line.strip }
    all_files.each do |relative_path|
      if relative_path == 'Pods'
        next
      end

      unless EXTENSIONS_TO_CHECK.include? File.extname(relative_path)
        next
      end

      path = File.expand_path(relative_path)

      contents = File.read(path)
      new_contents = contents.sub(/\/\/\n\/\/  Copyright .*\n\/\/\n\n/, '')

      if contents == new_contents
        same += 1
      else
        different += 1
      end

      File.write(path, new_contents)
    end

    puts "updated #{different} file(s), left #{same} untouched"

I'm sure this script could be improved, but it worked well enough.

Then, I created `Scripts/lint/lint-license-headers` and ran it to auto-
fix a lot of files. This changed the mode of some files, but I think
that's actually desirable. For example,
`SignalServiceKit/src/Util/AppContext.m` previously had a mode of
`0755/-rwxr-xr-x`, and it's now `0644/-rw-r--r--`.

Then I fixed some stragglers and updated the precommit script.

See [a similar change in the Desktop app][0].

[0]: 8bfaf598af
2022-10-13 08:25:37 -05:00
Evan Hahn
f997e5c7a4 Remove some tests that were never run
I added these tests in da322d3bf9, but we
decided that they're not worth it.

Also, it seems I forgot to add them to the project! So they were never
run anyway, outside of the times I ran them while developing.
2022-08-25 11:14:43 -05:00
Evan Hahn
da322d3bf9 Add "urgent" boolean to outgoing messages
To improve message reliability, we're adding an urgency flag to outgoing
messages. For example, outgoing calls are urgent, but delivery receipts
are not. [Android][] and [Desktop][] have already done this work.

At a high level, I added an `isUrgent` property to `TSOutgoingMessage`s.
It defaults to `true`. Some subclasses, like
`OWSReceiptsForSenderMessage`, override it to return `false`.

Builds off of a few other commits (not necessary to understand this
commit, but might be useful for posterity):

- e858a0d916
- 8c6d2ebe8c
- 402b117221
- 2ba0cd764d
- 266a4663e9
- 8e5009bbf7

[Android]: dc04c8ed98
[Desktop]: 06190b1434
2022-08-18 07:35:41 -05:00
Nora Trapp
05313c3725 Update to LibSignalClient v0.15.0 2022-03-24 11:55:45 -07:00
Jordan Rose
1c252fd6f6 Add PNI-related fields to the ProvisioningMessage proto
This allows linked devices to receive the PNI identity key as part of
provisioning.
2022-03-18 13:03:55 -07:00