|
20 | 20 | */ |
21 | 21 | package com.dimension.maskbook.setting.util |
22 | 22 |
|
| 23 | +import com.dimension.maskbook.common.ext.JSON |
23 | 24 | import com.dimension.maskbook.common.ext.msgPack |
24 | 25 | import com.dimension.maskbook.setting.export.model.BackupMetaFile |
25 | 26 | import com.dimension.maskbook.setting.export.model.BackupWrongPasswordException |
26 | 27 | import com.dimension.maskbook.setting.model.RemoteBackupData |
| 28 | +import com.fasterxml.jackson.core.type.TypeReference |
| 29 | +import com.fasterxml.jackson.databind.ObjectMapper |
27 | 30 | import kotlinx.serialization.builtins.serializer |
| 31 | +import kotlinx.serialization.decodeFromString |
28 | 32 | import org.bouncycastle.crypto.digests.SHA256Digest |
29 | 33 | import org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator |
30 | 34 | import org.bouncycastle.crypto.params.KeyParameter |
| 35 | +import org.msgpack.jackson.dataformat.MessagePackMapper |
31 | 36 | import java.security.SecureRandom |
32 | 37 | import javax.crypto.Cipher |
33 | 38 | import javax.crypto.spec.IvParameterSpec |
@@ -68,7 +73,9 @@ object EncryptUtils { |
68 | 73 | kotlin.runCatching { |
69 | 74 | cipher.doFinal(remoteBackupData.encrypted) |
70 | 75 | }.onSuccess { |
71 | | - return msgPack.decodeFromByteArray(BackupMetaFile.serializer(), it) |
| 76 | + val map = MessagePackMapper().readValue(it, object : TypeReference<Map<String, Any>>() {}) |
| 77 | + val json = ObjectMapper().writeValueAsString(map) |
| 78 | + return JSON.decodeFromString<BackupMetaFile>(json) |
72 | 79 | }.onFailure { |
73 | 80 | throw BackupWrongPasswordException |
74 | 81 | } |
|
0 commit comments