Regard pin set/remove as successful if at least one svr version worked

Fixes #1868
This commit is contained in:
AsamK 2025-11-02 09:31:23 +01:00
parent 552ce6b06d
commit 13e6445498

View File

@ -23,11 +23,15 @@ public class PinHelper {
public void setRegistrationLockPin(String pin, MasterKey masterKey) throws IOException {
IOException exception = null;
var setPinSuccessfully = false;
for (final var secureValueRecovery : secureValueRecoveries) {
try {
final var backupResponse = secureValueRecovery.setPin(pin, masterKey).execute();
switch (backupResponse) {
case SecureValueRecovery.BackupResponse.Success success -> logger.trace("PIN set successfully");
case SecureValueRecovery.BackupResponse.Success success -> {
setPinSuccessfully = true;
logger.trace("PIN set successfully");
}
case SecureValueRecovery.BackupResponse.ServerRejected serverRejected ->
logger.warn("Backup svr failed: ServerRejected");
case SecureValueRecovery.BackupResponse.EnclaveNotFound enclaveNotFound ->
@ -43,7 +47,7 @@ public class PinHelper {
exception = e;
}
}
if (exception != null) {
if (!setPinSuccessfully && exception != null) {
throw exception;
}
}
@ -54,11 +58,13 @@ public class PinHelper {
public void removeRegistrationLockPin() throws IOException {
IOException exception = null;
var removedPinSuccessfully = false;
for (final var secureValueRecovery : secureValueRecoveries) {
try {
final var deleteResponse = secureValueRecovery.deleteData();
switch (deleteResponse) {
case SecureValueRecovery.DeleteResponse.Success success -> {
removedPinSuccessfully = true;
}
case SecureValueRecovery.DeleteResponse.ServerRejected serverRejected ->
logger.warn("Delete svr2 failed: ServerRejected");
@ -73,7 +79,7 @@ public class PinHelper {
exception = e;
}
}
if (exception != null) {
if (!removedPinSuccessfully && exception != null) {
throw exception;
}
}