diff --git a/service/src/main/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigration.java b/service/src/main/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigration.java index dc877799..6e24336c 100644 --- a/service/src/main/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigration.java +++ b/service/src/main/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigration.java @@ -33,7 +33,7 @@ public void migrate(Context context) { cryptoManager.setSecrets(context, secrets); secrets.destroy(); - } catch (EncryptionFailedException e) { + } catch (EncryptionFailedException | IllegalArgumentException e) { throw new AppMigrationException("Failed to migrate key", e); } } diff --git a/service/src/test/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigrationTest.java b/service/src/test/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigrationTest.java index 9515f367..9b0016f9 100644 --- a/service/src/test/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigrationTest.java +++ b/service/src/test/java/app/notesr/service/migration/changes/security/crypto/CbcToGcmKeyMigrationTest.java @@ -5,6 +5,15 @@ package app.notesr.service.migration.changes.security.crypto; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.content.Context; import app.notesr.core.security.exception.EncryptionFailedException; import app.notesr.service.migration.AppMigrationException; @@ -17,8 +26,6 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) class CbcToGcmKeyMigrationTest { @@ -65,4 +72,17 @@ void testMigrateWhenEncryptionFailsThrowsAppMigrationException() assertEquals("Failed to migrate key", exception.getMessage()); } + + @Test + void testMigrateWhenSecretsValidationFailsThrowsAppMigrationException() + throws EncryptionFailedException { + doThrow(new IllegalArgumentException()).when(cryptoManager).setSecrets(any(), any()); + + AppMigrationException exception = assertThrows( + AppMigrationException.class, + () -> migration.migrate(context) + ); + + assertEquals("Failed to migrate key", exception.getMessage()); + } }