diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/domain/preferences/DataStoreTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/domain/preferences/DataStoreTest.kt index 881e7897..e3278e27 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/domain/preferences/DataStoreTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/domain/preferences/DataStoreTest.kt @@ -25,6 +25,7 @@ import android.content.Context import android.content.SharedPreferences import androidx.preference.PreferenceManager import androidx.test.platform.app.InstrumentationRegistry +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.preferences.EncryptedPreferences import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.domain.model.methods.SigningMethod @@ -36,7 +37,6 @@ import ee.ria.DigiDoc.libdigidoclib.init.Initialization import ee.ria.DigiDoc.libdigidoclib.init.LibdigidocLibraryLoader import ee.ria.DigiDoc.network.proxy.ProxySetting import ee.ria.DigiDoc.network.siva.SivaSetting -import ee.ria.DigiDoc.utils.Constant.Defaults.DEFAULT_UUID_VALUE import kotlinx.coroutines.runBlocking import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse @@ -383,14 +383,14 @@ class DataStoreTest { fun dataStore_setCdocSetting_success() { dataStore.setCdocSetting(CDOCSetting.CDOC2) - val result = dataStore.getCdocSetting() + val result = dataStore.getCdocSetting(false) assertEquals(CDOCSetting.CDOC2, result) } @Test fun dataStore_getCdocSetting_success() { - val result = dataStore.getCdocSetting() + val result = dataStore.getCdocSetting(false) assertEquals(CDOCSetting.CDOC1, result) } diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/utils/ConstantTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/utils/ConstantTest.kt index 80f54a3b..51f3211d 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/utils/ConstantTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/utils/ConstantTest.kt @@ -31,11 +31,6 @@ class ConstantTest { assertEquals("en", Constant.Languages.ENGLISH_LANGUAGE) } - @Test - fun constantTest_Defaults_success() { - assertEquals("00000000-0000-0000-0000-000000000000", Constant.Defaults.DEFAULT_UUID_VALUE) - } - @Test fun constantTest_Routes_success() { assertEquals("init_route", Constant.Routes.INIT_SCREEN) diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt index 3de14900..0f3e45c6 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt @@ -31,6 +31,7 @@ import androidx.lifecycle.MutableLiveData import androidx.test.platform.app.InstrumentationRegistry import com.google.gson.Gson import ee.ria.DigiDoc.R +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.ConfigurationProperty import ee.ria.DigiDoc.configuration.ConfigurationSignatureVerifierImpl import ee.ria.DigiDoc.configuration.loader.ConfigurationLoader @@ -47,7 +48,6 @@ import ee.ria.DigiDoc.libdigidoclib.init.Initialization import ee.ria.DigiDoc.libdigidoclib.init.LibdigidocLibraryLoader import ee.ria.DigiDoc.network.proxy.ManualProxy import ee.ria.DigiDoc.network.proxy.ProxySetting -import ee.ria.DigiDoc.utils.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.utilsLib.file.FileUtil import junit.framework.TestCase.assertEquals import junit.framework.TestCase.assertTrue @@ -113,15 +113,16 @@ class DiagnosticsViewModelTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) private lateinit var proxySetting: ProxySetting @@ -289,7 +290,7 @@ class DiagnosticsViewModelTest { val diagnosticsFileName = "ria_digidoc_${viewModel.getAppVersion()}.${viewModel.getAppVersionCode()}_diagnostics.log" val diagnosticsFilePath: String = File(context.filesDir.path, "diagnostics").path - val resultFile = viewModel.createDiagnosticsFile(context) + val resultFile = viewModel.createDiagnosticsFile(context, configurationProvider) assertEquals(File(diagnosticsFilePath, diagnosticsFileName).path, resultFile.path) assertTrue(resultFile.exists()) @@ -375,7 +376,7 @@ class DiagnosticsViewModelTest { dataStore.setCdocSetting(CDOCSetting.CDOC2) viewModel.updatedConfiguration = MutableLiveData(configurationProvider) - val isCdoc2Selected = viewModel.isCdoc2Selected() + val isCdoc2Selected = viewModel.isCdoc2Selected(configurationProvider) assertTrue(isCdoc2Selected) } @@ -385,7 +386,7 @@ class DiagnosticsViewModelTest { dataStore.setCdocSetting(CDOCSetting.CDOC1) viewModel.updatedConfiguration = MutableLiveData(configurationProvider) - val isCdoc2Selected = viewModel.isCdoc2Selected() + val isCdoc2Selected = viewModel.isCdoc2Selected(configurationProvider) assertFalse(isCdoc2Selected) } @@ -396,7 +397,7 @@ class DiagnosticsViewModelTest { dataStore.setUseOnlineEncryption(true) viewModel.updatedConfiguration = MutableLiveData(configurationProvider) - val isCdoc2KeyServerUsed = viewModel.isCdoc2KeyServerUsed() + val isCdoc2KeyServerUsed = viewModel.isCdoc2KeyServerUsed(configurationProvider) assertTrue(isCdoc2KeyServerUsed) } @@ -407,7 +408,7 @@ class DiagnosticsViewModelTest { dataStore.setUseOnlineEncryption(false) viewModel.updatedConfiguration = MutableLiveData(configurationProvider) - val isCdoc2KeyServerUsed = viewModel.isCdoc2KeyServerUsed() + val isCdoc2KeyServerUsed = viewModel.isCdoc2KeyServerUsed(configurationProvider) assertFalse(isCdoc2KeyServerUsed) } @@ -418,11 +419,12 @@ class DiagnosticsViewModelTest { dataStore.setCDOC2UUID(DEFAULT_UUID_VALUE) viewModel.updatedConfiguration = MutableLiveData(configurationProvider) - val cdoc2KeyServerUUID = viewModel.getCdoc2KeyServerUUID() + val cdoc2KeyServerUUID = viewModel.getCdoc2KeyServerUUID(configurationProvider) assertEquals(DEFAULT_UUID_VALUE, cdoc2KeyServerUUID) } + @Suppress("SameParameterValue") private fun createTempFileWithStringContent( filename: String, content: String, diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/MobileIdViewModelTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/MobileIdViewModelTest.kt index f95337df..fc93e4b4 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/MobileIdViewModelTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/MobileIdViewModelTest.kt @@ -31,6 +31,7 @@ import androidx.test.core.app.ActivityScenario import androidx.test.platform.app.InstrumentationRegistry import com.google.gson.Gson import ee.ria.DigiDoc.R +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.testfiles.asset.AssetFile import ee.ria.DigiDoc.configuration.ConfigurationProperty import ee.ria.DigiDoc.configuration.ConfigurationSignatureVerifierImpl @@ -134,15 +135,16 @@ class MobileIdViewModelTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) companion object { diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/SmartIdViewModelTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/SmartIdViewModelTest.kt index 6746396e..671aaed8 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/SmartIdViewModelTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/SmartIdViewModelTest.kt @@ -31,6 +31,7 @@ import androidx.test.core.app.ActivityScenario import androidx.test.platform.app.InstrumentationRegistry import com.google.gson.Gson import ee.ria.DigiDoc.R +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.testfiles.asset.AssetFile import ee.ria.DigiDoc.configuration.ConfigurationProperty import ee.ria.DigiDoc.configuration.ConfigurationSignatureVerifierImpl @@ -141,15 +142,16 @@ class SmartIdViewModelTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) companion object { diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModelTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModelTest.kt index 987195d2..0d9dd31f 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModelTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModelTest.kt @@ -29,6 +29,7 @@ import androidx.documentfile.provider.DocumentFile import androidx.test.platform.app.InstrumentationRegistry import com.google.gson.Gson import ee.ria.DigiDoc.common.Constant.DIR_TSA_CERT +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.testfiles.asset.AssetFile import ee.ria.DigiDoc.configuration.ConfigurationProperty import ee.ria.DigiDoc.configuration.ConfigurationSignatureVerifierImpl @@ -46,7 +47,6 @@ import ee.ria.DigiDoc.manager.ActivityManager import ee.ria.DigiDoc.network.proxy.ManualProxy import ee.ria.DigiDoc.network.proxy.ProxySetting import ee.ria.DigiDoc.network.siva.SivaSetting -import ee.ria.DigiDoc.utils.Constant import kotlinx.coroutines.runBlocking import org.apache.commons.io.FileUtils import org.junit.Assert.assertEquals @@ -158,7 +158,7 @@ class SharedSettingsViewModelTest { viewModel.resetToDefaultSettings() // resetSigningSettings - assertEquals(Constant.Defaults.DEFAULT_UUID_VALUE, dataStore.getSettingsUUID()) + assertEquals(DEFAULT_UUID_VALUE, dataStore.getSettingsUUID()) assertEquals("", dataStore.getSettingsTSAUrl()) assertFalse(dataStore.getSettingsAskRoleAndAddress()) assertFalse(dataStore.getIsTsaCertificateViewVisible()) diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/domain/preferences/DataStore.kt b/app/src/main/kotlin/ee/ria/DigiDoc/domain/preferences/DataStore.kt index 480b2a3b..6365668a 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/domain/preferences/DataStore.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/domain/preferences/DataStore.kt @@ -28,6 +28,7 @@ import androidx.core.content.edit import androidx.preference.PreferenceManager import ee.ria.DigiDoc.R import ee.ria.DigiDoc.common.Constant.Crypto.DECRYPT_METHOD_SETTING +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.Constant.IS_CRASH_SENDING_ALWAYS_ENABLED import ee.ria.DigiDoc.common.Constant.KEY_LOCALE import ee.ria.DigiDoc.common.Constant.MyEID.IDENTIFICATION_METHOD_SETTING @@ -43,7 +44,6 @@ import ee.ria.DigiDoc.domain.model.theme.ThemeSetting import ee.ria.DigiDoc.network.proxy.ManualProxy import ee.ria.DigiDoc.network.proxy.ProxySetting import ee.ria.DigiDoc.network.siva.SivaSetting -import ee.ria.DigiDoc.utils.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.utils.snackbar.SnackBarManager.showMessage import ee.ria.DigiDoc.utilsLib.locale.LocaleUtil.getLocale import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil.Companion.debugLog @@ -341,10 +341,10 @@ class DataStore } } - fun getUseEncryption(): Boolean = + fun getUseEncryption(defaultValue: Boolean): Boolean = preferences.getBoolean( resources.getString(ee.ria.DigiDoc.cryptolib.R.string.crypto_settings_use_cdoc2_encryption), - false, + defaultValue, ) fun setUseEncryption(useEncryption: Boolean) { @@ -436,8 +436,8 @@ class DataStore } } - fun getCdocSetting(): CDOCSetting { - if (getUseEncryption()) { + fun getCdocSetting(defaultValue: Boolean): CDOCSetting { + if (getUseEncryption(defaultValue)) { return CDOCSetting.CDOC2 } return CDOCSetting.CDOC1 diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt index 30be9316..738c260a 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt @@ -256,7 +256,7 @@ fun DiagnosticsScreen( onClickItem = { try { val diagnosticsFile = - diagnosticsViewModel.createDiagnosticsFile(context) + diagnosticsViewModel.createDiagnosticsFile(context, currentConfiguration) actionFile = diagnosticsFile val saveIntent = Intent.createChooser( @@ -518,7 +518,7 @@ fun DiagnosticsScreen( testTagsAsResourceId = true }.testTag("mainDiagnosticsCdoc2Default"), stringResource(id = R.string.main_diagnostics_cdoc2_default_title), - diagnosticsViewModel.isCdoc2Selected().toString(), + diagnosticsViewModel.isCdoc2Selected(currentConfiguration).toString(), ) DiagnosticsText( modifier = @@ -527,7 +527,7 @@ fun DiagnosticsScreen( testTagsAsResourceId = true }.testTag("mainDiagnosticsCdoc2UseKeyserver"), stringResource(id = R.string.main_diagnostics_cdoc2_use_keyserver_title), - diagnosticsViewModel.isCdoc2KeyServerUsed().toString(), + diagnosticsViewModel.isCdoc2KeyServerUsed(currentConfiguration).toString(), ) DiagnosticsText( modifier = @@ -536,7 +536,7 @@ fun DiagnosticsScreen( testTagsAsResourceId = true }.testTag("mainDiagnosticsCdoc2DefaultKeyserver"), stringResource(id = R.string.main_diagnostics_cdoc2_default_keyserver_title), - diagnosticsViewModel.getCdoc2KeyServerUUID(), + diagnosticsViewModel.getCdoc2KeyServerUUID(currentConfiguration), ) HorizontalDivider( modifier = diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/EncryptionServicesSettingsScreen.kt b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/EncryptionServicesSettingsScreen.kt index 90d6f26c..80a411ff 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/EncryptionServicesSettingsScreen.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/EncryptionServicesSettingsScreen.kt @@ -73,11 +73,9 @@ import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.testTag @@ -91,10 +89,10 @@ import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.TextFieldValue -import androidx.compose.ui.unit.toSize import androidx.lifecycle.asFlow import androidx.navigation.NavHostController import ee.ria.DigiDoc.R +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider.CDOC2Conf import ee.ria.DigiDoc.domain.model.settings.CDOCSetting import ee.ria.DigiDoc.ui.component.menu.SettingsMenuBottomSheet @@ -109,7 +107,6 @@ import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding import ee.ria.DigiDoc.ui.theme.Dimensions.XSBorder import ee.ria.DigiDoc.ui.theme.Dimensions.XSPadding import ee.ria.DigiDoc.ui.theme.buttonRoundedCornerShape -import ee.ria.DigiDoc.utils.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.utils.Route import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.isTalkBackEnabled import ee.ria.DigiDoc.utils.extensions.notAccessible @@ -167,12 +164,13 @@ fun EncryptionServicesSettingsScreen( val getCDOC2PostURL = sharedSettingsViewModel.dataStore::getCDOC2PostURL val setCDOC2PostURL = sharedSettingsViewModel.dataStore::setCDOC2PostURL + val cdoc2Default = configuration?.cdoc2Default ?: false val cdoc2UseKeyServerDefault = configuration?.cdoc2UseKeyServer == true val cdoc2DefaultKeyServer = configuration?.cdoc2DefaultKeyServer ?: DEFAULT_UUID_VALUE val useKeyTransfer = rememberSaveable { mutableStateOf(getUseOnlineEncryption(cdoc2UseKeyServerDefault)) } val useDefaultKeyTransferServer = rememberSaveable { mutableStateOf(true) } - val settingsCdocServiceChoice = remember { mutableStateOf(getCdocSetting().name) } + val settingsCdocServiceChoice = remember { mutableStateOf(getCdocSetting(cdoc2Default)) } val cdoc2Conf = configuration?.cdoc2Conf ?: emptyMap() @@ -217,15 +215,10 @@ fun EncryptionServicesSettingsScreen( index++ } nameChoices.add(manualKeyTransferText) - val customDefaultCDOC2UUID = "00000000-0000-0000-0000-000000000002" + val customDefaultCDOC2UUID = "00000000-0000-0000-0000-00000000000" + (index + 1).toString() val customDefaultCDOC2FetchUrl = "https://cdoc2-keyserver-get" val customDefaultCDOC2PostUrl = "https://cdoc2-keyserver-post" - if (getCDOC2UUID(customDefaultCDOC2UUID) != cdoc2DefaultKeyServer) { - settingsCdocNameChoiceInt.intValue = index - useDefaultKeyTransferServer.value = false - } - var uuidText by rememberSaveable(stateSaver = textFieldValueSaver) { mutableStateOf( TextFieldValue( @@ -269,6 +262,8 @@ fun EncryptionServicesSettingsScreen( } val saveParameters = { + setCdocSetting(settingsCdocServiceChoice.value) + setUseOnlineEncryption(useKeyTransfer.value) var valueCDOC2UUID = customDefaultCDOC2UUID var valueCDOC2FetchUrl = customDefaultCDOC2FetchUrl var valueCDOC2PostUrl = customDefaultCDOC2PostUrl @@ -277,6 +272,7 @@ fun EncryptionServicesSettingsScreen( if (value.name == nameChoices[settingsCdocNameChoiceInt.intValue]) { settingsCdocNameChoice.value = value.name settingsCDOC2SelectedService.value = key + useDefaultKeyTransferServer.value = true valueCDOC2UUID = key valueCDOC2FetchUrl = value.fetch valueCDOC2PostUrl = value.post @@ -290,32 +286,17 @@ fun EncryptionServicesSettingsScreen( uuidText = TextFieldValue( - text = - if (nameChoices[settingsCdocNameChoiceInt.intValue] == manualKeyTransferText) { - getCDOC2UUID(customDefaultCDOC2UUID) - } else { - settingsCDOC2UUID.value - }, + text = valueCDOC2UUID, selection = TextRange.Zero, ) fetchUrlText = TextFieldValue( - text = - if (nameChoices[settingsCdocNameChoiceInt.intValue] == manualKeyTransferText) { - getCDOC2FetchURL(customDefaultCDOC2FetchUrl) - } else { - settingsCDOC2FetchURL.value - }, + text = valueCDOC2FetchUrl, selection = TextRange.Zero, ) postUrlText = TextFieldValue( - text = - if (nameChoices[settingsCdocNameChoiceInt.intValue] == manualKeyTransferText) { - getCDOC2PostURL(customDefaultCDOC2PostUrl) - } else { - settingsCDOC2PostURL.value - }, + text = valueCDOC2PostUrl, selection = TextRange.Zero, ) } @@ -358,7 +339,6 @@ fun EncryptionServicesSettingsScreen( val buttonName = stringResource(id = R.string.button_name) var openOptionChooserDialog by remember { mutableStateOf(false) } - var textFieldSize by remember { mutableStateOf(Size.Zero) } val interactionSource = remember { MutableInteractionSource() } val nameFocusRequester = remember { FocusRequester() } val uuidFocusRequester = remember { FocusRequester() } @@ -392,6 +372,7 @@ fun EncryptionServicesSettingsScreen( sharedMenuViewModel = sharedMenuViewModel, title = R.string.main_settings_crypto_services_title, onLeftButtonClick = { + saveParameters() navController.navigateUp() }, onRightSecondaryButtonClick = { @@ -433,8 +414,8 @@ fun EncryptionServicesSettingsScreen( .fillMaxWidth() .padding(SPadding) .clickable { - settingsCdocServiceChoice.value = CDOCSetting.CDOC1.name - setCdocSetting(CDOCSetting.CDOC1) + settingsCdocServiceChoice.value = CDOCSetting.CDOC1 + setCdocSetting(settingsCdocServiceChoice.value) }, verticalAlignment = Alignment.CenterVertically, ) { @@ -451,9 +432,9 @@ fun EncryptionServicesSettingsScreen( .semantics { contentDescription = useCDOC1Label }, - selected = settingsCdocServiceChoice.value == CDOCSetting.CDOC1.name, + selected = settingsCdocServiceChoice.value == CDOCSetting.CDOC1, onClick = { - settingsCdocServiceChoice.value = CDOCSetting.CDOC1.name + settingsCdocServiceChoice.value = CDOCSetting.CDOC1 setCdocSetting(CDOCSetting.CDOC1) }, ) @@ -484,8 +465,8 @@ fun EncryptionServicesSettingsScreen( modifier = modifier .clickable { - settingsCdocServiceChoice.value = CDOCSetting.CDOC2.name - setCdocSetting(CDOCSetting.CDOC2) + settingsCdocServiceChoice.value = CDOCSetting.CDOC2 + setCdocSetting(settingsCdocServiceChoice.value) }, verticalAlignment = Alignment.CenterVertically, ) { @@ -503,15 +484,15 @@ fun EncryptionServicesSettingsScreen( .semantics { contentDescription = useCDOC2Label }, - selected = settingsCdocServiceChoice.value == CDOCSetting.CDOC2.name, + selected = settingsCdocServiceChoice.value == CDOCSetting.CDOC2, onClick = { - settingsCdocServiceChoice.value = CDOCSetting.CDOC2.name - setCdocSetting(CDOCSetting.CDOC2) + settingsCdocServiceChoice.value = CDOCSetting.CDOC2 + setCdocSetting(settingsCdocServiceChoice.value) }, ) } - if (settingsCdocServiceChoice.value == CDOCSetting.CDOC2.name) { + if (settingsCdocServiceChoice.value == CDOCSetting.CDOC2) { Spacer(modifier = modifier.height(LPadding)) SettingsSwitchItem( @@ -519,7 +500,6 @@ fun EncryptionServicesSettingsScreen( checked = useKeyTransfer.value, onCheckedChange = { useKeyTransfer.value = it - setUseOnlineEncryption(it) saveParameters() }, title = keyTransferText, @@ -547,10 +527,7 @@ fun EncryptionServicesSettingsScreen( modifier = modifier .fillMaxWidth() - .focusRequester(nameFocusRequester) - .onGloballyPositioned { coordinates -> - textFieldSize = coordinates.size.toSize() - }, + .focusRequester(nameFocusRequester), trailingIcon = { Icon( imageVector = @@ -634,7 +611,7 @@ fun EncryptionServicesSettingsScreen( ) { OutlinedTextField( enabled = - settingsCdocServiceChoice.value == CDOCSetting.CDOC2.name && + settingsCdocServiceChoice.value == CDOCSetting.CDOC2 && useKeyTransfer.value && !useDefaultKeyTransferServer.value, value = uuidText, @@ -714,7 +691,7 @@ fun EncryptionServicesSettingsScreen( ) { OutlinedTextField( enabled = - settingsCdocServiceChoice.value == CDOCSetting.CDOC2.name && + settingsCdocServiceChoice.value == CDOCSetting.CDOC2 && useKeyTransfer.value && !useDefaultKeyTransferServer.value, value = fetchUrlText, @@ -795,7 +772,7 @@ fun EncryptionServicesSettingsScreen( ) { OutlinedTextField( enabled = - settingsCdocServiceChoice.value == CDOCSetting.CDOC2.name && + settingsCdocServiceChoice.value == CDOCSetting.CDOC2 && useKeyTransfer.value && !useDefaultKeyTransferServer.value, value = postUrlText, @@ -863,7 +840,7 @@ fun EncryptionServicesSettingsScreen( } } } - if (settingsCdocServiceChoice.value == CDOCSetting.CDOC2.name && + if (settingsCdocServiceChoice.value == CDOCSetting.CDOC2 && useKeyTransfer.value && !useDefaultKeyTransferServer.value ) { diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/ui/component/settings/advanced/signingservices/MobileIdAndSmartIdServicesComponent.kt b/app/src/main/kotlin/ee/ria/DigiDoc/ui/component/settings/advanced/signingservices/MobileIdAndSmartIdServicesComponent.kt index 6309bea2..c7a7dc45 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/ui/component/settings/advanced/signingservices/MobileIdAndSmartIdServicesComponent.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/ui/component/settings/advanced/signingservices/MobileIdAndSmartIdServicesComponent.kt @@ -75,6 +75,7 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.VisualTransformation import ee.ria.DigiDoc.R +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.domain.model.settings.UUIDSetting import ee.ria.DigiDoc.ui.component.shared.InvisibleElement import ee.ria.DigiDoc.ui.component.support.textFieldValueSaver @@ -83,7 +84,6 @@ import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding import ee.ria.DigiDoc.ui.theme.Dimensions.XSBorder import ee.ria.DigiDoc.ui.theme.Dimensions.XSPadding import ee.ria.DigiDoc.ui.theme.buttonRoundedCornerShape -import ee.ria.DigiDoc.utils.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.isTalkBackEnabled import ee.ria.DigiDoc.utils.extensions.notAccessible import ee.ria.DigiDoc.viewmodel.shared.SharedSettingsViewModel diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/utils/Constant.kt b/app/src/main/kotlin/ee/ria/DigiDoc/utils/Constant.kt index 576c95e6..4aeab42b 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/utils/Constant.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/utils/Constant.kt @@ -68,8 +68,4 @@ object Constant { const val MYEID_SCREEN = "myeid_screen_route" const val MYEID_PIN_SCREEN = "myeid_pin_screen_route" } - - object Defaults { - const val DEFAULT_UUID_VALUE = "00000000-0000-0000-0000-000000000000" - } } diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt b/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt index ae2a662c..b7159051 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt @@ -33,13 +33,13 @@ import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import ee.ria.DigiDoc.BuildConfig import ee.ria.DigiDoc.R +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.loader.ConfigurationLoader import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.configuration.utils.TSLUtil import ee.ria.DigiDoc.domain.model.settings.CDOCSetting import ee.ria.DigiDoc.domain.preferences.DataStore -import ee.ria.DigiDoc.utils.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.getAccessibilityEventType import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.sendAccessibilityEvent import ee.ria.DigiDoc.utilsLib.date.DateUtil @@ -146,16 +146,20 @@ class DiagnosticsViewModel return uuid } - fun isCdoc2Selected(): Boolean = dataStore.getCdocSetting() == CDOCSetting.CDOC2 + fun isCdoc2Selected(currentConfiguration: ConfigurationProvider?): Boolean { + val cdoc2Default = currentConfiguration?.cdoc2Default ?: false - fun isCdoc2KeyServerUsed(): Boolean { - val isCdoc2Setting = isCdoc2Selected() - val cdoc2UseKeyServer = updatedConfiguration.value?.cdoc2UseKeyServer ?: false + return dataStore.getCdocSetting(cdoc2Default) == CDOCSetting.CDOC2 + } + + fun isCdoc2KeyServerUsed(currentConfiguration: ConfigurationProvider?): Boolean { + val isCdoc2Setting = isCdoc2Selected(currentConfiguration) + val cdoc2UseKeyServer = currentConfiguration?.cdoc2UseKeyServer ?: false return isCdoc2Setting && dataStore.getUseOnlineEncryption(cdoc2UseKeyServer) } - fun getCdoc2KeyServerUUID(): String { - val defaultKeyServer = updatedConfiguration.value?.cdoc2DefaultKeyServer ?: DEFAULT_UUID_VALUE + fun getCdoc2KeyServerUUID(currentConfiguration: ConfigurationProvider?): String { + val defaultKeyServer = currentConfiguration?.cdoc2DefaultKeyServer ?: DEFAULT_UUID_VALUE return dataStore.getCDOC2UUID(defaultKeyServer) } @@ -234,7 +238,10 @@ class DiagnosticsViewModel LoggingUtil.resetLogs(FileUtil.getLogsDirectory(context)) } - fun createDiagnosticsFile(context: Context): File { + fun createDiagnosticsFile( + context: Context, + currentConfiguration: ConfigurationProvider?, + ): File { val diagnosticsFilePath: String = File(context.filesDir.path, "diagnostics").path val root = File(diagnosticsFilePath) if (!root.exists()) { @@ -254,7 +261,7 @@ class DiagnosticsViewModel FileOutputStream(diagnosticsFileLocation).use { fileStream -> OutputStreamWriter(fileStream, StandardCharsets.UTF_8) .use { writer -> - writer.append(formatDiagnosticsText(context)) + writer.append(formatDiagnosticsText(context, currentConfiguration)) writer.flush() return diagnosticsFileLocation } @@ -278,7 +285,10 @@ class DiagnosticsViewModel return FileUtil.normalizeText(tslFileName) + " (" + version + ")" } - private fun formatDiagnosticsText(context: Context): String { + private fun formatDiagnosticsText( + context: Context, + currentConfiguration: ConfigurationProvider?, + ): String { val diagnosticsText = buildString { appendLine( @@ -364,21 +374,21 @@ class DiagnosticsViewModel context.getString( R.string.main_diagnostics_cdoc2_default_title, ) - } ${isCdoc2Selected()}", + } ${isCdoc2Selected(currentConfiguration)}", ) appendLine( "${ context.getString( R.string.main_diagnostics_cdoc2_use_keyserver_title, ) - } ${isCdoc2KeyServerUsed()}", + } ${isCdoc2KeyServerUsed(currentConfiguration)}", ) appendLine( "${ context.getString( R.string.main_diagnostics_cdoc2_default_keyserver_title, ) - } ${getCdoc2KeyServerUUID()}", + } ${getCdoc2KeyServerUUID(currentConfiguration)}", ) // Category diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModel.kt b/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModel.kt index f2879beb..b8d24bdb 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModel.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/shared/SharedSettingsViewModel.kt @@ -34,6 +34,7 @@ import ee.ria.DigiDoc.R import ee.ria.DigiDoc.common.Constant.DIR_CRYPTO_CERT import ee.ria.DigiDoc.common.Constant.DIR_SIVA_CERT import ee.ria.DigiDoc.common.Constant.DIR_TSA_CERT +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.domain.model.settings.CDOCSetting @@ -49,7 +50,6 @@ import ee.ria.DigiDoc.network.siva.SivaSetting import ee.ria.DigiDoc.network.utils.NetworkUtil.constructClientBuilder import ee.ria.DigiDoc.network.utils.ProxyUtil import ee.ria.DigiDoc.network.utils.UserAgentUtil -import ee.ria.DigiDoc.utils.Constant import ee.ria.DigiDoc.utilsLib.file.FileUtil import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil.Companion.debugLog import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil.Companion.errorLog @@ -172,7 +172,7 @@ class SharedSettingsViewModel private fun resetCryptoSettings() { dataStore.setCdocSetting(CDOCSetting.CDOC1) dataStore.setUseOnlineEncryption(false) - dataStore.setCDOC2SelectedService(Constant.Defaults.DEFAULT_UUID_VALUE) + dataStore.setCDOC2SelectedService(DEFAULT_UUID_VALUE) dataStore.setCDOC2UUID("00000000-0000-0000-0000-000000000002") dataStore.setCDOC2FetchURL("https://cdoc2-keyserver-get") dataStore.setCDOC2PostURL("https://cdoc2-keyserver-post") @@ -195,7 +195,7 @@ class SharedSettingsViewModel private fun resetSigningSettings() { dataStore.setUuidSetting(UUIDSetting.DEFAULT) dataStore.setTsaSetting(TSASetting.DEFAULT) - dataStore.setSettingsUUID(Constant.Defaults.DEFAULT_UUID_VALUE) + dataStore.setSettingsUUID(DEFAULT_UUID_VALUE) dataStore.setSettingsTSAUrl(updatedConfiguration.value?.tsaUrl ?: "") dataStore.setSettingsAskRoleAndAddress(false) dataStore.setIsTsaCertificateViewVisible(false) diff --git a/commons-lib/src/main/kotlin/ee/ria/DigiDoc/common/Constant.kt b/commons-lib/src/main/kotlin/ee/ria/DigiDoc/common/Constant.kt index f975cfb7..3966fe18 100644 --- a/commons-lib/src/main/kotlin/ee/ria/DigiDoc/common/Constant.kt +++ b/commons-lib/src/main/kotlin/ee/ria/DigiDoc/common/Constant.kt @@ -25,6 +25,10 @@ import java.time.ZoneOffset import java.time.ZonedDateTime object Constant { + object Defaults { + const val DEFAULT_UUID_VALUE = "00000000-0000-0000-0000-000000000000" + } + object SignatureRequest { const val SIGNATURE_PROFILE_TS = "time-stamp" private const val ESTONIAN_PHONE_CODE = "372" diff --git a/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/domain/model/ConfigurationViewModelTest.kt b/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/domain/model/ConfigurationViewModelTest.kt index c7af8cda..8a335904 100644 --- a/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/domain/model/ConfigurationViewModelTest.kt +++ b/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/domain/model/ConfigurationViewModelTest.kt @@ -23,6 +23,7 @@ package ee.ria.DigiDoc.configuration.domain.model import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.Observer +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.network.proxy.ManualProxy @@ -115,7 +116,7 @@ class ConfigurationViewModelTest { ConfigurationProvider.MetaInf("url", "date", 1, 1), "sivaUrl", mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", @@ -123,7 +124,8 @@ class ConfigurationViewModelTest { ), ), false, - "00000000-0000-0000-0000-000000000000", + false, + DEFAULT_UUID_VALUE, "tslUrl", emptyList(), "tsaUrl", diff --git a/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/loader/ConfigurationLoaderTest.kt b/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/loader/ConfigurationLoaderTest.kt index b275e959..1a599e8c 100644 --- a/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/loader/ConfigurationLoaderTest.kt +++ b/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/loader/ConfigurationLoaderTest.kt @@ -26,6 +26,7 @@ import android.content.SharedPreferences import androidx.test.platform.app.InstrumentationRegistry import com.google.common.io.Files import com.google.gson.Gson +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.testfiles.asset.AssetFile import ee.ria.DigiDoc.configuration.ConfigurationProperty import ee.ria.DigiDoc.configuration.ConfigurationSignatureVerifier @@ -427,14 +428,15 @@ class ConfigurationLoaderTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) } diff --git a/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/repository/ConfigurationRepositoryTest.kt b/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/repository/ConfigurationRepositoryTest.kt index 9d12cd69..3f6ff262 100644 --- a/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/repository/ConfigurationRepositoryTest.kt +++ b/config-lib/src/androidTest/kotlin/ee/ria/DigiDoc/configuration/repository/ConfigurationRepositoryTest.kt @@ -22,6 +22,7 @@ package ee.ria.DigiDoc.configuration.repository import android.content.Context +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.loader.ConfigurationLoader import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider import ee.ria.DigiDoc.network.proxy.ManualProxy @@ -202,14 +203,15 @@ class ConfigurationRepositoryTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) } diff --git a/config-lib/src/main/kotlin/ee/ria/DigiDoc/configuration/provider/ConfigurationProvider.kt b/config-lib/src/main/kotlin/ee/ria/DigiDoc/configuration/provider/ConfigurationProvider.kt index 564efa43..270e99c1 100644 --- a/config-lib/src/main/kotlin/ee/ria/DigiDoc/configuration/provider/ConfigurationProvider.kt +++ b/config-lib/src/main/kotlin/ee/ria/DigiDoc/configuration/provider/ConfigurationProvider.kt @@ -28,6 +28,7 @@ data class ConfigurationProvider( @SerializedName("META-INF") val metaInf: MetaInf, @SerializedName("SIVA-URL") val sivaUrl: String, @SerializedName("CDOC2-CONF") val cdoc2Conf: Map, + @SerializedName("CDOC2-DEFAULT") val cdoc2Default: Boolean?, @SerializedName("CDOC2-USE-KEYSERVER") val cdoc2UseKeyServer: Boolean, @SerializedName("CDOC2-DEFAULT-KEYSERVER") val cdoc2DefaultKeyServer: String, @SerializedName("TSL-URL") val tslUrl: String, diff --git a/crypto-lib/libs/libcdoc.jar b/crypto-lib/libs/libcdoc.jar index 3ed11bb1..111b355c 100644 Binary files a/crypto-lib/libs/libcdoc.jar and b/crypto-lib/libs/libcdoc.jar differ diff --git a/crypto-lib/src/androidTest/kotlin/ee/ria/DigiDoc/cryptolib/CryptoContainerTest.kt b/crypto-lib/src/androidTest/kotlin/ee/ria/DigiDoc/cryptolib/CryptoContainerTest.kt index 0c564f86..e0846f26 100644 --- a/crypto-lib/src/androidTest/kotlin/ee/ria/DigiDoc/cryptolib/CryptoContainerTest.kt +++ b/crypto-lib/src/androidTest/kotlin/ee/ria/DigiDoc/cryptolib/CryptoContainerTest.kt @@ -33,6 +33,7 @@ import ee.ria.DigiDoc.common.Constant.CDOC1_EXTENSION import ee.ria.DigiDoc.common.Constant.CDOC2_EXTENSION import ee.ria.DigiDoc.common.Constant.CONTAINER_MIME_TYPE import ee.ria.DigiDoc.common.Constant.DIR_CRYPTO_CERT +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.common.certificate.CertificateServiceImpl import ee.ria.DigiDoc.configuration.ConfigurationProperty import ee.ria.DigiDoc.configuration.ConfigurationSignatureVerifierImpl @@ -138,15 +139,16 @@ class CryptoContainerTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) @JvmStatic @@ -917,7 +919,7 @@ class CryptoContainerTest { preferences .edit() .putString( - resources.getString(R.string.crypto_settings_use_cdoc2_fetch_url), + resources.getString(R.string.crypto_settings_use_cdoc2_post_url), "https://cdoc2.id.ee:8443", ).apply() diff --git a/crypto-lib/src/debug/jniLibs/arm64-v8a/libcdoc_java.so b/crypto-lib/src/debug/jniLibs/arm64-v8a/libcdoc_java.so index 866b4ed4..e6dfe46d 100644 Binary files a/crypto-lib/src/debug/jniLibs/arm64-v8a/libcdoc_java.so and b/crypto-lib/src/debug/jniLibs/arm64-v8a/libcdoc_java.so differ diff --git a/crypto-lib/src/debug/jniLibs/armeabi-v7a/libcdoc_java.so b/crypto-lib/src/debug/jniLibs/armeabi-v7a/libcdoc_java.so index c0f5b673..79f0f27a 100644 Binary files a/crypto-lib/src/debug/jniLibs/armeabi-v7a/libcdoc_java.so and b/crypto-lib/src/debug/jniLibs/armeabi-v7a/libcdoc_java.so differ diff --git a/crypto-lib/src/debug/jniLibs/x86_64/libcdoc_java.so b/crypto-lib/src/debug/jniLibs/x86_64/libcdoc_java.so index 1016db84..52634c00 100644 Binary files a/crypto-lib/src/debug/jniLibs/x86_64/libcdoc_java.so and b/crypto-lib/src/debug/jniLibs/x86_64/libcdoc_java.so differ diff --git a/crypto-lib/src/main/jniLibs/arm64-v8a/libcdoc_java.so b/crypto-lib/src/main/jniLibs/arm64-v8a/libcdoc_java.so index 866b4ed4..e6dfe46d 100644 Binary files a/crypto-lib/src/main/jniLibs/arm64-v8a/libcdoc_java.so and b/crypto-lib/src/main/jniLibs/arm64-v8a/libcdoc_java.so differ diff --git a/crypto-lib/src/main/jniLibs/armeabi-v7a/libcdoc_java.so b/crypto-lib/src/main/jniLibs/armeabi-v7a/libcdoc_java.so index c0f5b673..79f0f27a 100644 Binary files a/crypto-lib/src/main/jniLibs/armeabi-v7a/libcdoc_java.so and b/crypto-lib/src/main/jniLibs/armeabi-v7a/libcdoc_java.so differ diff --git a/crypto-lib/src/main/jniLibs/x86_64/libcdoc_java.so b/crypto-lib/src/main/jniLibs/x86_64/libcdoc_java.so index 1016db84..52634c00 100644 Binary files a/crypto-lib/src/main/jniLibs/x86_64/libcdoc_java.so and b/crypto-lib/src/main/jniLibs/x86_64/libcdoc_java.so differ diff --git a/crypto-lib/src/main/kotlin/ee/ria/DigiDoc/cryptolib/CDOC2Settings.kt b/crypto-lib/src/main/kotlin/ee/ria/DigiDoc/cryptolib/CDOC2Settings.kt index 91f62266..fea7b318 100644 --- a/crypto-lib/src/main/kotlin/ee/ria/DigiDoc/cryptolib/CDOC2Settings.kt +++ b/crypto-lib/src/main/kotlin/ee/ria/DigiDoc/cryptolib/CDOC2Settings.kt @@ -26,6 +26,7 @@ import android.content.SharedPreferences import android.content.res.Resources import androidx.preference.PreferenceManager import ee.ria.DigiDoc.common.Constant.DIR_CRYPTO_CERT +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.utilsLib.file.FileUtil import javax.inject.Inject @@ -36,26 +37,35 @@ class CDOC2Settings private var context: Context, private var configurationRepository: ConfigurationRepository, ) { - private var preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) + private var preferences: SharedPreferences = + PreferenceManager.getDefaultSharedPreferences(context) private var resources: Resources = context.resources - fun getUseEncryption(): Boolean = - preferences.getBoolean( + fun getUseEncryption(): Boolean { + val defaultValue = configurationRepository.getConfiguration()?.cdoc2Default ?: false + return preferences.getBoolean( resources.getString(R.string.crypto_settings_use_cdoc2_encryption), - false, + defaultValue, ) + } - fun getUseOnlineEncryption(): Boolean = - preferences.getBoolean( + fun getUseOnlineEncryption(): Boolean { + val defaultValue = + configurationRepository.getConfiguration()?.cdoc2UseKeyServer ?: false + return preferences.getBoolean( resources.getString(R.string.crypto_settings_use_cdoc2_online_encryption), - false, + defaultValue, ) + } - fun getCDOC2UUID(): String = - preferences.getString( + fun getCDOC2UUID(): String { + val defaultValue = + configurationRepository.getConfiguration()?.cdoc2DefaultKeyServer ?: DEFAULT_UUID_VALUE + return preferences.getString( resources.getString(R.string.crypto_settings_use_cdoc2_uuid), - "", - ) ?: "" + defaultValue, + ) ?: defaultValue + } fun getCDOC2PostURL(domain: String): String { val configurationProvider = configurationRepository.getConfiguration() diff --git a/libdigidoc-lib/src/androidTest/kotlin/ee/ria/DigiDoc/libdigidoclib/init/InitializationTest.kt b/libdigidoc-lib/src/androidTest/kotlin/ee/ria/DigiDoc/libdigidoclib/init/InitializationTest.kt index 118dd6cc..35ab4d3d 100644 --- a/libdigidoc-lib/src/androidTest/kotlin/ee/ria/DigiDoc/libdigidoclib/init/InitializationTest.kt +++ b/libdigidoc-lib/src/androidTest/kotlin/ee/ria/DigiDoc/libdigidoclib/init/InitializationTest.kt @@ -25,6 +25,7 @@ import android.content.Context import android.content.res.Resources import android.content.res.Resources.NotFoundException import androidx.test.platform.app.InstrumentationRegistry +import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.libdigidoclib.exceptions.AlreadyInitializedException @@ -72,15 +73,16 @@ class InitializationTest { configurationUpdateDate = null, cdoc2Conf = mapOf( - "00000000-0000-0000-0000-000000000000" to + DEFAULT_UUID_VALUE to ConfigurationProvider.CDOC2Conf( name = "RIA", post = "https://cdoc2.id.ee:8443", fetch = "https://cdoc2.id.ee:8444", ), ), + cdoc2Default = false, cdoc2UseKeyServer = false, - cdoc2DefaultKeyServer = "00000000-0000-0000-0000-000000000000", + cdoc2DefaultKeyServer = DEFAULT_UUID_VALUE, ) @Mock diff --git a/mobile-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/mobileId/MobileSignServiceImplTest.kt b/mobile-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/mobileId/MobileSignServiceImplTest.kt index 286d31c5..a510d2e6 100644 --- a/mobile-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/mobileId/MobileSignServiceImplTest.kt +++ b/mobile-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/mobileId/MobileSignServiceImplTest.kt @@ -25,6 +25,7 @@ import android.content.Context import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.Observer import androidx.test.platform.app.InstrumentationRegistry +import ee.ria.DigiDoc.common.Constant.SignatureRequest.RELYING_PARTY_UUID import ee.ria.DigiDoc.common.model.AppState import ee.ria.DigiDoc.common.testfiles.asset.AssetFile import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository @@ -135,7 +136,7 @@ class MobileSignServiceImplTest { phoneNumber = "37200000766", nationalIdentityNumber = "60001019906", url = url, - relyingPartyUUID = "00000000-0000-0000-0000-000000000000", + relyingPartyUUID = RELYING_PARTY_UUID, relyingPartyName = "DEMO", containerPath = "containerPath", hashType = "SHA256", @@ -147,7 +148,7 @@ class MobileSignServiceImplTest { private val getMobileCertificateRequest = PostMobileCreateSignatureCertificateRequest( relyingPartyName = "DEMO", - relyingPartyUUID = "00000000-0000-0000-0000-000000000000", + relyingPartyUUID = RELYING_PARTY_UUID, phoneNumber = "37200000766", nationalIdentityNumber = "60001019906", ) @@ -372,7 +373,7 @@ class MobileSignServiceImplTest { verify(statusObserver, atLeastOnce()).onChanged(MobileCreateSignatureProcessStatus.INVALID_ACCESS_RIGHTS) - request.relyingPartyUUID = "00000000-0000-0000-0000-000000000000" + request.relyingPartyUUID = RELYING_PARTY_UUID } @Test diff --git a/smart-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/smartId/SmartSignServiceImplTest.kt b/smart-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/smartId/SmartSignServiceImplTest.kt index 9c881147..a413bbfe 100644 --- a/smart-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/smartId/SmartSignServiceImplTest.kt +++ b/smart-id-lib/src/androidTest/kotlin/ee/ria/DigiDoc/smartId/SmartSignServiceImplTest.kt @@ -25,6 +25,7 @@ import android.content.Context import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.Observer import androidx.test.platform.app.InstrumentationRegistry +import ee.ria.DigiDoc.common.Constant.SignatureRequest.RELYING_PARTY_UUID import ee.ria.DigiDoc.common.model.AppState import ee.ria.DigiDoc.common.testfiles.asset.AssetFile.Companion.getResourceFileAsFile import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository @@ -170,14 +171,14 @@ class SmartSignServiceImplTest { private val getSmartCertificateRequest = PostCertificateRequest( relyingPartyName = "DEMO", - relyingPartyUUID = "00000000-0000-0000-0000-000000000000", + relyingPartyUUID = RELYING_PARTY_UUID, ) private val request = SmartCreateSignatureRequest( country = "EE", nationalIdentityNumber = "60001019906", url = url, - relyingPartyUUID = "00000000-0000-0000-0000-000000000000", + relyingPartyUUID = RELYING_PARTY_UUID, relyingPartyName = "DEMO", containerPath = "containerPath", hashType = "SHA256", @@ -347,7 +348,7 @@ class SmartSignServiceImplTest { ) verify(statusObserver, atLeastOnce()).onChanged(SessionStatusResponseProcessStatus.INVALID_ACCESS_RIGHTS) - request.relyingPartyUUID = "00000000-0000-0000-0000-000000000000" + request.relyingPartyUUID = RELYING_PARTY_UUID } @Test