crypto: Prepare the verification service to allow starting short SAS flows

This commit is contained in:
Damir Jelić 2021-06-29 11:12:41 +02:00
parent 304c89a56d
commit bcfb121215

View file

@ -248,22 +248,29 @@ constructor(
otherDeviceId: String, otherDeviceId: String,
transactionId: String? transactionId: String?
): String? { ): String? {
val flowId = transactionId ?: return null
// should check if already one (and cancel it) // should check if already one (and cancel it)
return if (method == VerificationMethod.SAS) { return if (method == VerificationMethod.SAS) {
val request = this.getVerificationRequest(otherUserId, flowId) val request = transactionId?.let { this.getVerificationRequest(otherUserId, it) }
runBlocking { if (request != null) {
val sas = request?.startSasVerification() runBlocking {
val sas = request.startSasVerification()
if (sas != null) { if (sas != null) {
val sasTransaction = SasVerification(olmMachine.inner(), sas, requestSender, listeners) val sasTransaction = SasVerification(olmMachine.inner(), sas, requestSender, listeners)
dispatchTxAdded(sasTransaction) dispatchTxAdded(sasTransaction)
sasTransaction.transactionId sasTransaction.transactionId
} else { } else {
null null
}
} }
} else {
// This should start the short SAS flow, the one that doesn't start with
// a `m.key.verification.request`, Element web stopped doing this, might
// be wise do do so as well
// DeviceListBottomSheetViewModel triggers this, interestingly the method that
// triggers this is called `manuallyVerify()`
TODO()
} }
} else { } else {
throw IllegalArgumentException("Unknown verification method") throw IllegalArgumentException("Unknown verification method")