From 4b77a9ab60e7979f04bfded4c1725dec3c56ef3d Mon Sep 17 00:00:00 2001 From: ameba23 Date: Wed, 21 Apr 2021 21:53:06 +0200 Subject: [PATCH] Use backup with highest version number --- .../recovery/RestoreAccountImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/briar-core/src/main/java/org/briarproject/briar/socialbackup/recovery/RestoreAccountImpl.java b/briar-core/src/main/java/org/briarproject/briar/socialbackup/recovery/RestoreAccountImpl.java index b6a918649..9c6db68de 100644 --- a/briar-core/src/main/java/org/briarproject/briar/socialbackup/recovery/RestoreAccountImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/socialbackup/recovery/RestoreAccountImpl.java @@ -60,11 +60,17 @@ public class RestoreAccountImpl implements RestoreAccount { public int recover() throws FormatException, GeneralSecurityException { if (secretKey == null) throw new GeneralSecurityException(); - // TODO find backup with highest version number - BackupPayload backupPayload = recoveredShards.get(0).getBackupPayload(); - socialBackup = backupPayloadDecoder.decodeBackupPayload(secretKey, backupPayload); - int version = socialBackup.getVersion(); - return version; + // Find backup with highest version number + int highestVersion = 0; + for (ReturnShardPayload returnShardPayload : recoveredShards) { + BackupPayload backupPayload = returnShardPayload.getBackupPayload(); + SocialBackup s = backupPayloadDecoder.decodeBackupPayload(secretKey, backupPayload); + if (s.getVersion() > highestVersion) { + socialBackup = s; + highestVersion = s.getVersion(); + } + } + return highestVersion; } public SocialBackup getSocialBackup() {