Giter VIP home page Giter VIP logo

secure-preferences's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

secure-preferences's Issues

KeystoreConnectException

On Huawei P8 Lite, Android 6.0 It gives KeystoreConnectException. Howard ti achieve this problem? Thanks

Proguard Issue

App is crashing when i am enabling proguard.
Please share the proguard rules for this library

Issue with KeyStore on android 9

Hello,
I added this library to my application and I've seen some issues where an android-9 phones occasionally have a problem loading or generating the key pair.

I've been digging around the android keystore code but I am a complete neophyte in this part of the stack so I was hoping that someone here could point me in the right direction.

I also think it may help if there really is a bug as I imagine many of us support android 9.
I'm pasting a stack trace below.

Thanks for such a useful tool!

Caused by java.lang.NullPointerException: invalid null input
       at java.security.KeyStore$PrivateKeyEntry.(KeyStore.java:559)
       at java.security.KeyStore$PrivateKeyEntry.(KeyStore.java:526)
       at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:527)
       at java.security.KeyStore.getEntry(KeyStore.java:1621)
       at in.co.ophio.secure.vault.SecretKeyWrapper.(SecretKeyWrapper.java:66)
       at in.co.ophio.secure.core.KeyStoreKeyGenerator.loadOrGenerateKeys(KeyStoreKeyGenerator.java:66)
       at in.co.ophio.secure.core.KeyStoreKeyGenerator.(Unknown Source:1046)
       at in.co.ophio.secure.core.KeyStoreKeyGenerator.get(KeyStoreKeyGenerator.java:56)
       at com.myapp.app.utilities.Preferences.(Preferences.java:46)
       at com.myapp.app.core.AppApplication.onCreate(AppApplication.java:68)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6217)
       at android.app.ActivityThread.access$1200(ActivityThread.java:237)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1785)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7045)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

Is it possible to make minSdk=14

I know this lib is using some API from Android API 18.

The Keystore system is used by the KeyChain API as well as the Android Keystore provider feature that was introduced in Android 4.3 (API level 18).

Therefore, the sample app has minSdkVersion=18. However, could you please decrease its minSdkVersion to 14, with a wrapper to use default SharedPreferences if device API version from 14 to 17, or use secure preferences if API >= 18?

IllegalStateException

I init the KeyGenerator by this code:

keyGenerator = KeyStoreKeyGenerator.get(application, application.getPackageName());

But I got the IllegalStateException:

W/System.err: java.lang.IllegalStateException: java.security.InvalidKeyException: Failed to unwrap key
W/System.err:     at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init>(KeyStoreKeyGenerator.java:51)
W/System.err:     at in.co.ophio.secure.core.KeyStoreKeyGenerator.get(KeyStoreKeyGenerator.java:56)

How can I resolve this problem?

Issue with KeyStore on Android 5.1

Hello,
I have this stack of exceptions when using the KeyStoreKeyGenerator class

Caused by: java.lang.IllegalStateException: 
  at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init> (KeyStoreKeyGenerator.java)
  at in.co.ophio.secure.core.KeyStoreKeyGenerator.get (KeyStoreKeyGenerator.java)

Caused by: java.security.InvalidKeyException: 
  at com.android.org.conscrypt.OpenSSLCipherRSA.engineUnwrap (OpenSSLCipherRSA.java:340)
  at javax.crypto.Cipher.unwrap (Cipher.java:1545)
  at in.co.ophio.secure.vault.SecretKeyWrapper.generateKeyPair (SecretKeyWrapper.java)
  or                     .unwrap (SecretKeyWrapper.java)
  or                     .wrap (SecretKeyWrapper.java)
  at in.co.ophio.secure.core.KeyStoreKeyGenerator.get (KeyStoreKeyGenerator.java)
  or                     .loadOrGenerateKeys (KeyStoreKeyGenerator.java)
  at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init> (KeyStoreKeyGenerator.java)
  at in.co.ophio.secure.core.KeyStoreKeyGenerator.get (KeyStoreKeyGenerator.java)
  or                     .loadOrGenerateKeys (KeyStoreKeyGenerator.java)

Caused by: javax.crypto.BadPaddingException: 
  at com.android.org.conscrypt.NativeCrypto.RSA_private_decrypt (NativeCrypto.java)
  at com.android.org.conscrypt.OpenSSLCipherRSA.engineDoFinal (OpenSSLCipherRSA.java:273)
  at com.android.org.conscrypt.OpenSSLCipherRSA.engineUnwrap (OpenSSLCipherRSA.java:325)
  at javax.crypto.Cipher.unwrap (Cipher.java:1545)

NoSuchAlgorithmException

hi
this method cause exception on some device such alps alps A7 ,android 5.1
ObscuredSharedPreferences.java -> protected String encrypt(String value)

java.lang.RuntimeException: java.security.NoSuchAlgorithmException: No proviѤer found for PBEWithMD5AndDES

Deprecated code after Android M

Hi guys,

any plans to fix those deprecated methods?

KeyStoreKeyGenerator

  • 'isBoundKeyAlgorithm(java.lang.String)' is deprecated

SecretKeyWrapper

  • 'android.security.KeyPairGeneratorSpec' is deprecated
  • 'android.security.KeyPairGeneratorSpec' is deprecated
  • 'android.security.KeyPairGeneratorSpec.Builder' is deprecated

I'm just wondering what would be the best way to fix it.

Best,

SharedPreferencesListener

I have this code:

override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
        if (key == PrefsUserInfo.USER_BG_IMAGE_PATH) {
            // do something
        }
    }

And the returned key argument is encoded, so i cannot check for a specific shared preference key. Is this intended?

Won't work when user will change security code/schema...

Hello,

Nice library, but because of an Android behavior, this library as well as any implementation of the AndroidKeyStore API won't work for any user which will change his security schema/PIN code.

Link of the Android behavior: https://code.google.com/p/android/issues/detail?id=61989

On my LG D855 here the stack trace:

07-18 12:26:03.749  18552-18552/in.co.ophio.secure.sample E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: in.co.ophio.secure.sample, PID: 18552
    java.lang.RuntimeException: Unable to start activity ComponentInfo{in.co.ophio.secure.sample/in.co.ophio.secure.sample.view.MainActivity}: java.lang.IllegalStateException: java.security.InvalidKeyException: javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2367)
            at android.app.ActivityThread.access$800(ActivityThread.java:148)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5274)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
     Caused by: java.lang.IllegalStateException: java.security.InvalidKeyException: javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02
            at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init>(KeyStoreKeyGenerator.java:51)
            at in.co.ophio.secure.core.KeyStoreKeyGenerator.get(KeyStoreKeyGenerator.java:56)
            at in.co.ophio.secure.sample.module.AppModule.provideKeyGenerator(AppModule.java:36)
            at in.co.ophio.secure.sample.module.AppModule_ProvideKeyGeneratorFactory.get(AppModule_ProvideKeyGeneratorFactory.java:18)
            at in.co.ophio.secure.sample.module.AppModule_ProvideKeyGeneratorFactory.get(AppModule_ProvideKeyGeneratorFactory.java:7)
            at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
            at in.co.ophio.secure.sample.util.KeystoreAccountUtils_MembersInjector.injectMembers(KeystoreAccountUtils_MembersInjector.java:26)
            at in.co.ophio.secure.sample.util.KeystoreAccountUtils_MembersInjector.injectMembers(KeystoreAccountUtils_MembersInjector.java:9)
            at in.co.ophio.secure.sample.module.DaggerAppComponent.inject(DaggerAppComponent.java:66)
            at in.co.ophio.secure.sample.util.KeystoreAccountUtils.<init>(KeystoreAccountUtils.java:33)
            at in.co.ophio.secure.sample.module.AppModule.provideAccountUtils(AppModule.java:32)
            at in.co.ophio.secure.sample.module.AppModule_ProvideAccountUtilsFactory.get(AppModule_ProvideAccountUtilsFactory.java:18)
            at in.co.ophio.secure.sample.module.AppModule_ProvideAccountUtilsFactory.get(AppModule_ProvideAccountUtilsFactory.java:7)
            at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
            at in.co.ophio.secure.sample.view.MainActivity_MembersInjector.injectMembers(MainActivity_MembersInjector.java:27)
            at in.co.ophio.secure.sample.view.MainActivity_MembersInjector.injectMembers(MainActivity_MembersInjector.java:9)
            at in.co.ophio.secure.sample.module.DaggerAppComponent.inject(DaggerAppComponent.java:56)
            at in.co.ophio.secure.sample.view.MainActivity.onCreate(MainActivity.java:26)
            at android.app.Activity.performCreate(Activity.java:5977)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2367)
            at android.app.ActivityThread.access$800(ActivityThread.java:148)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5274)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
     Caused by: java.security.InvalidKeyException: javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02
            at com.android.org.conscrypt.OpenSSLCipherRSA.engineUnwrap(OpenSSLCipherRSA.java:340)
            at javax.crypto.Cipher.unwrap(Cipher.java:1545)
            at in.co.ophio.secure.vault.SecretKeyWrapper.unwrap(SecretKeyWrapper.java:112)
            at in.co.ophio.secure.core.KeyStoreKeyGenerator.loadOrGenerateKeys(KeyStoreKeyGenerator.java:78)
            at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init>(KeyStoreKeyGenerator.java:46)
            at in.co.ophio.secure.core.KeyStoreKeyGenerator.get(KeyStoreKeyGenerator.java:56)
            at in.co.ophio.secure.sample.module.AppModule.provideKeyGenerator(AppModule.java:36)
            at in.co.ophio.secure.sample.module.AppModule_ProvideKeyGeneratorFactory.get(AppModule_ProvideKeyGeneratorFactory.java:18)
            at in.co.ophio.secure.sample.module.AppModule_ProvideKeyGeneratorFactory.get(AppModule_ProvideKeyGeneratorFactory.java:7)
            at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
            at in.co.ophio.secure.sample.util.KeystoreAccountUtils_MembersInjector.injectMembers(KeystoreAccountUtils_MembersInjector.java:26)
            at in.co.ophio.secure.sample.util.KeystoreAccountUtils_MembersInjector.injectMembers(KeystoreAccountUtils_MembersInjector.java:9)
            at in.co.ophio.secure.sample.module.DaggerAppComponent.inject(DaggerAppComponent.java:66)
            at in.co.ophio.secure.sample.util.KeystoreAccountUtils.<init>(KeystoreAccountUtils.java:33)
            at in.co.ophio.secure.sample.module.AppModule.provideAccountUtils(AppModule.java:32)
            at in.co.ophio.secure.sample.module.AppModule_ProvideAccountUtilsFactory.get(AppModule_ProvideAccountUtilsFactory.java:18)
            at in.co.ophio.secure.sample.module.AppModule_ProvideAccountUtilsFactory.get(AppModule_ProvideAccountUtilsFactory.java:7)
            at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
            at in.co.ophio.secure.sample.view.MainActivity_MembersInjector.injectMembers(MainActivity_MembersInjector.java:27)
            at in.co.ophio.secure.sample.view.MainActivity_MembersInjector.injectMembers(MainActivity_MembersInjector.java:9)
            at in.co.ophio.secure.sample.module.DaggerAppComponent.inject(DaggerAppComponent.java:56)
            at in.co.ophio.secure.sample.view.MainActivity.onCreate(MainActivity.java:26)
            at android.app.Activity.performCreate(Activity.java:5977)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2367)
            at android.app.ActivityThread.access$800(ActivityThread.java:148)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5274)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
     Caused by: javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02
            at com.android.org.consc

This should be known, so I wrote that :)

W/KeyStore: KeyStore exception android.os.ServiceSpecificException:

Hello, i got this error when try to get secret key from key generator..
it happens when run on android Pie..
Anyone got the same problem? is there any update for this..?

W/KeyStore: KeyStore exception android.os.ServiceSpecificException: (code 7) at android.os.Parcel.createException(Parcel.java:1964) at android.os.Parcel.readException(Parcel.java:1918) at android.os.Parcel.readException(Parcel.java:1868) at android.security.IKeystoreService$Stub$Proxy.get(IKeystoreService.java:786) at android.security.KeyStore.get(KeyStore.java:195) at android.security.keystore.AndroidKeyStoreSpi.engineGetCertificateChain(AndroidKeyStoreSpi.java:118) at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:484) at java.security.KeyStore.getEntry(KeyStore.java:1560) at in.co.ophio.secure.vault.SecretKeyWrapper.<init>(SecretKeyWrapper.java:66) at in.co.ophio.secure.core.KeyStoreKeyGenerator.loadOrGenerateKeys(KeyStoreKeyGenerator.java:66) at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init>(KeyStoreKeyGenerator.java:46) at in.co.ophio.secure.core.KeyStoreKeyGenerator.get(KeyStoreKeyGenerator.java:56)

Exception in Application Class while Starting the Application

20 mar 12:46 sulla versione dell'app 27
Huawei P8 Lite (hwALE-H), 2048MB RAM, Android 6.0
Rapporto 1 di 1
java.lang.RuntimeException:
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4843)
at android.app.ActivityThread.access$1600 (ActivityThread.java:168)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1440)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:150)
at android.app.ActivityThread.main (ActivityThread.java:5659)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:822)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:712)
Caused by: java.lang.IllegalStateException:
at in.co.ophio.secure.core.KeyStoreKeyGenerator. (KeyStoreKeyGenerator.java:51)
at in.co.ophio.secure.core.KeyStoreKeyGenerator.get (KeyStoreKeyGenerator.java:56)
at com.bananasrl.banana.Utils.App.onCreate (App.java:107)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1015)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4834)
Caused by: java.security.InvalidKeyException:
at android.security.KeyStore.getInvalidKeyException (KeyStore.java:700)
at android.security.KeyStore.getInvalidKeyException (KeyStore.java:720)
at android.security.keystore.KeyStoreCryptoOperationUtils.getInvalidKeyExceptionForInit (KeyStoreCryptoOperationUtils.java:53)
at android.security.keystore.KeyStoreCryptoOperationUtils.getExceptionForCipherInit (KeyStoreCryptoOperationUtils.java:89)
at android.security.keystore.AndroidKeyStoreCipherSpiBase.ensureKeystoreOperationInitialized (AndroidKeyStoreCipherSpiBase.java:263)
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineInit (AndroidKeyStoreCipherSpiBase.java:108)
at javax.crypto.Cipher.tryTransformWithProvider (Cipher.java:615)
at javax.crypto.Cipher.tryCombinations (Cipher.java:535)
at javax.crypto.Cipher.getSpi (Cipher.java:440)
at javax.crypto.Cipher.init (Cipher.java:818)
at javax.crypto.Cipher.init (Cipher.java:777)
at in.co.ophio.secure.vault.SecretKeyWrapper.unwrap (SecretKeyWrapper.java:111)
at in.co.ophio.secure.core.KeyStoreKeyGenerator.loadOrGenerateKeys (KeyStoreKeyGenerator.java:78)
at in.co.ophio.secure.core.KeyStoreKeyGenerator. (KeyStoreKeyGenerator.java:46)
Caused by: android.security.KeyStoreException:
at android.security.KeyStore.getKeyStoreException (KeyStore.java:640)

How to achieve this problem?

Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.