Skip to content

Commit 0464e82

Browse files
ganfraBillCarsonFr
authored andcommitted
Expose setPrivateKey instead of setRecoveryKey as curveKey shouldn't not be used (let valere continue on the privatekey generation)
1 parent e996462 commit 0464e82

File tree

5 files changed

+14
-8
lines changed

5 files changed

+14
-8
lines changed

matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/internal/crypto/keysbackup/KeysBackupTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,9 @@ class KeysBackupTest : InstrumentedTest {
321321
put(cryptoTestData.roomId, roomKeysBackupData)
322322
}
323323
)
324-
algorithm.setRecoveryKey(keyBackupCreationInfo.recoveryKey)
324+
extractCurveKeyFromRecoveryKey(keyBackupCreationInfo.recoveryKey)?.also {
325+
algorithm.setPrivateKey(it)
326+
}
325327
val sessionsData = algorithm.decryptSessions(keysBackupData)
326328
val sessionData = sessionsData.firstOrNull()
327329
assertNotNull(sessionData)

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/DefaultKeysBackupService.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,9 @@ internal class DefaultKeysBackupService @Inject constructor(
639639

640640
// Get backed up keys from the homeserver
641641
val data = getKeys(sessionId, roomId, keysVersionResult.version)
642-
algorithm?.setRecoveryKey(recoveryKey)
642+
extractCurveKeyFromRecoveryKey(recoveryKey)?.also { privateKey ->
643+
algorithm?.setPrivateKey(privateKey)
644+
}
643645
val sessionsData = withContext(coroutineDispatchers.computation) {
644646
algorithm?.decryptSessions(data)
645647
}.orEmpty()
@@ -1145,7 +1147,9 @@ internal class DefaultKeysBackupService @Inject constructor(
11451147
// roomId -> sessionId -> MXKeyBackupData
11461148
val keysBackupData = KeysBackupData()
11471149
val recoveryKey = cryptoStore.getKeyBackupRecoveryKeyInfo()?.recoveryKey
1148-
algorithm?.setRecoveryKey(recoveryKey)
1150+
extractCurveKeyFromRecoveryKey(recoveryKey)?.also { privateKey ->
1151+
algorithm?.setPrivateKey(privateKey)
1152+
}
11491153
olmInboundGroupSessionWrappers.forEach { olmInboundGroupSessionWrapper ->
11501154
val roomId = olmInboundGroupSessionWrapper.roomId ?: return@forEach
11511155
val olmInboundGroupSession = olmInboundGroupSessionWrapper.session

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/algorithm/KeysBackupAes256Algorithm.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ internal class KeysBackupAes256Algorithm(keysVersions: KeysVersionResult) : Keys
4646
aesAuthData = keysVersions.getAuthDataAsMegolmBackupAuthData() as MegolmBackupAes256AuthData
4747
}
4848

49-
override fun setRecoveryKey(recoveryKey: String?) {
50-
privateKey = extractCurveKeyFromRecoveryKey(recoveryKey)
49+
override fun setPrivateKey(privateKey: ByteArray) {
50+
this.privateKey = privateKey
5151
}
5252

5353
override fun encryptSession(sessionData: MegolmSessionData): JsonDict? {

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/algorithm/KeysBackupAlgorithm.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ internal interface KeysBackupAlgorithm {
2727
val authData: MegolmBackupAuthData
2828
val untrusted: Boolean
2929

30-
fun setRecoveryKey(recoveryKey: String?)
30+
fun setPrivateKey(privateKey: ByteArray)
3131
fun encryptSession(sessionData: MegolmSessionData): JsonDict?
3232
fun decryptSessions(data: KeysBackupData): List<MegolmSessionData>
3333
fun keyMatches(privateKey: ByteArray): Boolean

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/algorithm/KeysBackupCurve25519Algorithm.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ internal class KeysBackupCurve25519Algorithm(keysVersions: KeysVersionResult) :
5252
}
5353
}
5454

55-
override fun setRecoveryKey(recoveryKey: String?) {
56-
privateKey = extractCurveKeyFromRecoveryKey(recoveryKey)
55+
override fun setPrivateKey(privateKey: ByteArray) {
56+
this.privateKey = privateKey
5757
}
5858

5959
override fun encryptSession(sessionData: MegolmSessionData): JsonDict? {

0 commit comments

Comments
 (0)