[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-cashier-terminal-android] 04/04: Encrypt shared preferences with
From: |
gnunet |
Subject: |
[taler-cashier-terminal-android] 04/04: Encrypt shared preferences with master key |
Date: |
Wed, 05 Feb 2020 18:30:20 +0100 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository cashier-terminal-android.
commit 41dc9a4135eb108aa993b8615e5c95b6b8422046
Author: Torsten Grote <address@hidden>
AuthorDate: Wed Feb 5 14:24:23 2020 -0300
Encrypt shared preferences with master key
---
app/build.gradle | 3 ++-
app/src/main/java/net/taler/cashier/MainViewModel.kt | 12 ++++++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index a3a7367..bffcabc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,7 +9,7 @@ android {
defaultConfig {
applicationId "net.taler.cashier"
- minSdkVersion 21
+ minSdkVersion 23
targetSdkVersion 29
versionCode 1
versionName "0.1"
@@ -34,6 +34,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation 'androidx.security:security-crypto:1.0.0-alpha02'
implementation 'com.google.android.material:material:1.1.0'
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
diff --git a/app/src/main/java/net/taler/cashier/MainViewModel.kt
b/app/src/main/java/net/taler/cashier/MainViewModel.kt
index 5645b23..e9d4d94 100644
--- a/app/src/main/java/net/taler/cashier/MainViewModel.kt
+++ b/app/src/main/java/net/taler/cashier/MainViewModel.kt
@@ -2,7 +2,6 @@ package net.taler.cashier
import android.annotation.SuppressLint
import android.app.Application
-import android.content.Context.MODE_PRIVATE
import android.util.Log
import androidx.annotation.UiThread
import androidx.annotation.WorkerThread
@@ -10,6 +9,11 @@ import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
+import androidx.security.crypto.EncryptedSharedPreferences
+import
androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV
+import
androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
+import androidx.security.crypto.MasterKeys
+import androidx.security.crypto.MasterKeys.AES256_GCM_SPEC
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.taler.cashier.HttpHelper.makeJsonGetRequest
@@ -26,7 +30,11 @@ class MainViewModel(private val app: Application) :
AndroidViewModel(app) {
val configDestination =
ConfigFragmentDirections.actionGlobalConfigFragment()
- private val prefs = app.getSharedPreferences(PREF_NAME, MODE_PRIVATE)
+ private val masterKeyAlias = MasterKeys.getOrCreate(AES256_GCM_SPEC)
+ private val prefs = EncryptedSharedPreferences.create(
+ PREF_NAME, masterKeyAlias, app, AES256_SIV, AES256_GCM
+ )
+
internal var config = Config(
bankUrl = prefs.getString(PREF_KEY_BANK_URL, "")!!,
username = prefs.getString(PREF_KEY_USERNAME, "")!!,
--
To stop receiving notification emails like this one, please contact
address@hidden.