From: AsamK Date: Wed, 9 Aug 2023 17:38:29 +0000 (+0200) Subject: Add missing handling for SecureValueRecovery.RestoreResponse.Missing response X-Git-Tag: v0.12.0~13 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/376a1704df25bfb4e1a60fa6f2a966f778e0a525 Add missing handling for SecureValueRecovery.RestoreResponse.Missing response --- diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java index 2c56092e..dcd89f20 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java @@ -108,7 +108,10 @@ public class PinHelper { ) throws IOException, IncorrectPinException { var svr1Credentials = e.getSvr1Credentials(); if (svr1Credentials != null) { - return getRegistrationLockData(secureValueRecoveryV1, svr1Credentials, pin); + final var registrationLockData = getRegistrationLockData(secureValueRecoveryV1, svr1Credentials, pin); + if (registrationLockData != null) { + return registrationLockData; + } } var svr2Credentials = e.getSvr2Credentials(); @@ -132,8 +135,11 @@ public class PinHelper { throw new IOException(error.getException()); } else if (restoreResponse instanceof SecureValueRecovery.RestoreResponse.NetworkError error) { throw error.getException(); + } else if (restoreResponse instanceof SecureValueRecovery.RestoreResponse.Missing) { + logger.debug("No SVR data stored for the given credentials."); + return null; } else { - throw new AssertionError("Unexpected response"); + throw new AssertionError("Unexpected response: " + restoreResponse.getClass().getSimpleName()); } } }