@@ -33,6 +33,7 @@ import org.matrix.android.sdk.api.crypto.MXCRYPTO_ALGORITHM_CURVE_25519_BACKUP
33
33
import org.matrix.android.sdk.api.listeners.ProgressListener
34
34
import org.matrix.android.sdk.api.listeners.StepProgressListener
35
35
import org.matrix.android.sdk.api.session.crypto.crosssigning.DeviceTrustLevel
36
+ import org.matrix.android.sdk.api.session.crypto.keysbackup.KeyBackupConfig
36
37
import org.matrix.android.sdk.api.session.crypto.keysbackup.KeysBackupLastVersionResult
37
38
import org.matrix.android.sdk.api.session.crypto.keysbackup.KeysBackupState
38
39
import org.matrix.android.sdk.api.session.crypto.keysbackup.KeysBackupStateListener
@@ -46,9 +47,12 @@ import org.matrix.android.sdk.api.session.crypto.keysbackup.extractCurveKeyFromR
46
47
import org.matrix.android.sdk.api.session.crypto.keysbackup.toKeysVersionResult
47
48
import org.matrix.android.sdk.api.session.crypto.model.ImportRoomKeysResult
48
49
import org.matrix.android.sdk.api.session.getRoom
50
+ import org.matrix.android.sdk.common.CommonTestHelper
49
51
import org.matrix.android.sdk.common.CommonTestHelper.Companion.runCryptoTest
50
52
import org.matrix.android.sdk.common.CommonTestHelper.Companion.runSessionTest
53
+ import org.matrix.android.sdk.common.CryptoTestHelper
51
54
import org.matrix.android.sdk.common.RetryTestRule
55
+ import org.matrix.android.sdk.common.SessionTestParams
52
56
import org.matrix.android.sdk.common.TestConstants
53
57
import org.matrix.android.sdk.common.TestMatrixCallback
54
58
import org.matrix.android.sdk.internal.crypto.keysbackup.algorithm.KeysBackupAlgorithmFactory
@@ -61,10 +65,21 @@ import java.util.concurrent.CountDownLatch
61
65
@RunWith(AndroidJUnit4 ::class )
62
66
@FixMethodOrder(MethodSorters .JVM )
63
67
@LargeTest
64
- class KeysBackupTest : InstrumentedTest {
68
+ open class KeysBackupTest : InstrumentedTest {
65
69
66
70
@get:Rule val rule = RetryTestRule (3 )
67
71
72
+ @Test
73
+ fun default_config_should_be_assymetric_only () = runSessionTest(context()) { testHelper ->
74
+ val session = testHelper.createAccount(TestConstants .USER_ALICE , SessionTestParams (true ))
75
+
76
+ val defaultConfig = session.cryptoService().keysBackupService().keyBackupConfig
77
+
78
+ assertEquals(MXCRYPTO_ALGORITHM_CURVE_25519_BACKUP , defaultConfig.defaultAlgorithm)
79
+ assertEquals(1 , defaultConfig.supportedAlgorithms.size)
80
+ assertTrue(defaultConfig.supportedAlgorithms.contains(MXCRYPTO_ALGORITHM_CURVE_25519_BACKUP ))
81
+ }
82
+
68
83
/* *
69
84
* - From doE2ETestWithAliceAndBobInARoomWithEncryptedMessages, we should have no backed up keys
70
85
* - Check backup keys after having marked one as backed up
@@ -206,7 +221,7 @@ class KeysBackupTest : InstrumentedTest {
206
221
*/
207
222
@Test
208
223
fun backupAfterCreateKeysBackupVersionTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
209
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
224
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
210
225
211
226
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
212
227
@@ -247,7 +262,7 @@ class KeysBackupTest : InstrumentedTest {
247
262
*/
248
263
@Test
249
264
fun backupAllGroupSessionsTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
250
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
265
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
251
266
252
267
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
253
268
@@ -292,7 +307,7 @@ class KeysBackupTest : InstrumentedTest {
292
307
*/
293
308
@Test
294
309
fun testEncryptAndDecryptKeysBackupData () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
295
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
310
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
296
311
297
312
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
298
313
@@ -341,7 +356,7 @@ class KeysBackupTest : InstrumentedTest {
341
356
*/
342
357
@Test
343
358
fun restoreKeysBackupTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
344
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
359
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
345
360
346
361
val testData = keysBackupTestHelper.createKeysBackupScenarioWithPassword(null )
347
362
@@ -427,7 +442,7 @@ class KeysBackupTest : InstrumentedTest {
427
442
*/
428
443
@Test
429
444
fun trustKeyBackupVersionTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
430
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
445
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
431
446
432
447
// - Do an e2e backup to the homeserver with a recovery key
433
448
// - And log Alice on a new device
@@ -487,7 +502,7 @@ class KeysBackupTest : InstrumentedTest {
487
502
*/
488
503
@Test
489
504
fun trustKeyBackupVersionWithRecoveryKeyTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
490
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
505
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
491
506
492
507
// - Do an e2e backup to the homeserver with a recovery key
493
508
// - And log Alice on a new device
@@ -545,7 +560,7 @@ class KeysBackupTest : InstrumentedTest {
545
560
*/
546
561
@Test
547
562
fun trustKeyBackupVersionWithWrongRecoveryKeyTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
548
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
563
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
549
564
550
565
// - Do an e2e backup to the homeserver with a recovery key
551
566
// - And log Alice on a new device
@@ -587,7 +602,7 @@ class KeysBackupTest : InstrumentedTest {
587
602
*/
588
603
@Test
589
604
fun trustKeyBackupVersionWithPasswordTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
590
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
605
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
591
606
592
607
val password = " Password"
593
608
@@ -647,7 +662,7 @@ class KeysBackupTest : InstrumentedTest {
647
662
*/
648
663
@Test
649
664
fun trustKeyBackupVersionWithWrongPasswordTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
650
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
665
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
651
666
652
667
val password = " Password"
653
668
val badPassword = " Bad Password"
@@ -688,7 +703,7 @@ class KeysBackupTest : InstrumentedTest {
688
703
*/
689
704
@Test
690
705
fun restoreKeysBackupWithAWrongRecoveryKeyTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
691
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
706
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
692
707
693
708
val testData = keysBackupTestHelper.createKeysBackupScenarioWithPassword(null )
694
709
@@ -721,7 +736,7 @@ class KeysBackupTest : InstrumentedTest {
721
736
*/
722
737
@Test
723
738
fun testBackupWithPassword () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
724
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
739
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
725
740
726
741
val password = " password"
727
742
@@ -777,7 +792,7 @@ class KeysBackupTest : InstrumentedTest {
777
792
*/
778
793
@Test
779
794
fun restoreKeysBackupWithAWrongPasswordTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
780
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
795
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
781
796
782
797
val password = " password"
783
798
val wrongPassword = " passw0rd"
@@ -813,7 +828,7 @@ class KeysBackupTest : InstrumentedTest {
813
828
*/
814
829
@Test
815
830
fun testUseRecoveryKeyToRestoreAPasswordBasedKeysBackup () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
816
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
831
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
817
832
818
833
val password = " password"
819
834
@@ -842,7 +857,7 @@ class KeysBackupTest : InstrumentedTest {
842
857
*/
843
858
@Test
844
859
fun testUsePasswordToRestoreARecoveryKeyBasedKeysBackup () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
845
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
860
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
846
861
847
862
val testData = keysBackupTestHelper.createKeysBackupScenarioWithPassword(null )
848
863
@@ -873,7 +888,7 @@ class KeysBackupTest : InstrumentedTest {
873
888
*/
874
889
@Test
875
890
fun testIsKeysBackupTrusted () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
876
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
891
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
877
892
878
893
// - Create a backup version
879
894
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
@@ -918,7 +933,7 @@ class KeysBackupTest : InstrumentedTest {
918
933
*/
919
934
@Test
920
935
fun testBackupWhenAnotherBackupWasCreated () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
921
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
936
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
922
937
923
938
// - Create a backup version
924
939
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
@@ -990,7 +1005,7 @@ class KeysBackupTest : InstrumentedTest {
990
1005
*/
991
1006
@Test
992
1007
fun testBackupAfterVerifyingADevice () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
993
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
1008
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
994
1009
995
1010
// - Create a backup version
996
1011
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
@@ -1088,7 +1103,7 @@ class KeysBackupTest : InstrumentedTest {
1088
1103
*/
1089
1104
@Test
1090
1105
fun deleteKeysBackupTest () = runCryptoTest(context()) { cryptoTestHelper, testHelper ->
1091
- val keysBackupTestHelper = KeysBackupTestHelper (testHelper, cryptoTestHelper)
1106
+ val keysBackupTestHelper = createKeysBackupTestHelper (testHelper, cryptoTestHelper)
1092
1107
1093
1108
// - Create a backup version
1094
1109
val cryptoTestData = cryptoTestHelper.doE2ETestWithAliceAndBobInARoomWithEncryptedMessages()
@@ -1111,4 +1126,9 @@ class KeysBackupTest : InstrumentedTest {
1111
1126
1112
1127
stateObserver.stopAndCheckStates(null )
1113
1128
}
1129
+
1130
+ open var keyBackupConfig: KeyBackupConfig ? = null
1131
+
1132
+ private fun createKeysBackupTestHelper (testHelper : CommonTestHelper , cryptoTestHelper : CryptoTestHelper ) =
1133
+ KeysBackupTestHelper (testHelper, cryptoTestHelper, keyBackupConfig)
1114
1134
}
0 commit comments