From c4aee3a00b66cc1a519ee62b91f7581c31d7cd9b Mon Sep 17 00:00:00 2001
From: zhom <2717306+zhom@users.noreply.github.com>
Date: Mon, 16 Mar 2026 03:33:44 +0400
Subject: [PATCH] refactor: encrypt manifest for encrypted profiles
---
src-tauri/src/sync/engine.rs | 78 +++++++++++++++++++++++++++---------
1 file changed, 60 insertions(+), 18 deletions(-)
diff --git a/src-tauri/src/sync/engine.rs b/src-tauri/src/sync/engine.rs
index dff5056..95555fe 100644
--- a/src-tauri/src/sync/engine.rs
+++ b/src-tauri/src/sync/engine.rs
@@ -460,7 +460,9 @@ impl SyncEngine {
// Try to download remote manifest
let remote_manifest_key = format!("{}profiles/{}/manifest.json", key_prefix, profile_id);
- let remote_manifest = self.download_manifest(&remote_manifest_key).await?;
+ let remote_manifest = self
+ .download_manifest(&remote_manifest_key, encryption_key.as_ref())
+ .await?;
// Compute diff
let diff = compute_diff(&local_manifest, remote_manifest.as_ref());
@@ -573,7 +575,12 @@ impl SyncEngine {
// Upload manifest.json last for atomicity
self
- .upload_manifest(&profile_id, &final_manifest, &key_prefix)
+ .upload_manifest(
+ &profile_id,
+ &final_manifest,
+ encryption_key.as_ref(),
+ &key_prefix,
+ )
.await?;
// Sync completed successfully — clean up resume state
@@ -614,7 +621,11 @@ impl SyncEngine {
Ok(())
}
- async fn download_manifest(&self, key: &str) -> SyncResult