mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 09:20:19 +01:00
Use libsignal validator to verify backups.
This commit is contained in:
@@ -7,6 +7,7 @@ import org.signal.core.util.isNotNullOrBlank
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.core.util.logging.logW
|
||||
import org.signal.libsignal.protocol.ecc.Curve
|
||||
import org.thoughtcrime.securesms.backup.v2.ArchiveValidator
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupRepository
|
||||
import org.thoughtcrime.securesms.crypto.ProfileKeyUtil
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
@@ -239,6 +240,21 @@ object LinkDeviceRepository {
|
||||
}
|
||||
stopwatch.split("create-backup")
|
||||
|
||||
when (val result = ArchiveValidator.validate(tempBackupFile, ephemeralMessageBackupKey)) {
|
||||
ArchiveValidator.ValidationResult.Success -> {
|
||||
Log.d(TAG, "Successfully passed validation.")
|
||||
}
|
||||
is ArchiveValidator.ValidationResult.ReadError -> {
|
||||
Log.w(TAG, "Failed to read the file during validation!", result.exception)
|
||||
return LinkUploadArchiveResult.BackupCreationFailure(result.exception)
|
||||
}
|
||||
is ArchiveValidator.ValidationResult.ValidationError -> {
|
||||
Log.w(TAG, "The backup file fails validation!", result.exception)
|
||||
return LinkUploadArchiveResult.BackupCreationFailure(result.exception)
|
||||
}
|
||||
}
|
||||
stopwatch.split("validate-backup")
|
||||
|
||||
val uploadForm = when (val result = SignalNetwork.attachments.getAttachmentV4UploadForm()) {
|
||||
is NetworkResult.Success -> result.result
|
||||
is NetworkResult.ApplicationError -> throw result.throwable
|
||||
|
||||
Reference in New Issue
Block a user