gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]