mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 05:31:21 +03:00
keybackup gossip test
This commit is contained in:
parent
1a436f962f
commit
d4d73db5ae
1 changed files with 22 additions and 1 deletions
|
@ -34,6 +34,8 @@ import im.vector.matrix.android.common.TestConstants
|
||||||
import im.vector.matrix.android.internal.crypto.GossipingRequestState
|
import im.vector.matrix.android.internal.crypto.GossipingRequestState
|
||||||
import im.vector.matrix.android.internal.crypto.OutgoingGossipingRequestState
|
import im.vector.matrix.android.internal.crypto.OutgoingGossipingRequestState
|
||||||
import im.vector.matrix.android.internal.crypto.crosssigning.DeviceTrustLevel
|
import im.vector.matrix.android.internal.crypto.crosssigning.DeviceTrustLevel
|
||||||
|
import im.vector.matrix.android.internal.crypto.keysbackup.model.MegolmBackupCreationInfo
|
||||||
|
import im.vector.matrix.android.internal.crypto.keysbackup.model.rest.KeysVersion
|
||||||
import im.vector.matrix.android.internal.crypto.model.CryptoDeviceInfo
|
import im.vector.matrix.android.internal.crypto.model.CryptoDeviceInfo
|
||||||
import im.vector.matrix.android.internal.crypto.model.MXUsersDevicesMap
|
import im.vector.matrix.android.internal.crypto.model.MXUsersDevicesMap
|
||||||
import im.vector.matrix.android.internal.crypto.model.event.EncryptedEventContent
|
import im.vector.matrix.android.internal.crypto.model.event.EncryptedEventContent
|
||||||
|
@ -197,6 +199,16 @@ class KeyShareTests : InstrumentedTest {
|
||||||
), it)
|
), it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Also bootstrap keybackup on first session
|
||||||
|
val creationInfo = mTestHelper.doSync<MegolmBackupCreationInfo> {
|
||||||
|
aliceSession1.cryptoService().keysBackupService().prepareKeysBackupVersion(null, null, it)
|
||||||
|
}
|
||||||
|
val version = mTestHelper.doSync<KeysVersion> {
|
||||||
|
aliceSession1.cryptoService().keysBackupService().createKeysBackupVersion(creationInfo, it)
|
||||||
|
}
|
||||||
|
// Save it for gossiping
|
||||||
|
aliceSession1.cryptoService().keysBackupService().saveBackupRecoveryKey(creationInfo.recoveryKey, version = version.version)
|
||||||
|
|
||||||
val aliceSession2 = mTestHelper.logIntoAccount(aliceSession1.myUserId, SessionTestParams(true))
|
val aliceSession2 = mTestHelper.logIntoAccount(aliceSession1.myUserId, SessionTestParams(true))
|
||||||
|
|
||||||
val aliceVerificationService1 = aliceSession1.cryptoService().verificationService()
|
val aliceVerificationService1 = aliceSession1.cryptoService().verificationService()
|
||||||
|
@ -260,9 +272,18 @@ class KeyShareTests : InstrumentedTest {
|
||||||
|
|
||||||
mTestHelper.waitWithLatch(60_000) { latch ->
|
mTestHelper.waitWithLatch(60_000) { latch ->
|
||||||
mTestHelper.retryPeriodicallyWithLatch(latch) {
|
mTestHelper.retryPeriodicallyWithLatch(latch) {
|
||||||
Log.d("#TEST", "CAN XS :${ aliceSession2.cryptoService().crossSigningService().getMyCrossSigningKeys()}")
|
Log.d("#TEST", "CAN XS :${aliceSession2.cryptoService().crossSigningService().getMyCrossSigningKeys()}")
|
||||||
aliceSession2.cryptoService().crossSigningService().canCrossSign()
|
aliceSession2.cryptoService().crossSigningService().canCrossSign()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test that key backup key has been shared to
|
||||||
|
mTestHelper.waitWithLatch(60_000) { latch ->
|
||||||
|
val keysBackupService = aliceSession2.cryptoService().keysBackupService()
|
||||||
|
mTestHelper.retryPeriodicallyWithLatch(latch) {
|
||||||
|
Log.d("#TEST", "Recovery :${ keysBackupService.getKeyBackupRecoveryKeyInfo()?.recoveryKey}")
|
||||||
|
keysBackupService.getKeyBackupRecoveryKeyInfo()?.recoveryKey != creationInfo.recoveryKey
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue