From: AsamK Date: Thu, 23 Dec 2021 17:26:09 +0000 (+0100) Subject: Start preKeyIds with a random number X-Git-Tag: v0.10.1~42 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/88ea61e28fc411319d18270522cfefaa74aeb566 Start preKeyIds with a random number Fixes #842 --- diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java index 52655dfc..67fc2529 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java @@ -61,6 +61,7 @@ import java.nio.channels.Channels; import java.nio.channels.ClosedChannelException; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; +import java.security.SecureRandom; import java.util.Base64; import java.util.Date; import java.util.HashSet; @@ -244,8 +245,8 @@ public class SignalAccount implements Closeable { } private void clearAllPreKeys() { - this.preKeyIdOffset = 0; - this.nextSignedPreKeyId = 0; + this.preKeyIdOffset = new SecureRandom().nextInt(Medium.MAX_VALUE); + this.nextSignedPreKeyId = new SecureRandom().nextInt(Medium.MAX_VALUE); this.preKeyStore.removeAllPreKeys(); this.signedPreKeyStore.removeAllSignedPreKeys(); save(); @@ -1020,6 +1021,7 @@ public class SignalAccount implements Closeable { this.lastReceiveTimestamp = 0; save(); + clearAllPreKeys(); getSessionStore().archiveAllSessions(); senderKeyStore.deleteAll(); final var recipientId = getRecipientStore().resolveRecipientTrusted(getSelfAddress());