Skip to content

Commit

Permalink
Merge branch 'release/0.26.4/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Anderas committed Mar 22, 2023
2 parents ec06276 + 7ddf995 commit 91dbe20
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 31 deletions.
7 changes: 7 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## Changes in 0.26.4 (2023-03-22)

🐛 Bugfixes

- Crypto: Do not show current session as unverified ([#7446](https://github.com/vector-im/element-ios/issues/7446))


## Changes in 0.26.3 (2023-03-22)

No significant changes.
Expand Down
2 changes: 1 addition & 1 deletion MatrixSDK.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|

s.name = "MatrixSDK"
s.version = "0.26.3"
s.version = "0.26.4"
s.summary = "The iOS SDK to build apps compatible with Matrix (https://www.matrix.org)"

s.description = <<-DESC
Expand Down
24 changes: 21 additions & 3 deletions MatrixSDK/Crypto/CrossSigning/MXCrossSigningV2.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ class MXCrossSigningV2: NSObject, MXCrossSigning {
}

if info.trustLevel.isVerified {
return hasAllPrivateKeys ? .canCrossSign : .trustCrossSigning
let status = crossSigning.crossSigningStatus()
return status.hasSelfSigning && status.hasUserSigning ? .canCrossSign : .trustCrossSigning
} else {
return .crossSigningExists
}
Expand Down Expand Up @@ -115,14 +116,14 @@ class MXCrossSigningV2: NSObject, MXCrossSigning {
success: ((Bool) -> Void)?,
failure: ((Swift.Error) -> Void)? = nil
) {
log.debug("->")
log.debug("Refreshing cross signing state, current state: \(state)")

Task {
do {
try await crossSigning.refreshCrossSigningStatus()
myUserCrossSigningKeys = infoSource.crossSigningInfo(userId: crossSigning.userId)

log.debug("Cross signing state refreshed")
log.debug("Cross signing state refreshed, new state: \(state)")
await MainActor.run {
success?(true)
}
Expand Down Expand Up @@ -231,3 +232,20 @@ extension MXCrossSigningV2: MXRecoveryServiceDelegate {
signUser(withUserId: userId, success: success, failure: failure)
}
}

extension MXCrossSigningState: CustomStringConvertible {
public var description: String {
switch self {
case .notBootstrapped:
return "notBootstrapped"
case .crossSigningExists:
return "crossSigningExists"
case .trustCrossSigning:
return "trustCrossSigning"
case .canCrossSign:
return "canCrossSign"
@unknown default:
return "unknown"
}
}
}
20 changes: 11 additions & 9 deletions MatrixSDK/Crypto/Migration/MXCryptoMigrationV2.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,17 @@ class MXCryptoMigrationV2: NSObject {

let details = """
Migration summary
- user id : \(data.account.userId)
- device id : \(data.account.deviceId)
- olm_sessions : \(store.olmSessionCount)
- megolm_sessions : \(store.megolmSessionCount)
- backup_key : \(data.backupRecoveryKey != nil ? "true" : "false")
- cross_signing : \(data.crossSigning.masterKey != nil ? "true" : "false")
- tracked_users : \(data.trackedUsers.count)
- room_settings : \(data.roomSettings.count)
- global_settings : \(store.globalSettings)
- user id : \(data.account.userId)
- device id : \(data.account.deviceId)
- olm_sessions : \(store.olmSessionCount)
- megolm_sessions : \(store.megolmSessionCount)
- backup_key : \(data.backupRecoveryKey != nil ? "true" : "false")
- master_key : \(data.crossSigning.masterKey != nil ? "true" : "false")
- user_signing_key : \(data.crossSigning.userSigningKey != nil ? "true" : "false")
- self_signing_key : \(data.crossSigning.selfSigningKey != nil ? "true" : "false")
- tracked_users : \(data.trackedUsers.count)
- room_settings : \(data.roomSettings.count)
- global_settings : \(store.globalSettings)
"""
log.debug(details)

Expand Down
2 changes: 1 addition & 1 deletion MatrixSDK/MatrixSDKVersion.m
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@

#import <Foundation/Foundation.h>

NSString *const MatrixSDKVersion = @"0.26.3";
NSString *const MatrixSDKVersion = @"0.26.4";
40 changes: 24 additions & 16 deletions MatrixSDKTests/Crypto/CrossSigning/MXCrossSigningV2UnitTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,23 +76,31 @@ class MXCrossSigningV2UnitTests: XCTestCase {
waitForExpectations(timeout: 1)
}

func test_state_canCrossSign() {
let exp = expectation(description: "exp")
crypto.stubbedStatus = CrossSigningStatus(hasMaster: true, hasSelfSigning: true, hasUserSigning: true)
crypto.stubbedVerifiedUsers = ["Alice"]
crypto.stubbedIdentities = [
"Alice": .own(
userId: "Alice",
trustsOurOwnDevice: true,
masterKey: "",
selfSigningKey: "",
userSigningKey: ""
)
func test_state_canCrossSign() async throws {
let statusToState: [(CrossSigningStatus, MXCrossSigningState)] = [
(.init(hasMaster: false, hasSelfSigning: false, hasUserSigning: false), .trustCrossSigning),
(.init(hasMaster: true, hasSelfSigning: false, hasUserSigning: false), .trustCrossSigning),
(.init(hasMaster: false, hasSelfSigning: true, hasUserSigning: false), .trustCrossSigning),
(.init(hasMaster: false, hasSelfSigning: false, hasUserSigning: true), .trustCrossSigning),
(.init(hasMaster: false, hasSelfSigning: true, hasUserSigning: true), .canCrossSign),
(.init(hasMaster: true, hasSelfSigning: true, hasUserSigning: true), .canCrossSign),
]
crossSigning.refreshState { _ in
XCTAssertEqual(self.crossSigning.state, .canCrossSign)
exp.fulfill()

for (status, state) in statusToState {
crypto.stubbedStatus = status
crypto.stubbedVerifiedUsers = ["Alice"]
crypto.stubbedIdentities = [
"Alice": .own(
userId: "Alice",
trustsOurOwnDevice: true,
masterKey: "",
selfSigningKey: "",
userSigningKey: ""
)
]

try await crossSigning.refreshState()
XCTAssertEqual(self.crossSigning.state, state, "Status: \(status)")
}
waitForExpectations(timeout: 1)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ private extension MXCrypto {
}
}

private extension MXCrossSigning {
extension MXCrossSigning {
func refreshState() async throws {
return try await withCheckedThrowingContinuation { continuation in
refreshState { _ in
Expand Down

0 comments on commit 91dbe20

Please sign in to comment.