Fixed Certificate update issue during updating RDS mode
[framework/web/wrt-installer.git] / src / jobs / widget_install / task_certify.cpp
index c806945..b3273b1 100644 (file)
@@ -62,6 +62,7 @@ WidgetCertificateData toWidgetCertificateData(const SignatureData &data,
     WidgetCertificateData result;
 
     result.chainId = data.getSignatureNumber();
+    LogDebug("result.chainId : " << result.chainId);
 
     result.owner = data.isAuthorSignature() ?
         WidgetCertificateData::AUTHOR : WidgetCertificateData::DISTRIBUTOR;
@@ -148,8 +149,7 @@ TaskCertify::TaskCertify(InstallerContext &inCont) :
     AddStep(&TaskCertify::stepFinalize);
 }
 
-void TaskCertify::processDistributorSignature(const SignatureData &data,
-                                              bool first)
+void TaskCertify::processDistributorSignature(const SignatureData &data)
 {
     // this signature is verified -
     // no point in check domain WAC_ROOT and WAC_RECOGNIZED
@@ -171,7 +171,7 @@ void TaskCertify::processDistributorSignature(const SignatureData &data,
     m_contextData.wacSecurity.getCertificateChainListRef().push_back(
         collection);
 
-    if (first) {
+    if (data.getSignatureNumber() == 1) {
         m_contextData.wacSecurity.getCertificateListRef().push_back(
             toWidgetCertificateData(data, true));
         m_contextData.wacSecurity.getCertificateListRef().push_back(
@@ -221,8 +221,14 @@ void TaskCertify::stepSignature()
 {
     LogInfo("================ Step: <<Signature>> ENTER ===============");
 
-    std::string widgetPath = m_contextData.locations->getTemporaryRootDir() +
-        "/";
+    std::string widgetPath;
+    if (m_contextData.widgetConfig.packagingType ==
+        WrtDB::PKG_TYPE_DIRECTORY_WEB_APP)
+    {
+        widgetPath = m_contextData.locations->getSourceDir() + "/";
+    } else {
+        widgetPath = m_contextData.locations->getTemporaryPackageDir() + "/";
+    }
 
     SignatureFileInfoSet signatureFiles;
     SignatureFinder signatureFinder(widgetPath);
@@ -235,7 +241,6 @@ void TaskCertify::stepSignature()
     SignatureFileInfoSet::reverse_iterator iter = signatureFiles.rbegin();
     LogInfo("Number of signatures: " << signatureFiles.size());
 
-    bool firstDistributorSignature = true;
     bool testCertificate = false;
 
     bool complianceMode = GlobalDAOReadOnly::getComplianceMode();
@@ -307,8 +312,7 @@ void TaskCertify::stepSignature()
                     continue;
                 }
                 // now signature _must_ be verified
-                processDistributorSignature(data, firstDistributorSignature);
-                firstDistributorSignature = false;
+                processDistributorSignature(data);
             }
 
             bool developerMode = GlobalDAOReadOnly::GetDeveloperMode();