Expose setPrivateKey instead of setRecoveryKey as curveKey shouldn't not be used (let valere continue on the privatekey generation)
This commit is contained in:
parent
03272a9c8f
commit
1db5c662d2
@ -322,7 +322,9 @@ class KeysBackupTest : InstrumentedTest {
|
|||||||
put(cryptoTestData.roomId, roomKeysBackupData)
|
put(cryptoTestData.roomId, roomKeysBackupData)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
algorithm.setRecoveryKey(keyBackupCreationInfo.recoveryKey)
|
extractCurveKeyFromRecoveryKey(keyBackupCreationInfo.recoveryKey)?.also {
|
||||||
|
algorithm.setPrivateKey(it)
|
||||||
|
}
|
||||||
val sessionsData = algorithm.decryptSessions(keysBackupData)
|
val sessionsData = algorithm.decryptSessions(keysBackupData)
|
||||||
val sessionData = sessionsData.firstOrNull()
|
val sessionData = sessionsData.firstOrNull()
|
||||||
assertNotNull(sessionData)
|
assertNotNull(sessionData)
|
||||||
|
@ -632,7 +632,9 @@ internal class DefaultKeysBackupService @Inject constructor(
|
|||||||
|
|
||||||
// Get backed up keys from the homeserver
|
// Get backed up keys from the homeserver
|
||||||
val data = getKeys(sessionId, roomId, keysVersionResult.version)
|
val data = getKeys(sessionId, roomId, keysVersionResult.version)
|
||||||
algorithm?.setRecoveryKey(recoveryKey)
|
extractCurveKeyFromRecoveryKey(recoveryKey)?.also { privateKey ->
|
||||||
|
algorithm?.setPrivateKey(privateKey)
|
||||||
|
}
|
||||||
val sessionsData = withContext(coroutineDispatchers.computation) {
|
val sessionsData = withContext(coroutineDispatchers.computation) {
|
||||||
algorithm?.decryptSessions(data)
|
algorithm?.decryptSessions(data)
|
||||||
}.orEmpty()
|
}.orEmpty()
|
||||||
@ -1138,7 +1140,9 @@ internal class DefaultKeysBackupService @Inject constructor(
|
|||||||
// roomId -> sessionId -> MXKeyBackupData
|
// roomId -> sessionId -> MXKeyBackupData
|
||||||
val keysBackupData = KeysBackupData()
|
val keysBackupData = KeysBackupData()
|
||||||
val recoveryKey = cryptoStore.getKeyBackupRecoveryKeyInfo()?.recoveryKey
|
val recoveryKey = cryptoStore.getKeyBackupRecoveryKeyInfo()?.recoveryKey
|
||||||
algorithm?.setRecoveryKey(recoveryKey)
|
extractCurveKeyFromRecoveryKey(recoveryKey)?.also { privateKey ->
|
||||||
|
algorithm?.setPrivateKey(privateKey)
|
||||||
|
}
|
||||||
olmInboundGroupSessionWrappers.forEach { olmInboundGroupSessionWrapper ->
|
olmInboundGroupSessionWrappers.forEach { olmInboundGroupSessionWrapper ->
|
||||||
val roomId = olmInboundGroupSessionWrapper.roomId ?: return@forEach
|
val roomId = olmInboundGroupSessionWrapper.roomId ?: return@forEach
|
||||||
val olmInboundGroupSession = olmInboundGroupSessionWrapper.session
|
val olmInboundGroupSession = olmInboundGroupSessionWrapper.session
|
||||||
|
@ -46,8 +46,8 @@ internal class KeysBackupAes256Algorithm(keysVersions: KeysVersionResult) : Keys
|
|||||||
aesAuthData = keysVersions.getAuthDataAsMegolmBackupAuthData() as MegolmBackupAes256AuthData
|
aesAuthData = keysVersions.getAuthDataAsMegolmBackupAuthData() as MegolmBackupAes256AuthData
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setRecoveryKey(recoveryKey: String?) {
|
override fun setPrivateKey(privateKey: ByteArray) {
|
||||||
privateKey = extractCurveKeyFromRecoveryKey(recoveryKey)
|
this.privateKey = privateKey
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun encryptSession(sessionData: MegolmSessionData): JsonDict? {
|
override fun encryptSession(sessionData: MegolmSessionData): JsonDict? {
|
||||||
|
@ -27,7 +27,7 @@ internal interface KeysBackupAlgorithm {
|
|||||||
val authData: MegolmBackupAuthData
|
val authData: MegolmBackupAuthData
|
||||||
val untrusted: Boolean
|
val untrusted: Boolean
|
||||||
|
|
||||||
fun setRecoveryKey(recoveryKey: String?)
|
fun setPrivateKey(privateKey: ByteArray)
|
||||||
fun encryptSession(sessionData: MegolmSessionData): JsonDict?
|
fun encryptSession(sessionData: MegolmSessionData): JsonDict?
|
||||||
fun decryptSessions(data: KeysBackupData): List<MegolmSessionData>
|
fun decryptSessions(data: KeysBackupData): List<MegolmSessionData>
|
||||||
fun keyMatches(privateKey: ByteArray): Boolean
|
fun keyMatches(privateKey: ByteArray): Boolean
|
||||||
|
@ -52,8 +52,8 @@ internal class KeysBackupCurve25519Algorithm(keysVersions: KeysVersionResult) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setRecoveryKey(recoveryKey: String?) {
|
override fun setPrivateKey(privateKey: ByteArray) {
|
||||||
privateKey = extractCurveKeyFromRecoveryKey(recoveryKey)
|
this.privateKey = privateKey
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun encryptSession(sessionData: MegolmSessionData): JsonDict? {
|
override fun encryptSession(sessionData: MegolmSessionData): JsonDict? {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user