mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Set trust requirement even if setEncryption is false. (#4823)
* fix: Set trust requirement even if `setEncryption` is `false`. - Calls `builder.decryptionSettings` with sender trust requirement, even if `setEncryption` is false`. - Fixes https://github.com/element-hq/element-x-ios/issues/4702 * docs: Add doc comment explaining necessity of fix. * feat: Set `roomKeyRecipientStrategy` alongside trust requirement.
This commit is contained in:
@@ -43,16 +43,19 @@ extension ClientBuilder {
|
|||||||
.backupDownloadStrategy(backupDownloadStrategy: .afterDecryptionFailure)
|
.backupDownloadStrategy(backupDownloadStrategy: .afterDecryptionFailure)
|
||||||
.enableShareHistoryOnInvite(enableShareHistoryOnInvite: enableKeyShareOnInvite)
|
.enableShareHistoryOnInvite(enableShareHistoryOnInvite: enableKeyShareOnInvite)
|
||||||
.autoEnableBackups(autoEnableBackups: true)
|
.autoEnableBackups(autoEnableBackups: true)
|
||||||
|
}
|
||||||
if enableOnlySignedDeviceIsolationMode {
|
|
||||||
builder = builder
|
// Set recipient strategy and trust requirement even if `setupEncryption` is false to ensure messages
|
||||||
.roomKeyRecipientStrategy(strategy: .identityBasedStrategy)
|
// from insecure devices aren't displayed in push notifications.
|
||||||
.decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .crossSignedOrLegacy))
|
// See https://github.com/element-hq/element-x-ios/issues/4702.
|
||||||
} else {
|
if enableOnlySignedDeviceIsolationMode {
|
||||||
builder = builder
|
builder = builder
|
||||||
.roomKeyRecipientStrategy(strategy: .errorOnVerifiedUserProblem)
|
.roomKeyRecipientStrategy(strategy: .identityBasedStrategy)
|
||||||
.decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .untrusted))
|
.decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .crossSignedOrLegacy))
|
||||||
}
|
} else {
|
||||||
|
builder = builder
|
||||||
|
.roomKeyRecipientStrategy(strategy: .errorOnVerifiedUserProblem)
|
||||||
|
.decryptionSettings(decryptionSettings: .init(senderDeviceTrustRequirement: .untrusted))
|
||||||
}
|
}
|
||||||
|
|
||||||
if let httpProxy {
|
if let httpProxy {
|
||||||
|
|||||||
Reference in New Issue
Block a user