From 33100df180f8bc14f48645001385ba5ba9b7f0ba Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Tue, 29 Mar 2022 11:46:54 +0000 Subject: [PATCH] fix secret for version --- app/controllers/api/storage.php | 9 +++------ app/init.php | 2 +- app/realtime.php | 2 +- src/Appwrite/Resque/Worker.php | 2 +- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 08d0354a53..68e8361629 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -988,10 +988,9 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/preview') $secrets = $project->getAttribute('storageSecrets'); $displacement = $project->getAttribute('storageSecretsDisplacement', 0); - $version = $displacement + \count($secrets); $data = json_decode($data, true); $version = ($data['version'] ?? 1) - $displacement; - $key = $secrets[$version]; + $key = $secrets[$version - 1]; $source = OpenSSL::decrypt($data['data'], $data['method'], $key, 0, hex2bin($data['iv']), hex2bin($data['tag'])); @@ -1154,10 +1153,9 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/download') $secrets = $project->getAttribute('storageSecrets'); $displacement = $project->getAttribute('storageSecretsDisplacement', 0); - $version = $displacement + \count($secrets); $data = json_decode($data, true); $version = ($data['version'] ?? 1) - $displacement; - $key = $secrets[$version]; + $key = $secrets[$version - 1]; $source = OpenSSL::decrypt($data['data'], $data['method'], $key, 0, hex2bin($data['iv']), hex2bin($data['tag'])); } @@ -1315,10 +1313,9 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/view') $secrets = $project->getAttribute('storageSecrets'); $displacement = $project->getAttribute('storageSecretsDisplacement', 0); - $version = $displacement + \count($secrets); $data = json_decode($data, true); $version = ($data['version'] ?? 1) - $displacement; - $key = $secrets[$version]; + $key = $secrets[$version - 1]; $source = OpenSSL::decrypt($data['data'], $data['method'], $key, 0, hex2bin($data['iv']), hex2bin($data['tag'])); } diff --git a/app/init.php b/app/init.php index a2f42dae67..f7a78475e9 100644 --- a/app/init.php +++ b/app/init.php @@ -825,7 +825,7 @@ App::setResource('dbForProject', function($db, $cache, $project) { $value = json_decode($value, true); $version = ($value['version'] ?? 1) - $displacement; - $key = $secrets[$version]; + $key = $secrets[$version - 1]; return OpenSSL::decrypt($value['data'], $value['method'], $key, 0, hex2bin($value['iv']), hex2bin($value['tag'])); } diff --git a/app/realtime.php b/app/realtime.php index e97d4a7b87..bdb0d4c81b 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -556,7 +556,7 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re $value = json_decode($value, true); $version = ($value['version'] ?? 1) - $displacement; - $key = $secrets[$version]; + $key = $secrets[$version - 1]; return OpenSSL::decrypt($value['data'], $value['method'], $key, 0, hex2bin($value['iv']), hex2bin($value['tag'])); } diff --git a/src/Appwrite/Resque/Worker.php b/src/Appwrite/Resque/Worker.php index 81ab6fc472..d8a058f214 100644 --- a/src/Appwrite/Resque/Worker.php +++ b/src/Appwrite/Resque/Worker.php @@ -252,7 +252,7 @@ abstract class Worker $value = json_decode($value, true); $version = ($value['version'] ?? 1) - $displacement; - $key = $secrets[$version]; + $key = $secrets[$version - 1]; return OpenSSL::decrypt($value['data'], $value['method'], $key, 0, hex2bin($value['iv']), hex2bin($value['tag'])); }