android एंड्रॉइड कीस्टोर एक्सपैशन:



encryption android-fingerprint-api (0)

मेरा ऐप फिंगरप्रिंट से प्रमाणित होने के बाद कुछ डेटा एन्क्रिप्ट करने के लिए एंड्रॉइड की कीस्टोर का उपयोग कर रहा है यह अधिकांश उपकरणों पर काम करने लगता है लेकिन मुझे अपवाद के साथ OnePlus2 उपयोगकर्ताओं की त्रुटि रिपोर्ट प्राप्त हुई हैं

android.security.KeyStoreException: Signature/MAC verification failed
    at android.security.KeyStore.getKeyStoreException(KeyStore.java:632)
    at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.update(KeyStoreCryptoOperationChunkedStreamer.java:132)
    at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:217)
    at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:473)
    at javax.crypto.Cipher.doFinal(Cipher.java:1502)

मेरा कोड मूल रूप से यह (एंड्रॉइड के लिए मोनो में लिखित) करता है:

Cipher _cipher = Cipher.GetInstance(KeyProperties.KeyAlgorithmAes + "/"
                                              + KeyProperties.BlockModeCbc + "/"
                                              + KeyProperties.EncryptionPaddingPkcs7);

KeyStore _keystore = KeyStore.GetInstance("AndroidKeyStore");
FingerprintManager _fingerprintManager = (FingerprintManager) Context.GetSystemService(Context.FingerprintService);

_keystore.Load(null);
var key = _keystore.GetKey(_keyId, null);
_cipher.Init(CipherMode.EncryptMode, key);
_cryptoObject = new FingerprintManager.CryptoObject(_cipher);
_fingerprintManager.Authenticate(_cryptoObject, _cancellationSignal, 0 /* flags */, this, null);

//OnAuthSucceeded:
var mySecret = _cipher.DoFinal(System.Text.Encoding.UTF8.GetBytes(textToEncrypt));

क्या कोड के साथ कुछ गलत है? अपवाद क्या मतलब है?





android-fingerprint-api