Skip to content

Commit e373d15

Browse files
authored
Merge pull request #1444 from matrix-org/andy/4947_shared_history
Store `sharedHistory` flag for inbound Megolm sessions
2 parents 2860ec7 + 5843890 commit e373d15

File tree

29 files changed

+580
-28
lines changed

29 files changed

+580
-28
lines changed

MatrixSDK.xcodeproj/project.pbxproj

Lines changed: 61 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,8 +1434,6 @@
14341434
EC0B941227184E8A00B4D440 /* MXRoomSummaryMO.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0B940927184E8A00B4D440 /* MXRoomSummaryMO.swift */; };
14351435
EC0B941327184E8A00B4D440 /* MXRoomMembersCountMO.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0B940A27184E8A00B4D440 /* MXRoomMembersCountMO.swift */; };
14361436
EC0B941427184E8A00B4D440 /* MXRoomMembersCountMO.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0B940A27184E8A00B4D440 /* MXRoomMembersCountMO.swift */; };
1437-
EC0B941527184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = EC0B940B27184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld */; };
1438-
EC0B941627184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = EC0B940B27184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld */; };
14391437
EC0B9418271855CA00B4D440 /* MXCoreDataRoomSummaryStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0B9417271855C900B4D440 /* MXCoreDataRoomSummaryStore.swift */; };
14401438
EC0B9419271855CA00B4D440 /* MXCoreDataRoomSummaryStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0B9417271855C900B4D440 /* MXCoreDataRoomSummaryStore.swift */; };
14411439
EC0B941B2718654B00B4D440 /* NSManagedObject+MatrixSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0B941A2718654B00B4D440 /* NSManagedObject+MatrixSDK.swift */; };
@@ -1763,6 +1761,14 @@
17631761
ECF29BDF264195320053E6D6 /* MXAssertedIdentityModel.h in Headers */ = {isa = PBXBuildFile; fileRef = ECF29BDD264195320053E6D6 /* MXAssertedIdentityModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
17641762
ECF29BE52641953C0053E6D6 /* MXAssertedIdentityModel.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF29BE42641953C0053E6D6 /* MXAssertedIdentityModel.m */; };
17651763
ECF29BE62641953C0053E6D6 /* MXAssertedIdentityModel.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF29BE42641953C0053E6D6 /* MXAssertedIdentityModel.m */; };
1764+
ED21F68528104DA2002FF83D /* MXMegolmEncryptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED21F68428104DA2002FF83D /* MXMegolmEncryptionTests.swift */; };
1765+
ED21F68628104DA2002FF83D /* MXMegolmEncryptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED21F68428104DA2002FF83D /* MXMegolmEncryptionTests.swift */; };
1766+
ED35652C281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED35652B281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift */; };
1767+
ED35652D281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED35652B281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift */; };
1768+
ED35652F281153480002BF6A /* MXMegolmSessionDataUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED35652E281153480002BF6A /* MXMegolmSessionDataUnitTests.swift */; };
1769+
ED356530281153480002BF6A /* MXMegolmSessionDataUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED35652E281153480002BF6A /* MXMegolmSessionDataUnitTests.swift */; };
1770+
ED5AE8C52816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = ED5AE8C22816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld */; };
1771+
ED5AE8C62816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = ED5AE8C22816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld */; };
17661772
ED88999127F2065D00718486 /* MXRoomAliasResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = ED88998F27F2065C00718486 /* MXRoomAliasResolution.h */; settings = {ATTRIBUTES = (Public, ); }; };
17671773
ED88999227F2065D00718486 /* MXRoomAliasResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = ED88998F27F2065C00718486 /* MXRoomAliasResolution.h */; settings = {ATTRIBUTES = (Public, ); }; };
17681774
ED88999327F2065D00718486 /* MXRoomAliasResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = ED88999027F2065D00718486 /* MXRoomAliasResolution.m */; };
@@ -2578,7 +2584,6 @@
25782584
EC0B940827184E8A00B4D440 /* MXUsersTrustLevelSummaryMO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MXUsersTrustLevelSummaryMO.swift; sourceTree = "<group>"; };
25792585
EC0B940927184E8A00B4D440 /* MXRoomSummaryMO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MXRoomSummaryMO.swift; sourceTree = "<group>"; };
25802586
EC0B940A27184E8A00B4D440 /* MXRoomMembersCountMO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MXRoomMembersCountMO.swift; sourceTree = "<group>"; };
2581-
EC0B940C27184E8A00B4D440 /* MXRoomSummaryCoreDataStore.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MXRoomSummaryCoreDataStore.xcdatamodel; sourceTree = "<group>"; };
25822587
EC0B9417271855C900B4D440 /* MXCoreDataRoomSummaryStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MXCoreDataRoomSummaryStore.swift; sourceTree = "<group>"; };
25832588
EC0B941A2718654B00B4D440 /* NSManagedObject+MatrixSDK.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSManagedObject+MatrixSDK.swift"; sourceTree = "<group>"; };
25842589
EC0B941D27186C3500B4D440 /* MXRoomListDataSortable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MXRoomListDataSortable.swift; sourceTree = "<group>"; };
@@ -2759,7 +2764,12 @@
27592764
ECF29BD2264194BB0053E6D6 /* MXCallAssertedIdentityEventContent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXCallAssertedIdentityEventContent.m; sourceTree = "<group>"; };
27602765
ECF29BDD264195320053E6D6 /* MXAssertedIdentityModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXAssertedIdentityModel.h; sourceTree = "<group>"; };
27612766
ECF29BE42641953C0053E6D6 /* MXAssertedIdentityModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXAssertedIdentityModel.m; sourceTree = "<group>"; };
2767+
ED21F68428104DA2002FF83D /* MXMegolmEncryptionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MXMegolmEncryptionTests.swift; sourceTree = "<group>"; };
27622768
ED2F344856EFFCA383E37B22 /* Pods-SDK-MatrixSDK.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDK-MatrixSDK.release.xcconfig"; path = "Target Support Files/Pods-SDK-MatrixSDK/Pods-SDK-MatrixSDK.release.xcconfig"; sourceTree = "<group>"; };
2769+
ED35652B281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MXOlmInboundGroupSessionUnitTests.swift; sourceTree = "<group>"; };
2770+
ED35652E281153480002BF6A /* MXMegolmSessionDataUnitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MXMegolmSessionDataUnitTests.swift; sourceTree = "<group>"; };
2771+
ED5AE8C32816C8CF00105072 /* MXRoomSummaryCoreDataStore2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MXRoomSummaryCoreDataStore2.xcdatamodel; sourceTree = "<group>"; };
2772+
ED5AE8C42816C8CF00105072 /* MXRoomSummaryCoreDataStore.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MXRoomSummaryCoreDataStore.xcdatamodel; sourceTree = "<group>"; };
27632773
ED88998F27F2065C00718486 /* MXRoomAliasResolution.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXRoomAliasResolution.h; sourceTree = "<group>"; };
27642774
ED88999027F2065D00718486 /* MXRoomAliasResolution.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXRoomAliasResolution.m; sourceTree = "<group>"; };
27652775
ED8943D327E34762000FC39C /* MXMemoryRoomStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MXMemoryRoomStoreTests.swift; sourceTree = "<group>"; };
@@ -3879,6 +3889,7 @@
38793889
32C6F93919DD814400EA4E9C /* MatrixSDKTests */ = {
38803890
isa = PBXGroup;
38813891
children = (
3892+
ED21F67A28104B9A002FF83D /* Crypto */,
38823893
EDB4209727DF841A0036AF39 /* JSONModels */,
38833894
EDB4208E27DF76C60036AF39 /* Data */,
38843895
322985C526FA66FD001890BC /* Utils */,
@@ -4480,7 +4491,7 @@
44804491
isa = PBXGroup;
44814492
children = (
44824493
EC0B9417271855C900B4D440 /* MXCoreDataRoomSummaryStore.swift */,
4483-
EC0B940B27184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld */,
4494+
ED5AE8C22816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld */,
44844495
EC0B941A2718654B00B4D440 /* NSManagedObject+MatrixSDK.swift */,
44854496
EC0B940627184E8A00B4D440 /* Models */,
44864497
);
@@ -4859,6 +4870,40 @@
48594870
path = Common;
48604871
sourceTree = "<group>";
48614872
};
4873+
ED21F67A28104B9A002FF83D /* Crypto */ = {
4874+
isa = PBXGroup;
4875+
children = (
4876+
ED35652A281150230002BF6A /* Data */,
4877+
ED21F67B28104BA1002FF83D /* Algorithms */,
4878+
);
4879+
path = Crypto;
4880+
sourceTree = "<group>";
4881+
};
4882+
ED21F67B28104BA1002FF83D /* Algorithms */ = {
4883+
isa = PBXGroup;
4884+
children = (
4885+
ED21F67C28104BA7002FF83D /* Megolm */,
4886+
);
4887+
path = Algorithms;
4888+
sourceTree = "<group>";
4889+
};
4890+
ED21F67C28104BA7002FF83D /* Megolm */ = {
4891+
isa = PBXGroup;
4892+
children = (
4893+
ED21F68428104DA2002FF83D /* MXMegolmEncryptionTests.swift */,
4894+
);
4895+
path = Megolm;
4896+
sourceTree = "<group>";
4897+
};
4898+
ED35652A281150230002BF6A /* Data */ = {
4899+
isa = PBXGroup;
4900+
children = (
4901+
ED35652B281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift */,
4902+
ED35652E281153480002BF6A /* MXMegolmSessionDataUnitTests.swift */,
4903+
);
4904+
path = Data;
4905+
sourceTree = "<group>";
4906+
};
48624907
ED8943D127E3474A000FC39C /* Store */ = {
48634908
isa = PBXGroup;
48644909
children = (
@@ -6160,7 +6205,6 @@
61606205
EC1848C52685F64D00865E16 /* MXiOSAudioOutputRoute.swift in Sources */,
61616206
EC60EE08265CFFF400B39A4E /* MXGroupSyncProfile.m in Sources */,
61626207
B19A30A0240424BD00FB6F35 /* MXQRCodeTransaction.m in Sources */,
6163-
EC0B941527184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */,
61646208
C63E78B01F26588000AC692F /* MXRoomPowerLevels.swift in Sources */,
61656209
EC0B943F271DB68F00B4D440 /* MXVoidRoomSummaryStore.m in Sources */,
61666210
EC383BA5253DE6C9002FBBE6 /* MXSyncResponseStore.swift in Sources */,
@@ -6307,6 +6351,7 @@
63076351
EC1848C72686174E00865E16 /* MXiOSAudioOutputRouteType.swift in Sources */,
63086352
3220093919EFA4C9008DE41D /* MXEventListener.m in Sources */,
63096353
EC5C562A27A36EDB0014CBE9 /* MXInReplyTo.m in Sources */,
6354+
ED5AE8C52816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */,
63106355
C6481AF21F1678A9000DB8A0 /* MXSessionEventListener.swift in Sources */,
63116356
32A1514F1DAF897600400192 /* MXOlmSessionResult.m in Sources */,
63126357
ECF29BD3264194BB0053E6D6 /* MXCallAssertedIdentityEventContent.m in Sources */,
@@ -6381,6 +6426,7 @@
63816426
32832B5E1BCC048300241108 /* MXStoreNoStoreTests.m in Sources */,
63826427
A816247C25F60C7700A46F05 /* MXDeviceListOperationsPoolUnitTests.swift in Sources */,
63836428
B1660F1C260A20B900C3AA12 /* MXSpaceServiceTest.swift in Sources */,
6429+
ED35652C281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift in Sources */,
63846430
32C9B71823E81A1C00C6F30A /* MXCrossSigningVerificationTests.m in Sources */,
63856431
323C5A081A70E53500FB0549 /* MXToolsUnitTests.m in Sources */,
63866432
3281E89E19E299C000976E1A /* MXErrorUnitTests.m in Sources */,
@@ -6439,10 +6485,12 @@
64396485
32D8CAC219DEE6ED002AF8A0 /* MXRestClientNoAuthAPITests.m in Sources */,
64406486
32FCAB4D19E578860049C555 /* MXRestClientTests.m in Sources */,
64416487
32C78BA7256D227D008130B1 /* MXCryptoMigrationTests.m in Sources */,
6488+
ED21F68528104DA2002FF83D /* MXMegolmEncryptionTests.swift in Sources */,
64426489
322985CB26FAF898001890BC /* MXSession.swift in Sources */,
64436490
EC131B192779D8D500712964 /* MXThreadEventTimelineUnitTests.swift in Sources */,
64446491
B135067427EB201E00BD3276 /* MXLocationServiceTests.swift in Sources */,
64456492
18C26C4F273C0EB300805154 /* MXPollAggregatorTests.swift in Sources */,
6493+
ED35652F281153480002BF6A /* MXMegolmSessionDataUnitTests.swift in Sources */,
64466494
32EEA83F2603CA140041425B /* MXRestClientExtensionsTests.m in Sources */,
64476495
18121F7A273E6E4200B68ADF /* PollBuilder.swift in Sources */,
64486496
18121F7F273E837300B68ADF /* PollModels.swift in Sources */,
@@ -6699,7 +6747,6 @@
66996747
B14EF23D2397E90400758AF0 /* MXCallManager.m in Sources */,
67006748
B14EF23E2397E90400758AF0 /* MXPeekingRoom.m in Sources */,
67016749
B14EF23F2397E90400758AF0 /* MXEncryptedContentFile.m in Sources */,
6702-
EC0B941627184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */,
67036750
EC8A539625B1BC77004E0802 /* MXUserModel.m in Sources */,
67046751
EC0B9440271DB68F00B4D440 /* MXVoidRoomSummaryStore.m in Sources */,
67056752
B14EF2402397E90400758AF0 /* MXSessionEventListener.m in Sources */,
@@ -6847,6 +6894,7 @@
68476894
ECCA02BF27348FE300B6F34F /* MXThread.swift in Sources */,
68486895
320B3937239FA56900BE2C06 /* MXKeyVerificationByDMRequest.m in Sources */,
68496896
B14EF2832397E90400758AF0 /* MXRoomCreateContent.m in Sources */,
6897+
ED5AE8C62816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld in Sources */,
68506898
EC5C562B27A36EDB0014CBE9 /* MXInReplyTo.m in Sources */,
68516899
EC8A53B025B1BC77004E0802 /* MXCallAnswerEventContent.m in Sources */,
68526900
EC60ED7E265CFCD100B39A4E /* MXDeviceListResponse.m in Sources */,
@@ -6921,6 +6969,7 @@
69216969
32C9B71923E81A1C00C6F30A /* MXCrossSigningVerificationTests.m in Sources */,
69226970
B1E09A1D2397FCE90057C069 /* MXCryptoKeyVerificationTests.m in Sources */,
69236971
B1E09A472397FD990057C069 /* MXEventScanStoreUnitTests.m in Sources */,
6972+
ED35652D281150310002BF6A /* MXOlmInboundGroupSessionUnitTests.swift in Sources */,
69246973
B1E09A3D2397FD820057C069 /* MXStoreFileStoreTests.m in Sources */,
69256974
32CEEF3E23AD134A0039BA98 /* MXCrossSigningTests.m in Sources */,
69266975
32EEA8402603CA140041425B /* MXRestClientExtensionsTests.m in Sources */,
@@ -6979,10 +7028,12 @@
69797028
32B477902638133D00EA5800 /* MXAggregatedReferenceUnitTests.m in Sources */,
69807029
EC116598270FCA8B0089FA56 /* MXBackgroundTaskUnitTests.swift in Sources */,
69817030
B1E09A322397FD750057C069 /* MXRoomTests.m in Sources */,
7031+
ED21F68628104DA2002FF83D /* MXMegolmEncryptionTests.swift in Sources */,
69827032
322985CC26FAF898001890BC /* MXSession.swift in Sources */,
69837033
EC131B1A2779D8D500712964 /* MXThreadEventTimelineUnitTests.swift in Sources */,
69847034
B135067527EB201E00BD3276 /* MXLocationServiceTests.swift in Sources */,
69857035
18C26C50273C0EB400805154 /* MXPollAggregatorTests.swift in Sources */,
7036+
ED356530281153480002BF6A /* MXMegolmSessionDataUnitTests.swift in Sources */,
69867037
32C78BA8256D227D008130B1 /* MXCryptoMigrationTests.m in Sources */,
69877038
18121F7B273E6E4200B68ADF /* PollBuilder.swift in Sources */,
69887039
18121F80273E837400B68ADF /* PollModels.swift in Sources */,
@@ -7415,12 +7466,13 @@
74157466
/* End XCConfigurationList section */
74167467

74177468
/* Begin XCVersionGroup section */
7418-
EC0B940B27184E8A00B4D440 /* MXCoreDataRoomSummaryStore.xcdatamodeld */ = {
7469+
ED5AE8C22816C8CF00105072 /* MXCoreDataRoomSummaryStore.xcdatamodeld */ = {
74197470
isa = XCVersionGroup;
74207471
children = (
7421-
EC0B940C27184E8A00B4D440 /* MXRoomSummaryCoreDataStore.xcdatamodel */,
7472+
ED5AE8C32816C8CF00105072 /* MXRoomSummaryCoreDataStore2.xcdatamodel */,
7473+
ED5AE8C42816C8CF00105072 /* MXRoomSummaryCoreDataStore.xcdatamodel */,
74227474
);
7423-
currentVersion = EC0B940C27184E8A00B4D440 /* MXRoomSummaryCoreDataStore.xcdatamodel */;
7475+
currentVersion = ED5AE8C32816C8CF00105072 /* MXRoomSummaryCoreDataStore2.xcdatamodel */;
74247476
path = MXCoreDataRoomSummaryStore.xcdatamodeld;
74257477
sourceTree = "<group>";
74267478
versionGroupType = wrapper.xcdatamodel;

MatrixSDK/Background/MXBackgroundSyncService.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,14 @@ public enum MXBackgroundSyncServiceError: Error {
585585
senderKey: senderKey,
586586
forwardingCurve25519KeyChain: forwardingKeyChain,
587587
keysClaimed: keysClaimed,
588-
exportFormat: exportFormat)
588+
exportFormat: exportFormat,
589+
sharedHistory: isRoomSharingHistory(roomId: roomId))
590+
}
591+
592+
private func isRoomSharingHistory(roomId: String) -> Bool {
593+
let summary = roomSummary(forRoomId: roomId)
594+
let visibility = MXRoomHistoryVisibility(identifier: summary?.historyVisibility)
595+
return visibility == .worldReadable || visibility == .shared
589596
}
590597

591598
private func updateBackgroundServiceStoresIfNeeded() {

MatrixSDK/Crypto/Algorithms/Megolm/MXMegolmDecryption.m

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,15 @@ - (void)onRoomKeyEvent:(MXEvent *)event
254254

255255
MXLogDebug(@"[MXMegolmDecryption] onRoomKeyEvent: Adding key for megolm session %@|%@ from %@ event", senderKey, sessionId, event.type);
256256

257-
[olmDevice addInboundGroupSession:sessionId sessionKey:sessionKey roomId:roomId senderKey:senderKey forwardingCurve25519KeyChain:forwardingKeyChain keysClaimed:keysClaimed exportFormat:exportFormat];
257+
BOOL sharedHistory = [crypto isRoomSharingHistory:roomId];
258+
[olmDevice addInboundGroupSession:sessionId
259+
sessionKey:sessionKey
260+
roomId:roomId
261+
senderKey:senderKey
262+
forwardingCurve25519KeyChain:forwardingKeyChain
263+
keysClaimed:keysClaimed
264+
exportFormat:exportFormat
265+
sharedHistory:sharedHistory];
258266

259267
[crypto.backup maybeSendKeyBackup];
260268

0 commit comments

Comments
 (0)