Skip to content

Getting OOM on encryptShared method in android SDK #69

@tizisdeepan

Description

@tizisdeepan

When trying to encrypt multiple files that are fairly large - around 60MB each, the SDK returns an OOM

2023-12-11T06:43:34.658000+00:00 global.spectrum.connect: 6576:21388 W/System.err: java.lang.OutOfMemoryError: Failed to allocate a 92143632 byte allocation with 24744056 free bytes and 23MB until OOM, target footprint 268435456, growth limit 268435456
2023-12-11T06:43:34.658000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at java.util.Arrays.copyOf(Arrays.java:3578)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.android.common.worker.StreamsEncryptWorker.encryptShared$ethree_common_release(StreamsEncryptWorker.kt:48)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.android.common.EThreeCore.encryptShared(EThreeCore.kt:20)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at z3.g.i(FileEncryption.kt:109)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:120)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:95)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:156)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at java.io.OutputStream.write(OutputStream.java:127)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21438 I/Card: Signature 'self' has no additional data
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.sdk.crypto.VirgilCrypto.processEncryption(VirgilCrypto.java:21)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.sdk.crypto.VirgilCrypto.encrypt(VirgilCrypto.java:24)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.sdk.crypto.VirgilCrypto.authEncrypt(VirgilCrypto.java:8)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.sdk.crypto.VirgilCrypto.authEncrypt(VirgilCrypto.java:5)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.android.common.worker.StreamsEncryptWorker.encryptShared$ethree_common_release(StreamsEncryptWorker.kt:48)
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21438 I/Card: Signature 'virgil' has no additional data
2023-12-11T06:43:34.659000+00:00 global.spectrum.connect: 6576:21388 W/System.err: at com.virgilsecurity.android.common.EThreeCore.encryptShared(EThreeCore.kt:20)

Please let me know if there is a workaround for this, thanks

Additional information,

SDK in use: com.virgilsecurity:ethree:2.0.10
Android OS: 13
Model: Google Pixel 4a

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions