mogol / flutter_secure_storage

A Flutter plugin to store data in secure storage
https://pub.dartlang.org/packages/flutter_secure_storage
BSD 3-Clause "New" or "Revised" License
1.09k stars 340 forks source link

StorageCipher initialization failed cause by AndroidKeyStore not found #713

Open Dabbit-Chan opened 1 month ago

Dabbit-Chan commented 1 month ago
E/SecureStorageAndroid(17759): StorageCipher initialization failed
E/SecureStorageAndroid(17759): java.security.KeyStoreException: AndroidKeyStore not found
E/SecureStorageAndroid(17759):  at java.security.KeyStore.getInstance(KeyStore.java:904)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.ciphers.RSACipher18Implementation.createRSAKeysIfNeeded(RSACipher18Implementation.java:107)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.ciphers.RSACipher18Implementation.<init>(RSACipher18Implementation.java:36)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.ciphers.KeyCipherAlgorithm$$ExternalSyntheticLambda0.apply(Unknown Source:2)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.ciphers.StorageCipherFactory.getCurrentStorageCipher(StorageCipherFactory.java:82)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.initStorageCipher(FlutterSecureStorage.java:181)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.ensureInitialized(FlutterSecureStorage.java:154)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.write(FlutterSecureStorage.java:102)
E/SecureStorageAndroid(17759):  at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin$MethodRunner.run(FlutterSecureStoragePlugin.java:139)
E/SecureStorageAndroid(17759):  at android.os.Handler.handleCallback(Handler.java:958)
E/SecureStorageAndroid(17759):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/SecureStorageAndroid(17759):  at android.os.Looper.loopOnce(Looper.java:224)
E/SecureStorageAndroid(17759):  at android.os.Looper.loop(Looper.java:318)
E/SecureStorageAndroid(17759):  at android.os.HandlerThread.run(HandlerThread.java:67)
E/SecureStorageAndroid(17759): Caused by: java.security.NoSuchAlgorithmException: AndroidKeyStore KeyStore not available
E/SecureStorageAndroid(17759):  at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
E/SecureStorageAndroid(17759):  at java.security.Security.getImpl(Security.java:628)
E/SecureStorageAndroid(17759):  at java.security.KeyStore.getInstance(KeyStore.java:901)
E/SecureStorageAndroid(17759):  ... 13 more
E/flutter (17759): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(Exception encountered, write, java.lang.NullPointerException: Attempt to invoke interface method 'byte[] com.it_nomads.fluttersecurestorage.ciphers.StorageCipher.encrypt(byte[])' on a null object reference
E/flutter (17759):  at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.write(FlutterSecureStorage.java:109)
E/flutter (17759):  at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin$MethodRunner.run(FlutterSecureStoragePlugin.java:139)
E/flutter (17759):  at android.os.Handler.handleCallback(Handler.java:958)
E/flutter (17759):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/flutter (17759):  at android.os.Looper.loopOnce(Looper.java:224)
E/flutter (17759):  at android.os.Looper.loop(Looper.java:318)
E/flutter (17759):  at android.os.HandlerThread.run(HandlerThread.java:67)
E/flutter (17759): , null)
E/flutter (17759): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
E/flutter (17759): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): #2      SpUtil._set (package:***/utils/sp_util.dart:20:12)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): #3      SpUtil.setBool (package:***/utils/sp_util.dart:68:12)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): #4      _TutorialPageState.build.<anonymous closure> (package:***/module/tutorial/tutorial_page.dart:23:13)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): 

Version:

flutter_secure_storage: 9.0.0
flutter: 3.19.6
dart: 3.3.4
OS: Xiaomi HyperOS 1.0.31.0.UNCCNXM base on Android14
Phone: xiaomi14
Jayden666z commented 1 month ago

same problem

jeyolive commented 1 week ago
E/SecureStorageAndroid(17759): StorageCipher initialization failed
E/SecureStorageAndroid(17759): java.security.KeyStoreException: AndroidKeyStore not found
E/SecureStorageAndroid(17759):    at java.security.KeyStore.getInstance(KeyStore.java:904)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.ciphers.RSACipher18Implementation.createRSAKeysIfNeeded(RSACipher18Implementation.java:107)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.ciphers.RSACipher18Implementation.<init>(RSACipher18Implementation.java:36)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.ciphers.KeyCipherAlgorithm$$ExternalSyntheticLambda0.apply(Unknown Source:2)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.ciphers.StorageCipherFactory.getCurrentStorageCipher(StorageCipherFactory.java:82)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.initStorageCipher(FlutterSecureStorage.java:181)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.ensureInitialized(FlutterSecureStorage.java:154)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.write(FlutterSecureStorage.java:102)
E/SecureStorageAndroid(17759):    at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin$MethodRunner.run(FlutterSecureStoragePlugin.java:139)
E/SecureStorageAndroid(17759):    at android.os.Handler.handleCallback(Handler.java:958)
E/SecureStorageAndroid(17759):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/SecureStorageAndroid(17759):    at android.os.Looper.loopOnce(Looper.java:224)
E/SecureStorageAndroid(17759):    at android.os.Looper.loop(Looper.java:318)
E/SecureStorageAndroid(17759):    at android.os.HandlerThread.run(HandlerThread.java:67)
E/SecureStorageAndroid(17759): Caused by: java.security.NoSuchAlgorithmException: AndroidKeyStore KeyStore not available
E/SecureStorageAndroid(17759):    at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
E/SecureStorageAndroid(17759):    at java.security.Security.getImpl(Security.java:628)
E/SecureStorageAndroid(17759):    at java.security.KeyStore.getInstance(KeyStore.java:901)
E/SecureStorageAndroid(17759):    ... 13 more
E/flutter (17759): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(Exception encountered, write, java.lang.NullPointerException: Attempt to invoke interface method 'byte[] com.it_nomads.fluttersecurestorage.ciphers.StorageCipher.encrypt(byte[])' on a null object reference
E/flutter (17759):    at com.it_nomads.fluttersecurestorage.FlutterSecureStorage.write(FlutterSecureStorage.java:109)
E/flutter (17759):    at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin$MethodRunner.run(FlutterSecureStoragePlugin.java:139)
E/flutter (17759):    at android.os.Handler.handleCallback(Handler.java:958)
E/flutter (17759):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/flutter (17759):    at android.os.Looper.loopOnce(Looper.java:224)
E/flutter (17759):    at android.os.Looper.loop(Looper.java:318)
E/flutter (17759):    at android.os.HandlerThread.run(HandlerThread.java:67)
E/flutter (17759): , null)
E/flutter (17759): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
E/flutter (17759): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): #2      SpUtil._set (package:***/utils/sp_util.dart:20:12)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): #3      SpUtil.setBool (package:***/utils/sp_util.dart:68:12)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): #4      _TutorialPageState.build.<anonymous closure> (package:***/module/tutorial/tutorial_page.dart:23:13)
E/flutter (17759): <asynchronous suspension>
E/flutter (17759): 

Version:

flutter_secure_storage: 9.0.0
flutter: 3.19.6
dart: 3.3.4
OS: Xiaomi HyperOS 1.0.31.0.UNCCNXM base on Android14
Phone: xiaomi14

upgrade your application versionCode and try