From 0c8a51e5eb5ca9c653bcd76d60eec5c52ef73da1 Mon Sep 17 00:00:00 2001 From: Marcin Bak Date: Thu, 15 Mar 2018 10:22:56 +0100 Subject: [PATCH 1/4] Workaround fix for https://github.com/ophio/secure-preferences/issues/18 --- .../secure/core/KeyStoreKeyGenerator.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/library/src/main/java/in/co/ophio/secure/core/KeyStoreKeyGenerator.java b/library/src/main/java/in/co/ophio/secure/core/KeyStoreKeyGenerator.java index 1e5baf4..1d1da8a 100644 --- a/library/src/main/java/in/co/ophio/secure/core/KeyStoreKeyGenerator.java +++ b/library/src/main/java/in/co/ophio/secure/core/KeyStoreKeyGenerator.java @@ -41,14 +41,19 @@ private KeyStoreKeyGenerator(Application application, String filename) { this.isHardwareBacked = KeyChain.isBoundKeyAlgorithm("RSA"); this.keyFile = new File(application.getFilesDir(), filename); - try { - // Load secret key and ensure our root document is ready. - loadOrGenerateKeys(); - - } catch (IOException e) { - throw new IllegalStateException(e); - } catch (GeneralSecurityException e) { - throw new IllegalStateException(e); + //WORKAROUND for https://issuetracker.google.com/issues/37137351 + + for (int i = 0; i <= 2; i++) { + try { + // Load secret key and ensure our root document is ready. + loadOrGenerateKeys(); + + } catch (IOException | GeneralSecurityException e) { + keyFile.delete(); + if (i >= 2) { + throw new IllegalStateException("Failed to initialize KeyStoreKeyGenerator (failed to load security key)", e); // fatal error + } + } } } From 310611a015689722e1326b6242cf0ccb86be8921 Mon Sep 17 00:00:00 2001 From: Marcin Bak Date: Wed, 9 Jan 2019 21:13:17 +0100 Subject: [PATCH 2/4] Test using openjdk image --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c89402b..0f2e1c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: android -jdk: oraclejdk7 +jdk: openjdk8 android: components: From 8ad040ca700cff11165856143d53e9cd793c5e8f Mon Sep 17 00:00:00 2001 From: Marcin Bak Date: Wed, 9 Jan 2019 21:18:20 +0100 Subject: [PATCH 3/4] Add missing android-18 component --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 0f2e1c9..42700fa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ android: components: - build-tools-23.0.1 - android-23 + - android-18 - extra - sys-img-armeabi-v7a-android-18 From 094b29d287aae696af0ff085d28710ef330e3c38 Mon Sep 17 00:00:00 2001 From: Marcin Bak Date: Wed, 9 Jan 2019 21:36:36 +0100 Subject: [PATCH 4/4] Use engine=classic flag for emualtor --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 42700fa..a591d12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ install: # Emulator Management: Create, Start and Wait before_script: - echo no | android create avd --force -n test -t android-18 --abi armeabi-v7a - - emulator -avd test -no-skin -no-audio -no-window & + - emulator -avd test -engine classic -no-skin -no-audio -no-window & - android-wait-for-emulator - adb shell input keyevent 82 &