feat(crypto): Support for new UtdCause for historical messages

This commit is contained in:
Valere 2024-12-16 10:58:13 +01:00
parent 740b9c85ca
commit 598e230bd7
5 changed files with 20 additions and 6 deletions

View file

@ -15,10 +15,17 @@ enum class UtdCause {
UnknownDevice,
/**
* Expected utd because this is a device-historical message and
* key storage is not setup or not configured correctly.
* We are missing the keys for this event, but it is a "device-historical" message and
* there is no key storage backup on the server, presumably because the user has turned it off.
*/
HistoricalMessage,
HistoricalMessageAndBackupIsDisabled,
/**
* We are missing the keys for this event, but it is a "device-historical"
* message, and even though a key storage backup does exist, we can't use
* it because our device is unverified.
*/
HistoricalMessageAndDeviceIsUnverified,
/**
* The key was withheld on purpose because your device is insecure and/or the

View file

@ -27,7 +27,9 @@ class UtdTracker(
UtdCause.UNKNOWN_DEVICE -> {
Error.Name.ExpectedSentByInsecureDevice
}
UtdCause.HISTORICAL_MESSAGE -> Error.Name.HistoricalMessage
UtdCause.HISTORICAL_MESSAGE_AND_BACKUP_IS_DISABLED,
UtdCause.HISTORICAL_MESSAGE_AND_DEVICE_IS_UNVERIFIED,
-> Error.Name.HistoricalMessage
UtdCause.WITHHELD_FOR_UNVERIFIED_OR_INSECURE_DEVICE -> Error.Name.RoomKeysWithheldForUnverifiedDevice
UtdCause.WITHHELD_BY_SENDER -> Error.Name.OlmKeysNotSentError
}

View file

@ -145,7 +145,8 @@ private fun RustUtdCause.map(): UtdCause {
RustUtdCause.VERIFICATION_VIOLATION -> UtdCause.VerificationViolation
RustUtdCause.UNSIGNED_DEVICE -> UtdCause.UnsignedDevice
RustUtdCause.UNKNOWN_DEVICE -> UtdCause.UnknownDevice
RustUtdCause.HISTORICAL_MESSAGE -> UtdCause.HistoricalMessage
RustUtdCause.HISTORICAL_MESSAGE_AND_BACKUP_IS_DISABLED -> UtdCause.HistoricalMessageAndBackupIsDisabled
RustUtdCause.HISTORICAL_MESSAGE_AND_DEVICE_IS_UNVERIFIED -> UtdCause.HistoricalMessageAndDeviceIsUnverified
RustUtdCause.WITHHELD_FOR_UNVERIFIED_OR_INSECURE_DEVICE -> UtdCause.WithheldUnverifiedOrInsecureDevice
RustUtdCause.WITHHELD_BY_SENDER -> UtdCause.WithheldBySender
}