From 7c94af2fb26535be498e472d26178df3b4d8df9b Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Thu, 9 Mar 2023 20:56:56 +0000 Subject: [PATCH 1/2] Use MasterKey.Builder instead of deprecated MasterKeys --- .../com/vitorpamplona/amethyst/EncryptedStorage.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt b/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt index 9ab8a8684..fcc7d2b2e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt @@ -2,18 +2,20 @@ package com.vitorpamplona.amethyst import android.content.Context import androidx.security.crypto.EncryptedSharedPreferences -import androidx.security.crypto.MasterKeys +import androidx.security.crypto.MasterKey class EncryptedStorage { + private val preferencesName = "secret_keeper" fun preferences(context: Context): EncryptedSharedPreferences { - val secretKey: String = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) - val preferencesName = "secret_keeper" + val masterKey: MasterKey = MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS) + .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) + .build() return EncryptedSharedPreferences.create( - preferencesName, - secretKey, context, + preferencesName, + masterKey, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM ) as EncryptedSharedPreferences From e7f814e2055afc0b65546abf2195756efe3ca953 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Thu, 9 Mar 2023 20:57:53 +0000 Subject: [PATCH 2/2] Change EncryptedStorage from class to object --- .../java/com/vitorpamplona/amethyst/EncryptedStorage.kt | 6 +++--- .../java/com/vitorpamplona/amethyst/LocalPreferences.kt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt b/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt index fcc7d2b2e..d43669d7c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/EncryptedStorage.kt @@ -4,8 +4,8 @@ import android.content.Context import androidx.security.crypto.EncryptedSharedPreferences import androidx.security.crypto.MasterKey -class EncryptedStorage { - private val preferencesName = "secret_keeper" +object EncryptedStorage { + private const val PREFERENCES_NAME = "secret_keeper" fun preferences(context: Context): EncryptedSharedPreferences { val masterKey: MasterKey = MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS) @@ -14,7 +14,7 @@ class EncryptedStorage { return EncryptedSharedPreferences.create( context, - preferencesName, + PREFERENCES_NAME, masterKey, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM diff --git a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt index abec38a63..83e0f331a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt @@ -29,7 +29,7 @@ class LocalPreferences(context: Context) { val LAST_READ: (String) -> String = { route -> "last_read_route_$route" } } - private val encryptedPreferences = EncryptedStorage().preferences(context) + private val encryptedPreferences = EncryptedStorage.preferences(context) private val gson = GsonBuilder().create() fun clearEncryptedStorage() {