|
@@ -38,12 +38,11 @@ class NCEndToEndMetadata: NSObject {
|
|
|
return (nil, nil, NKError(errorCode: NCGlobal.shared.errorUnexpectedResponseFromDB, errorDescription: "_e2e_error_"))
|
|
|
}
|
|
|
|
|
|
- switch e2EEApiVersion {
|
|
|
- case NCGlobal.shared.e2eeVersionV12:
|
|
|
+ if e2EEApiVersion == NCGlobal.shared.e2eeVersionV12 && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV12) {
|
|
|
return encodeMetadataV12(account: account, serverUrl: serverUrl, ocIdServerUrl: directory.ocId)
|
|
|
- case NCGlobal.shared.e2eeVersionV20:
|
|
|
+ } else if e2EEApiVersion == NCGlobal.shared.e2eeVersionV20 && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV20) {
|
|
|
return encodeMetadataV20(account: account, serverUrl: serverUrl, ocIdServerUrl: directory.ocId, userId: userId, addUserId: addUserId, addCertificate: addCertificate, removeUserId: removeUserId)
|
|
|
- default:
|
|
|
+ } else {
|
|
|
return (nil, nil, NKError(errorCode: NCGlobal.shared.errorE2EEVersion, errorDescription: "_e2e_error_"))
|
|
|
}
|
|
|
}
|
|
@@ -62,11 +61,11 @@ class NCEndToEndMetadata: NSObject {
|
|
|
|
|
|
let decoder = JSONDecoder()
|
|
|
|
|
|
- if (try? decoder.decode(E2eeV1.self, from: data)) != nil {
|
|
|
+ if (try? decoder.decode(E2eeV1.self, from: data)) != nil && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV11) {
|
|
|
return decodeMetadataV1(json, serverUrl: serverUrl, account: account, ocIdServerUrl: directory.ocId, urlBase: urlBase, userId: userId)
|
|
|
- } else if (try? decoder.decode(E2eeV12.self, from: data)) != nil {
|
|
|
+ } else if (try? decoder.decode(E2eeV12.self, from: data)) != nil && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV12) {
|
|
|
return decodeMetadataV12(json, serverUrl: serverUrl, account: account, ocIdServerUrl: directory.ocId, urlBase: urlBase, userId: userId, ownerId: ownerId)
|
|
|
- } else if (try? decoder.decode(E2eeV20.self, from: data)) != nil {
|
|
|
+ } else if (try? decoder.decode(E2eeV20.self, from: data)) != nil && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV20) {
|
|
|
return decodeMetadataV20(json, signature: signature, serverUrl: serverUrl, account: account, ocIdServerUrl: directory.ocId, urlBase: urlBase, userId: userId, ownerId: ownerId)
|
|
|
} else {
|
|
|
return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "Server E2EE version " + NCGlobal.shared.capabilityE2EEApiVersion + ", not compatible")
|