Add fail-safe code for key migration 44/196344/1
authorJaemin Ryu <jm77.ryu@samsung.com>
Thu, 27 Dec 2018 09:58:21 +0000 (18:58 +0900)
committerJaemin Ryu <jm77.ryu@samsung.com>
Thu, 27 Dec 2018 09:58:21 +0000 (18:58 +0900)
Change-Id: Ibed92f38d5dfd3de1ecc7faff5f1ffdb9ff68c02
Signed-off-by: Jaemin Ryu <jm77.ryu@samsung.com>
server/internal-encryption.cpp

index bcf0487..75c39b7 100644 (file)
@@ -48,6 +48,7 @@
 #include "internal-encryption.h"
 #include "internal-encryption-common.h"
 #include "upgrade-support.h"
+#include "file-footer.h"
 
 namespace ode {
 
@@ -380,6 +381,14 @@ InternalEncryptionServer::InternalEncryptionServer(ServerContext& srv,
 
        std::string source = findDevPath();
 
+       if (getState() == State::Encrypted) {
+               //"error_partially_encrypted"
+               if (!FileFooter::exist(source) && !UpgradeSupport::checkUpgradeFlag()) {
+                       // Trigger key migration process
+                       UpgradeSupport::createUpgradeFlag();
+               }
+       }
+
        engine.reset(new INTERNAL_ENGINE(
                source, INTERNAL_PATH,
                ProgressBar([](int v) {