Код: Выделить всё
06-16 23:04:22.981 10822 10973 I python : Save failed: Invalid instance of 'javax/crypto/SecretKey' passed for a 'java/security/cert/Certificate'
< /code>
вот полный код: < /p>
android_secure_store.py
from jnius import autoclass, cast
import base64
import json
from kivy.storage.jsonstore import JsonStore
# Android & Java classes
KeyStore = autoclass("java.security.KeyStore")
KeyGenerator = autoclass("javax.crypto.KeyGenerator")
Cipher = autoclass("javax.crypto.Cipher")
GCMParameterSpec = autoclass("javax.crypto.spec.GCMParameterSpec")
KeyGenParameterSpecBuilder = autoclass("android.security.keystore.KeyGenParameterSpec$Builder")
KeyProperties = autoclass("android.security.keystore.KeyProperties")
PythonActivity = autoclass("org.kivy.android.PythonActivity")
# Constants
KEY_ALIAS = "KivyAppSecretKey"
TRANSFORMATION = "AES/GCM/NoPadding"
STORE_FILE = "secure_store.json"
class AndroidSecureStore:
def __init__(self):
self.context = PythonActivity.mActivity
self.store = JsonStore(STORE_FILE)
self.keystore = KeyStore.getInstance("AndroidKeyStore")
self.keystore.load(None)
if not self.keystore.containsAlias(KEY_ALIAS):
self._generate_key()
def _generate_key(self): ##
Подробнее здесь: [url]https://stackoverflow.com/questions/79668564/cipher-init-with-a-valid-key-from-android-keystore-throws-error-of-save-failed[/url]