Ask the number of OTK if unknown from the sync.
This commit is contained in:
parent
952a0f7c07
commit
05988107a7
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.matrix.android.sdk.internal.crypto
|
package org.matrix.android.sdk.internal.crypto
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.internal.crypto.model.MXKey
|
import org.matrix.android.sdk.internal.crypto.model.MXKey
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysUploadResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysUploadResponse
|
||||||
import org.matrix.android.sdk.internal.crypto.tasks.UploadKeysTask
|
import org.matrix.android.sdk.internal.crypto.tasks.UploadKeysTask
|
||||||
@ -77,6 +78,10 @@ internal class OneTimeKeysUploader @Inject constructor(
|
|||||||
// discard the oldest private keys first. This will eventually clean
|
// discard the oldest private keys first. This will eventually clean
|
||||||
// out stale private keys that won't receive a message.
|
// out stale private keys that won't receive a message.
|
||||||
val keyLimit = floor(maxOneTimeKeys / 2.0).toInt()
|
val keyLimit = floor(maxOneTimeKeys / 2.0).toInt()
|
||||||
|
if (oneTimeKeyCount == null) {
|
||||||
|
// Ask the server how many otk he has
|
||||||
|
oneTimeKeyCount = fetchOtkNumber()
|
||||||
|
}
|
||||||
val oneTimeKeyCountFromSync = oneTimeKeyCount
|
val oneTimeKeyCountFromSync = oneTimeKeyCount
|
||||||
if (oneTimeKeyCountFromSync != null) {
|
if (oneTimeKeyCountFromSync != null) {
|
||||||
// We need to keep a pool of one time public keys on the server so that
|
// We need to keep a pool of one time public keys on the server so that
|
||||||
@ -103,6 +108,13 @@ internal class OneTimeKeysUploader @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private suspend fun fetchOtkNumber(): Int? {
|
||||||
|
return tryOrNull {
|
||||||
|
val result = uploadKeysTask.execute(UploadKeysTask.Params(null, null))
|
||||||
|
result.oneTimeKeyCountsForAlgorithm(MXKey.KEY_SIGNED_CURVE_25519_TYPE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Upload some the OTKs.
|
* Upload some the OTKs.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user