Skip to content

Commit 776f9bd

Browse files
committed
MOPPAND-1661 Fix CDOC2 online decryption, use key capsule value from container.
1 parent bf1ee4e commit 776f9bd

File tree

3 files changed

+32
-16
lines changed

3 files changed

+32
-16
lines changed

app/src/main/kotlin/ee/ria/DigiDoc/di/AppModules.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,11 @@ class AppModules {
8484
@Provides
8585
fun provideCDOC2Settings(
8686
@ApplicationContext context: Context,
87+
configurationRepository: ConfigurationRepository,
8788
): CDOC2Settings =
8889
CDOC2Settings(
8990
context = context,
91+
configurationRepository,
9092
)
9193

9294
@Provides

crypto-lib/src/main/kotlin/ee/ria/DigiDoc/cryptolib/CDOC2Settings.kt

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@ import android.content.SharedPreferences
2626
import android.content.res.Resources
2727
import androidx.preference.PreferenceManager
2828
import ee.ria.DigiDoc.common.Constant.DIR_CRYPTO_CERT
29+
import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository
2930
import ee.ria.DigiDoc.utilsLib.file.FileUtil
3031
import javax.inject.Inject
3132

3233
class CDOC2Settings
3334
@Inject
3435
constructor(
3536
private var context: Context,
37+
private var configurationRepository: ConfigurationRepository,
3638
) {
3739
private var preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
3840
private var resources: Resources = context.resources
@@ -55,17 +57,29 @@ class CDOC2Settings
5557
"",
5658
) ?: ""
5759

58-
fun getCDOC2PostURL(): String =
59-
preferences.getString(
60-
resources.getString(R.string.crypto_settings_use_cdoc2_post_url),
61-
"",
62-
) ?: ""
60+
fun getCDOC2PostURL(domain: String): String {
61+
val configurationProvider = configurationRepository.getConfiguration()
62+
val configPostUrl =
63+
configurationProvider?.cdoc2Conf?.get(domain)?.post
64+
?: return preferences.getString(
65+
resources.getString(R.string.crypto_settings_use_cdoc2_post_url),
66+
"",
67+
) ?: ""
6368

64-
fun getCDOC2FetchURL(): String =
65-
preferences.getString(
66-
resources.getString(R.string.crypto_settings_use_cdoc2_fetch_url),
67-
"",
68-
) ?: ""
69+
return configPostUrl
70+
}
71+
72+
fun getCDOC2FetchURL(domain: String): String {
73+
val configurationProvider = configurationRepository.getConfiguration()
74+
val configFetchUrl =
75+
configurationProvider?.cdoc2Conf?.get(domain)?.fetch
76+
?: return preferences.getString(
77+
resources.getString(R.string.crypto_settings_use_cdoc2_fetch_url),
78+
"",
79+
) ?: ""
80+
81+
return configFetchUrl
82+
}
6983

7084
fun getCDOC2Cert(): String? {
7185
val cryptoCertName =

crypto-lib/src/main/kotlin/ee/ria/DigiDoc/cryptolib/CryptoContainer.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,9 @@ class CryptoContainer
359359
if (recipients.isEmpty()) {
360360
throw RecipientsEmptyException("Cannot create crypto container without recipients")
361361
}
362-
363-
val conf = CryptoLibConf(cdoc2Settings)
364362
val configurationProvider = configurationRepository.getConfiguration()
363+
val conf = CryptoLibConf(cdoc2Settings)
364+
365365
val network = Network(cdoc2Settings, configurationProvider, context)
366366

367367
val version =
@@ -531,12 +531,12 @@ class CryptoContainer
531531
private val cdoc2Settings: CDOC2Settings,
532532
) : Configuration() {
533533
override fun getValue(
534-
domain: String?,
535-
param: String?,
534+
domain: String,
535+
param: String,
536536
): String =
537537
when (param) {
538-
KEYSERVER_FETCH_URL -> cdoc2Settings.getCDOC2FetchURL()
539-
KEYSERVER_SEND_URL -> cdoc2Settings.getCDOC2PostURL()
538+
KEYSERVER_FETCH_URL -> cdoc2Settings.getCDOC2FetchURL(domain)
539+
KEYSERVER_SEND_URL -> cdoc2Settings.getCDOC2PostURL(domain)
540540
else -> ""
541541
}
542542
}

0 commit comments

Comments
 (0)