]> nmode's Git Repositories - signal-cli/commitdiff
Fix update from old versions without PNI
authorAsamK <asamk@gmx.de>
Fri, 7 Oct 2022 10:04:22 +0000 (12:04 +0200)
committerAsamK <asamk@gmx.de>
Fri, 7 Oct 2022 10:04:22 +0000 (12:04 +0200)
Fixes #1032

lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java
lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java

index ce45dd2c2dea69e231d18b0d17f5fd72f5a665da..0b19a69153d33eaf9e3bb2b6bf5d294a1fb4e691 100644 (file)
@@ -9,6 +9,7 @@ import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException;
 import org.asamk.signal.manager.api.PinLockedException;
 import org.asamk.signal.manager.config.ServiceConfig;
 import org.asamk.signal.manager.storage.SignalAccount;
+import org.asamk.signal.manager.util.KeyUtils;
 import org.asamk.signal.manager.util.NumberVerificationUtils;
 import org.signal.libsignal.protocol.InvalidKeyException;
 import org.slf4j.Logger;
@@ -99,6 +100,9 @@ public class AccountHelper {
         account.setNumber(number);
         account.setAci(aci);
         account.setPni(pni);
+        if (account.isPrimaryDevice() && account.getPniIdentityKeyPair() == null && account.getPni() != null) {
+            account.setPniIdentityKeyPair(KeyUtils.generateIdentityKeyPair());
+        }
         account.getRecipientTrustedResolver().resolveSelfRecipientTrusted(account.getSelfRecipientAddress());
         // TODO check and update remote storage
         context.getUnidentifiedAccessHelper().rotateSenderCertificates();
index 279f6ee84c1e0360e558ebd881da17a5fddf2795..ff75b22bbea7d8837cfb94dc80cd209e14261610 100644 (file)
@@ -402,7 +402,7 @@ public class SignalAccount implements Closeable {
             // Old config file, creating new profile key
             setProfileKey(KeyUtils.createProfileKey());
         }
-        if (isPrimaryDevice() && getPniIdentityKeyPair() == null) {
+        if (isPrimaryDevice() && getPniIdentityKeyPair() == null && getPni() != null) {
             setPniIdentityKeyPair(KeyUtils.generateIdentityKeyPair());
         }
     }