From 853069ee1cde31fef670ce937c0a5bb6d98f5580 Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:52:54 -0400 Subject: [PATCH] [PM-19866] Migrate `BaseEncryptedDiskSource` to `data` module (#4991) --- .../datasource/disk/AuthDiskSourceImpl.kt | 2 +- .../datasource/disk/AuthDiskSourceImpl.kt | 8 ++--- .../disk/BaseEncryptedDiskSource.kt | 33 ------------------- data/build.gradle.kts | 1 + .../disk/BaseEncryptedDiskSource.kt | 3 +- 5 files changed, 6 insertions(+), 41 deletions(-) delete mode 100644 authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/disk/BaseEncryptedDiskSource.kt rename {app/src/main/java/com/x8bit/bitwarden/data/platform => data/src/main/kotlin/com/bitwarden/data}/datasource/disk/BaseEncryptedDiskSource.kt (89%) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/disk/AuthDiskSourceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/disk/AuthDiskSourceImpl.kt index 30d9348ace..658b72d392 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/disk/AuthDiskSourceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/disk/AuthDiskSourceImpl.kt @@ -3,13 +3,13 @@ package com.x8bit.bitwarden.data.auth.datasource.disk import android.content.SharedPreferences import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.core.data.util.decodeFromStringOrNull +import com.bitwarden.data.datasource.disk.BaseEncryptedDiskSource import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson import com.x8bit.bitwarden.data.auth.datasource.disk.model.NewDeviceNoticeDisplayStatus import com.x8bit.bitwarden.data.auth.datasource.disk.model.NewDeviceNoticeState import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus import com.x8bit.bitwarden.data.auth.datasource.disk.model.PendingAuthRequestJson import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson -import com.x8bit.bitwarden.data.platform.datasource.disk.BaseEncryptedDiskSource import com.x8bit.bitwarden.data.platform.datasource.disk.legacy.LegacySecureStorageMigrator import com.x8bit.bitwarden.data.vault.datasource.network.model.SyncResponseJson import kotlinx.coroutines.flow.Flow diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/auth/datasource/disk/AuthDiskSourceImpl.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/auth/datasource/disk/AuthDiskSourceImpl.kt index a866b018de..1cff995165 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/auth/datasource/disk/AuthDiskSourceImpl.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/auth/datasource/disk/AuthDiskSourceImpl.kt @@ -1,13 +1,11 @@ package com.bitwarden.authenticator.data.auth.datasource.disk import android.content.SharedPreferences -import com.bitwarden.authenticator.data.platform.datasource.disk.BaseEncryptedDiskSource -import com.bitwarden.authenticator.data.platform.datasource.disk.BaseEncryptedDiskSource.Companion.ENCRYPTED_BASE_KEY +import com.bitwarden.data.datasource.disk.BaseEncryptedDiskSource -private const val AUTHENTICATOR_SYNC_SYMMETRIC_KEY = - "$ENCRYPTED_BASE_KEY:authenticatorSyncSymmetricKey" +private const val AUTHENTICATOR_SYNC_SYMMETRIC_KEY = "authenticatorSyncSymmetricKey" private const val LAST_ACTIVE_TIME_KEY = "lastActiveTime" -private const val BIOMETRICS_UNLOCK_KEY = "$ENCRYPTED_BASE_KEY:userKeyBiometricUnlock" +private const val BIOMETRICS_UNLOCK_KEY = "userKeyBiometricUnlock" /** * Primary implementation of [AuthDiskSource]. diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/disk/BaseEncryptedDiskSource.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/disk/BaseEncryptedDiskSource.kt deleted file mode 100644 index bf1828990d..0000000000 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/data/platform/datasource/disk/BaseEncryptedDiskSource.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.bitwarden.authenticator.data.platform.datasource.disk - -import android.content.SharedPreferences -import androidx.core.content.edit -import androidx.security.crypto.EncryptedSharedPreferences -import com.bitwarden.data.datasource.disk.BaseDiskSource - -/** - * Base class for simplifying interactions with [SharedPreferences] and - * [EncryptedSharedPreferences]. - */ -@Suppress("UnnecessaryAbstractClass") -abstract class BaseEncryptedDiskSource( - sharedPreferences: SharedPreferences, - private val encryptedSharedPreferences: SharedPreferences, -) : BaseDiskSource( - sharedPreferences = sharedPreferences, -) { - protected fun getEncryptedString( - key: String, - default: String? = null, - ): String? = encryptedSharedPreferences.getString(key, default) - - protected fun putEncryptedString( - key: String, - value: String?, - ): Unit = encryptedSharedPreferences.edit { putString(key, value) } - - @Suppress("UndocumentedPublicClass") - companion object { - const val ENCRYPTED_BASE_KEY: String = "bwSecureStorage" - } -} diff --git a/data/build.gradle.kts b/data/build.gradle.kts index cbcdb2280a..ec20b19c07 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -39,4 +39,5 @@ kotlin { dependencies { implementation(libs.androidx.core.ktx) + implementation(libs.androidx.security.crypto) } diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/BaseEncryptedDiskSource.kt b/data/src/main/kotlin/com/bitwarden/data/datasource/disk/BaseEncryptedDiskSource.kt similarity index 89% rename from app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/BaseEncryptedDiskSource.kt rename to data/src/main/kotlin/com/bitwarden/data/datasource/disk/BaseEncryptedDiskSource.kt index 339a74d9ab..7a47b3b44d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/BaseEncryptedDiskSource.kt +++ b/data/src/main/kotlin/com/bitwarden/data/datasource/disk/BaseEncryptedDiskSource.kt @@ -1,9 +1,8 @@ -package com.x8bit.bitwarden.data.platform.datasource.disk +package com.bitwarden.data.datasource.disk import android.content.SharedPreferences import androidx.core.content.edit import androidx.security.crypto.EncryptedSharedPreferences -import com.bitwarden.data.datasource.disk.BaseDiskSource /** * Base class for simplifying interactions with [SharedPreferences] and