crypto: Enable the use of unsigned ints for now and update the bindings wrapper
This commit is contained in:
parent
628f530633
commit
f01e2460e1
|
@ -70,6 +70,7 @@ allprojects {
|
|||
// Warnings are potential errors, so stop ignoring them
|
||||
// You can override by passing `-PallWarningsAsErrors=false` in the command line
|
||||
kotlinOptions.allWarningsAsErrors = project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
|
||||
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.ExperimentalUnsignedTypes"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -84,6 +84,7 @@ import org.matrix.android.sdk.internal.crypto.tasks.UploadKeysTask
|
|||
import org.matrix.android.sdk.internal.crypto.verification.DefaultVerificationService
|
||||
import org.matrix.android.sdk.internal.di.DeviceId
|
||||
import org.matrix.android.sdk.internal.di.MoshiProvider
|
||||
import org.matrix.android.sdk.internal.di.SessionFilesDirectory
|
||||
import org.matrix.android.sdk.internal.di.UserId
|
||||
import org.matrix.android.sdk.internal.extensions.foldToCallback
|
||||
import org.matrix.android.sdk.internal.session.SessionScope
|
||||
|
@ -97,6 +98,7 @@ import org.matrix.android.sdk.internal.util.JsonCanonicalizer
|
|||
import org.matrix.android.sdk.internal.util.MatrixCoroutineDispatchers
|
||||
import org.matrix.olm.OlmManager
|
||||
import timber.log.Timber
|
||||
import java.io.File
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import javax.inject.Inject
|
||||
import kotlin.jvm.Throws
|
||||
|
@ -120,6 +122,8 @@ internal class DefaultCryptoService @Inject constructor(
|
|||
private val userId: String,
|
||||
@DeviceId
|
||||
private val deviceId: String?,
|
||||
@SessionFilesDirectory
|
||||
private val dataDir: File,
|
||||
private val myDeviceInfoHolder: Lazy<MyDeviceInfoHolder>,
|
||||
// the crypto store
|
||||
private val cryptoStore: IMXCryptoStore,
|
||||
|
@ -171,6 +175,7 @@ internal class DefaultCryptoService @Inject constructor(
|
|||
|
||||
private val isStarting = AtomicBoolean(false)
|
||||
private val isStarted = AtomicBoolean(false)
|
||||
private var olmMachine: OlmMachine? = null
|
||||
|
||||
fun onStateEvent(roomId: String, event: Event) {
|
||||
when (event.getClearType()) {
|
||||
|
@ -310,7 +315,7 @@ internal class DefaultCryptoService @Inject constructor(
|
|||
* devices.
|
||||
*
|
||||
*/
|
||||
fun start() {
|
||||
suspend fun start() {
|
||||
cryptoCoroutineScope.launch(coroutineDispatchers.crypto) {
|
||||
internalStart()
|
||||
}
|
||||
|
@ -363,14 +368,14 @@ internal class DefaultCryptoService @Inject constructor(
|
|||
return
|
||||
}
|
||||
isStarting.set(true)
|
||||
Timber.v("HELLLO WORLD STARTING CRYPTO")
|
||||
|
||||
try {
|
||||
val dataDir = "/data/data/im.vector.app.debug/files"
|
||||
val olmMachine = OlmMachine("@example:localhost", "DEVICEID", dataDir)
|
||||
Timber.v("HELLLO WORLD STARTING CRYPTO ${olmMachine.identityKeys()}")
|
||||
olmMachine = OlmMachine(userId, deviceId!!, dataDir)
|
||||
Timber.v("HELLLO WORLD STARTING CRYPTO ${olmMachine?.identityKeys()}")
|
||||
} catch (throwable: Throwable) {
|
||||
Timber.v("HELLLO WORLD FAILED CRYPTO $throwable")
|
||||
}
|
||||
Timber.v("HELLLO WORLD STARTING CRYPTO")
|
||||
|
||||
// Open the store
|
||||
cryptoStore.open()
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
package org.matrix.android.sdk.internal
|
||||
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
import uniffi.olm.OlmMachine as InnerMachine
|
||||
import kotlinx.coroutines.withContext
|
||||
import uniffi.olm.Device as InnerDevice
|
||||
import uniffi.olm.OlmMachine as InnerMachine
|
||||
import uniffi.olm.Sas as InnerSas
|
||||
|
||||
class Device(inner: InnerDevice, machine: InnerMachine) {
|
||||
|
@ -44,8 +44,8 @@ class Device(inner: InnerDevice, machine: InnerMachine) {
|
|||
}
|
||||
}
|
||||
|
||||
class OlmMachine(user_id: String, device_id: String, path: String) {
|
||||
private val inner: InnerMachine = InnerMachine(user_id, device_id, path)
|
||||
class OlmMachine(user_id: String, device_id: String, path: File) {
|
||||
private val inner: InnerMachine = InnerMachine(user_id, device_id, path.toString())
|
||||
|
||||
fun userId(): String {
|
||||
return this.inner.userId()
|
||||
|
@ -59,10 +59,6 @@ class OlmMachine(user_id: String, device_id: String, path: String) {
|
|||
return this.inner.identityKeys()
|
||||
}
|
||||
|
||||
suspend fun slowUserId(): String = withContext(Dispatchers.Default) {
|
||||
inner.slowUserId()
|
||||
}
|
||||
|
||||
suspend fun getDevice(user_id: String, device_id: String): Device? = withContext(Dispatchers.IO) {
|
||||
when (val device: InnerDevice? = inner.getDevice(user_id, device_id)) {
|
||||
null -> null
|
||||
|
|
Loading…
Reference in New Issue