Create asValidObject method - make it compiles #2
This commit is contained in:
parent
a3f8a53a52
commit
e326631752
|
@ -24,7 +24,7 @@ import im.vector.matrix.android.common.CommonTestHelper
|
||||||
import im.vector.matrix.android.common.CryptoTestHelper
|
import im.vector.matrix.android.common.CryptoTestHelper
|
||||||
import im.vector.matrix.android.common.TestConstants
|
import im.vector.matrix.android.common.TestConstants
|
||||||
import im.vector.matrix.android.internal.crypto.model.rest.UserPasswordAuth
|
import im.vector.matrix.android.internal.crypto.model.rest.UserPasswordAuth
|
||||||
import im.vector.matrix.android.internal.crypto.verification.PendingVerificationRequest
|
import im.vector.matrix.android.api.session.crypto.verification.PendingVerificationRequest
|
||||||
import org.amshove.kluent.shouldBe
|
import org.amshove.kluent.shouldBe
|
||||||
import org.junit.FixMethodOrder
|
import org.junit.FixMethodOrder
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
|
@ -13,10 +13,9 @@
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package im.vector.matrix.android.internal.crypto.verification
|
package im.vector.matrix.android.api.session.crypto.verification
|
||||||
|
|
||||||
import im.vector.matrix.android.api.extensions.orFalse
|
import im.vector.matrix.android.api.extensions.orFalse
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
|
||||||
import im.vector.matrix.android.internal.crypto.model.rest.VERIFICATION_METHOD_QR_CODE_SCAN
|
import im.vector.matrix.android.internal.crypto.model.rest.VERIFICATION_METHOD_QR_CODE_SCAN
|
||||||
import im.vector.matrix.android.internal.crypto.model.rest.VERIFICATION_METHOD_QR_CODE_SHOW
|
import im.vector.matrix.android.internal.crypto.model.rest.VERIFICATION_METHOD_QR_CODE_SHOW
|
||||||
import im.vector.matrix.android.internal.crypto.model.rest.VERIFICATION_METHOD_SAS
|
import im.vector.matrix.android.internal.crypto.model.rest.VERIFICATION_METHOD_SAS
|
||||||
|
@ -24,7 +23,6 @@ import java.util.UUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores current pending verification requests
|
* Stores current pending verification requests
|
||||||
* TODO We should not expose this whole object to the app. Create an interface
|
|
||||||
*/
|
*/
|
||||||
data class PendingVerificationRequest(
|
data class PendingVerificationRequest(
|
||||||
val ageLocalTs: Long,
|
val ageLocalTs: Long,
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.matrix.android.api.session.crypto.verification
|
||||||
|
|
||||||
|
data class ValidVerificationInfoReady(
|
||||||
|
val transactionID: String,
|
||||||
|
val fromDevice: String,
|
||||||
|
val methods: List<String>
|
||||||
|
)
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.matrix.android.api.session.crypto.verification
|
||||||
|
|
||||||
|
data class ValidVerificationInfoRequest(
|
||||||
|
val transactionID: String,
|
||||||
|
val fromDevice: String,
|
||||||
|
val methods: List<String>,
|
||||||
|
val timestamp: Long?
|
||||||
|
)
|
|
@ -18,7 +18,6 @@ package im.vector.matrix.android.api.session.crypto.verification
|
||||||
|
|
||||||
import im.vector.matrix.android.api.MatrixCallback
|
import im.vector.matrix.android.api.MatrixCallback
|
||||||
import im.vector.matrix.android.api.session.events.model.LocalEcho
|
import im.vector.matrix.android.api.session.events.model.LocalEcho
|
||||||
import im.vector.matrix.android.internal.crypto.verification.PendingVerificationRequest
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* https://matrix.org/docs/spec/client_server/r0.5.0#key-verification-framework
|
* https://matrix.org/docs/spec/client_server/r0.5.0#key-verification-framework
|
||||||
|
|
|
@ -26,7 +26,7 @@ import im.vector.matrix.android.internal.util.JsonCanonicalizer
|
||||||
@JsonClass(generateAdapter = true)
|
@JsonClass(generateAdapter = true)
|
||||||
internal data class KeyVerificationStart(
|
internal data class KeyVerificationStart(
|
||||||
@Json(name = "from_device") override val fromDevice: String? = null,
|
@Json(name = "from_device") override val fromDevice: String? = null,
|
||||||
override val method: String? = null,
|
@Json(name = "method") override val method: String? = null,
|
||||||
@Json(name = "transaction_id") override val transactionID: String? = null,
|
@Json(name = "transaction_id") override val transactionID: String? = null,
|
||||||
@Json(name = "key_agreement_protocols") override val keyAgreementProtocols: List<String>? = null,
|
@Json(name = "key_agreement_protocols") override val keyAgreementProtocols: List<String>? = null,
|
||||||
@Json(name = "hashes") override val hashes: List<String>? = null,
|
@Json(name = "hashes") override val hashes: List<String>? = null,
|
||||||
|
|
|
@ -213,7 +213,7 @@ internal class DefaultIncomingSASDefaultVerificationTransaction(
|
||||||
state = VerificationTxState.ShortCodeReady
|
state = VerificationTxState.ShortCodeReady
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyVerificationMac(vKey: ValidVerificationInfoMac) {
|
override fun onKeyVerificationMac(vMac: ValidVerificationInfoMac) {
|
||||||
Timber.v("## SAS I: received mac for request id:$transactionId")
|
Timber.v("## SAS I: received mac for request id:$transactionId")
|
||||||
// Check for state?
|
// Check for state?
|
||||||
if (state != VerificationTxState.SendingKey
|
if (state != VerificationTxState.SendingKey
|
||||||
|
@ -226,7 +226,7 @@ internal class DefaultIncomingSASDefaultVerificationTransaction(
|
||||||
cancel(CancelCode.UnexpectedMessage)
|
cancel(CancelCode.UnexpectedMessage)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
theirMac = vKey
|
theirMac = vMac
|
||||||
|
|
||||||
// Do I have my Mac?
|
// Do I have my Mac?
|
||||||
if (myMac != null) {
|
if (myMac != null) {
|
||||||
|
|
|
@ -94,7 +94,7 @@ internal class DefaultOutgoingSASDefaultVerificationTransaction(
|
||||||
KNOWN_MACS,
|
KNOWN_MACS,
|
||||||
KNOWN_SHORT_CODES
|
KNOWN_SHORT_CODES
|
||||||
)
|
)
|
||||||
kk
|
|
||||||
startReq = startMessage.asValidObject() as? ValidVerificationInfoStart.SasVerificationInfoStart
|
startReq = startMessage.asValidObject() as? ValidVerificationInfoStart.SasVerificationInfoStart
|
||||||
state = VerificationTxState.SendingStart
|
state = VerificationTxState.SendingStart
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ kk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyVerificationMac(vKey: ValidVerificationInfoMac) {
|
override fun onKeyVerificationMac(vMac: ValidVerificationInfoMac) {
|
||||||
Timber.v("## SAS O: onKeyVerificationMac id:$transactionId")
|
Timber.v("## SAS O: onKeyVerificationMac id:$transactionId")
|
||||||
if (state != VerificationTxState.OnKeyReceived
|
if (state != VerificationTxState.OnKeyReceived
|
||||||
&& state != VerificationTxState.ShortCodeReady
|
&& state != VerificationTxState.ShortCodeReady
|
||||||
|
@ -218,7 +218,7 @@ kk
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
theirMac = vKey
|
theirMac = vMac
|
||||||
|
|
||||||
// Do I have my Mac?
|
// Do I have my Mac?
|
||||||
if (myMac != null) {
|
if (myMac != null) {
|
||||||
|
|
|
@ -20,6 +20,8 @@ import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import dagger.Lazy
|
import dagger.Lazy
|
||||||
import im.vector.matrix.android.api.MatrixCallback
|
import im.vector.matrix.android.api.MatrixCallback
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.PendingVerificationRequest
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.ValidVerificationInfoReady
|
||||||
import im.vector.matrix.android.api.session.crypto.CryptoService
|
import im.vector.matrix.android.api.session.crypto.CryptoService
|
||||||
import im.vector.matrix.android.api.session.crypto.crosssigning.CrossSigningService
|
import im.vector.matrix.android.api.session.crypto.crosssigning.CrossSigningService
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
||||||
|
|
|
@ -207,7 +207,7 @@ internal abstract class SASDefaultVerificationTransaction(
|
||||||
|
|
||||||
abstract fun onKeyVerificationKey(vKey: ValidVerificationInfoKey)
|
abstract fun onKeyVerificationKey(vKey: ValidVerificationInfoKey)
|
||||||
|
|
||||||
abstract fun onKeyVerificationMac(vKey: ValidVerificationInfoMac)vMac
|
abstract fun onKeyVerificationMac(vMac: ValidVerificationInfoMac)
|
||||||
|
|
||||||
protected fun verifyMacs() {
|
protected fun verifyMacs() {
|
||||||
Timber.v("## SAS verifying macs for id:$transactionId")
|
Timber.v("## SAS verifying macs for id:$transactionId")
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package im.vector.matrix.android.internal.crypto.verification
|
package im.vector.matrix.android.internal.crypto.verification
|
||||||
|
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.ValidVerificationInfoReady
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A new event type is added to the key verification framework: m.key.verification.ready,
|
* A new event type is added to the key verification framework: m.key.verification.ready,
|
||||||
* which may be sent by the target of the m.key.verification.request message, upon receipt of the m.key.verification.request event.
|
* which may be sent by the target of the m.key.verification.request message, upon receipt of the m.key.verification.request event.
|
||||||
|
@ -53,8 +55,3 @@ internal interface MessageVerificationReadyFactory {
|
||||||
fun create(tid: String, methods: List<String>, fromDevice: String): VerificationInfoReady
|
fun create(tid: String, methods: List<String>, fromDevice: String): VerificationInfoReady
|
||||||
}
|
}
|
||||||
|
|
||||||
internal data class ValidVerificationInfoReady(
|
|
||||||
val transactionID: String,
|
|
||||||
val fromDevice: String,
|
|
||||||
val methods: List<String>
|
|
||||||
)
|
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package im.vector.matrix.android.internal.crypto.verification
|
package im.vector.matrix.android.internal.crypto.verification
|
||||||
|
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.ValidVerificationInfoRequest
|
||||||
|
|
||||||
internal interface VerificationInfoRequest : VerificationInfo<ValidVerificationInfoRequest> {
|
internal interface VerificationInfoRequest : VerificationInfo<ValidVerificationInfoRequest> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,9 +50,3 @@ internal interface VerificationInfoRequest : VerificationInfo<ValidVerificationI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal data class ValidVerificationInfoRequest(
|
|
||||||
val transactionID: String,
|
|
||||||
val fromDevice: String,
|
|
||||||
val methods: List<String>,
|
|
||||||
val timestamp: Long?
|
|
||||||
)
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package im.vector.matrix.android.internal.crypto.verification
|
package im.vector.matrix.android.internal.crypto.verification
|
||||||
|
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.ValidVerificationInfoRequest
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import androidx.work.ExistingWorkPolicy
|
||||||
import androidx.work.Operation
|
import androidx.work.Operation
|
||||||
import androidx.work.WorkInfo
|
import androidx.work.WorkInfo
|
||||||
import im.vector.matrix.android.R
|
import im.vector.matrix.android.R
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.ValidVerificationInfoRequest
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
||||||
import im.vector.matrix.android.api.session.events.model.Content
|
import im.vector.matrix.android.api.session.events.model.Content
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
package im.vector.matrix.android.internal.crypto.verification
|
package im.vector.matrix.android.internal.crypto.verification
|
||||||
|
|
||||||
import im.vector.matrix.android.api.MatrixCallback
|
import im.vector.matrix.android.api.MatrixCallback
|
||||||
|
import im.vector.matrix.android.api.session.crypto.verification.ValidVerificationInfoRequest
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
import im.vector.matrix.android.api.session.crypto.verification.CancelCode
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
||||||
import im.vector.matrix.android.api.session.events.model.EventType
|
import im.vector.matrix.android.api.session.events.model.EventType
|
||||||
|
|
|
@ -20,7 +20,7 @@ import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationService
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationService
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationTransaction
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationTransaction
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationTxState
|
||||||
import im.vector.matrix.android.internal.crypto.verification.PendingVerificationRequest
|
import im.vector.matrix.android.api.session.crypto.verification.PendingVerificationRequest
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.platform.VectorBaseActivity
|
import im.vector.riotx.core.platform.VectorBaseActivity
|
||||||
import im.vector.riotx.features.home.room.detail.RoomDetailActivity
|
import im.vector.riotx.features.home.room.detail.RoomDetailActivity
|
||||||
|
|
|
@ -44,7 +44,7 @@ import im.vector.matrix.android.api.util.MatrixItem
|
||||||
import im.vector.matrix.android.api.util.toMatrixItem
|
import im.vector.matrix.android.api.util.toMatrixItem
|
||||||
import im.vector.matrix.android.internal.crypto.crosssigning.fromBase64
|
import im.vector.matrix.android.internal.crypto.crosssigning.fromBase64
|
||||||
import im.vector.matrix.android.internal.crypto.crosssigning.isVerified
|
import im.vector.matrix.android.internal.crypto.crosssigning.isVerified
|
||||||
import im.vector.matrix.android.internal.crypto.verification.PendingVerificationRequest
|
import im.vector.matrix.android.api.session.crypto.verification.PendingVerificationRequest
|
||||||
import im.vector.riotx.core.extensions.exhaustive
|
import im.vector.riotx.core.extensions.exhaustive
|
||||||
import im.vector.riotx.core.platform.VectorViewModel
|
import im.vector.riotx.core.platform.VectorViewModel
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
|
@ -26,7 +26,7 @@ import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.QrCodeVerificationTransaction
|
import im.vector.matrix.android.api.session.crypto.verification.QrCodeVerificationTransaction
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationService
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationService
|
||||||
import im.vector.matrix.android.api.session.crypto.verification.VerificationTransaction
|
import im.vector.matrix.android.api.session.crypto.verification.VerificationTransaction
|
||||||
import im.vector.matrix.android.internal.crypto.verification.PendingVerificationRequest
|
import im.vector.matrix.android.api.session.crypto.verification.PendingVerificationRequest
|
||||||
import im.vector.riotx.core.di.HasScreenInjector
|
import im.vector.riotx.core.di.HasScreenInjector
|
||||||
import im.vector.riotx.core.platform.EmptyAction
|
import im.vector.riotx.core.platform.EmptyAction
|
||||||
import im.vector.riotx.core.platform.EmptyViewEvents
|
import im.vector.riotx.core.platform.EmptyViewEvents
|
||||||
|
|
Loading…
Reference in New Issue