createEncryptedDriver

actual fun createEncryptedDriver(databaseName: String, encryptionKey: DatabaseEncryptionKey, isDeviceLocal: Boolean, walletId: String): SqlDriver

Creates a SQLCipher-backed Android driver for databaseName.

Parameters

databaseName

Base database name. Platform implementations add the expected file extension.

encryptionKey

Raw database key used by SQLCipher.

isDeviceLocal

Stores the database under Android's no-backup directory when true.

walletId

Wallet identifier used in typed persistence errors.

expect fun createEncryptedDriver(databaseName: String, encryptionKey: DatabaseEncryptionKey, isDeviceLocal: Boolean = true, walletId: String = databaseName): SqlDriver

Creates an encrypted SQLDelight driver for the named wallet database.

Parameters

databaseName

Base database name. Platform implementations add the expected file extension.

encryptionKey

Raw database key used by SQLCipher.

isDeviceLocal

Whether SDK-managed persistence should use device-local backup semantics.

walletId

Wallet identifier used in typed persistence errors.

actual fun createEncryptedDriver(databaseName: String, encryptionKey: DatabaseEncryptionKey, isDeviceLocal: Boolean, walletId: String): SqlDriver

Creates a SQLCipher-backed native driver for databaseName.

The connection uses SQLite's rollback journal. The native driver would otherwise enable WAL, which locks the -shm file until every connection closes. iOS then terminates the suspended app with 0xdead10cc so the Identity Document extension cannot deadlock on that shared App Group file.

Parameters

encryptionKey

Raw database key used by SQLCipher.

isDeviceLocal

Reserved for platform parity; iOS database-key locality is controlled by Keychain attributes.

walletId

Wallet identifier used in typed persistence errors.