]> nmode's Git Repositories - signal-cli/commitdiff
Only allow setting PIN by master device
authorAsamK <asamk@gmx.de>
Mon, 18 Jan 2021 19:29:01 +0000 (20:29 +0100)
committerAsamK <asamk@gmx.de>
Mon, 18 Jan 2021 19:29:01 +0000 (20:29 +0100)
src/main/java/org/asamk/signal/manager/Manager.java
src/main/java/org/asamk/signal/manager/storage/SignalAccount.java

index 3642d6db5995cb77e44d6992ba20bd31efaf476f..b8a0f57b1681419b424168247e56d442ff738375 100644 (file)
@@ -415,6 +415,9 @@ public class Manager implements Closeable {
     }
 
     public void setRegistrationLockPin(Optional<String> pin) throws IOException, UnauthenticatedResponseException {
+        if (!account.isMasterDevice()) {
+            throw new RuntimeException("Only master device can set a PIN");
+        }
         if (pin.isPresent()) {
             final MasterKey masterKey = account.getPinMasterKey() != null
                     ? account.getPinMasterKey()
index a6e243a884878d1f604a8698470caf2a3e34937d..cb6f7461dd0c5234f8498a8e4f5cbc48dcb0349c 100644 (file)
@@ -505,6 +505,10 @@ public class SignalAccount implements Closeable {
         this.deviceId = deviceId;
     }
 
+    public boolean isMasterDevice() {
+        return deviceId == SignalServiceAddress.DEFAULT_DEVICE_ID;
+    }
+
     public String getPassword() {
         return password;
     }