Skip to content

Caused by android.security.KeyStoreException: Memory allocation failed (internal Keystore code: -41 message: In KeystoreOperation::update #882

@pedrotrabulo-hw

Description

@pedrotrabulo-hw

Hi,

I have recently noticed that after migrating from SDK version 3.5.4 to 3.5.6 the following crash started to happen whenever we attempt to set the email upon application startup using the method IterableApi.setEmail.

The crash is affecting users with

  • Android 13
  • Android 14

Here is the stack trace:

Caused by T0.c: javax.crypto.IllegalBlockSizeException
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:138)
       at androidx.startup.AppInitializer.initializeComponent(AppInitializer.java:117)
       ...
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7257)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2292)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:240)
       at android.os.Looper.loop(Looper.java:351)
       at android.app.ActivityThread.main(ActivityThread.java:8423)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

Caused by javax.crypto.IllegalBlockSizeException:
       at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:613)
       at javax.crypto.Cipher.doFinal(Cipher.java:2074)
       at com.iterable.iterableapi.IterableDataEncryptor.encryptModern(IterableDataEncryptor.kt:195)
       at com.iterable.iterableapi.IterableDataEncryptor.encrypt(IterableDataEncryptor.kt:131)
       at com.iterable.iterableapi.IterableKeychain.secureSave(IterableKeychain.kt:87)
       at com.iterable.iterableapi.IterableKeychain.saveEmail(IterableKeychain.kt:92)
       at com.iterable.iterableapi.IterableApi.storeAuthData(IterableApi.java:435)
       at com.iterable.iterableapi.IterableApi.setEmail(IterableApi.java:741)
       at com.iterable.iterableapi.IterableApi.setEmail(IterableApi.java:713)
       ...
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:138)
       at androidx.startup.AppInitializer.initializeComponent(AppInitializer.java:117)
       ...
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7257)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2292)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:240)
       at android.os.Looper.loop(Looper.java:351)
       at android.app.ActivityThread.main(ActivityThread.java:8423)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

Caused by android.security.KeyStoreException: Memory allocation failed (internal Keystore code: -41 message: In KeystoreOperation::update

Caused by:
    0: In update: KeyMint::update failed.
    1: Error::Km(ErrorCode(-41)))
       at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:369)
       at android.security.KeyStoreOperation.handleExceptions(KeyStoreOperation.java:78)
       at android.security.KeyStoreOperation.update(KeyStoreOperation.java:115)
       at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer$MainDataStream.update(KeyStoreCryptoOperationChunkedStreamer.java:222)
       at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer.update(KeyStoreCryptoOperationChunkedStreamer.java:156)
       at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:179)
       at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:603)
       at javax.crypto.Cipher.doFinal(Cipher.java:2074)
       at com.iterable.iterableapi.IterableDataEncryptor.encryptModern(IterableDataEncryptor.kt:195)
       at com.iterable.iterableapi.IterableDataEncryptor.encrypt(IterableDataEncryptor.kt:131)
       at com.iterable.iterableapi.IterableKeychain.secureSave(IterableKeychain.kt:87)
       at com.iterable.iterableapi.IterableKeychain.saveEmail(IterableKeychain.kt:92)
       at com.iterable.iterableapi.IterableApi.storeAuthData(IterableApi.java:435)
       at com.iterable.iterableapi.IterableApi.setEmail(IterableApi.java:741)
       at com.iterable.iterableapi.IterableApi.setEmail(IterableApi.java:713)
       ...
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:138)
       at androidx.startup.AppInitializer.initializeComponent(AppInitializer.java:117)
       ...
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7257)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2292)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:240)
       at android.os.Looper.loop(Looper.java:351)
       at android.app.ActivityThread.main(ActivityThread.java:8423)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

Can someone please help me out with this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions