Divide alias into name & label in getCertificateChain: code re-factor.
authorMaciej J. Karpiuk <m.karpiuk2@samsung.com>
Wed, 5 Nov 2014 11:08:01 +0000 (12:08 +0100)
committerMaciej J. Karpiuk <m.karpiuk2@samsung.com>
Tue, 17 Feb 2015 10:00:04 +0000 (11:00 +0100)
Change-Id: I373a87f9421dac3b5e43e8c835d99944676822b1

src/manager/client-async/client-manager-async.cpp
src/manager/client/client-manager-impl.cpp
src/manager/service/ckm-logic.cpp
src/manager/service/ckm-logic.h
src/manager/service/ckm-service.cpp

index 0fe33d5..cde7589 100644 (file)
@@ -175,10 +175,16 @@ void ManagerAsync::getCertificateChain(const ObserverPtr& observer,
                                        const CertificateShPtr& certificate,
                                        const AliasVector& untrustedCertificates)
 {
+    LabelNameVector untrusted_certs;
+    for (auto &e: untrustedCertificates) {
+        AliasSupport helper(e);
+        untrusted_certs.push_back(std::make_pair(helper.getLabel(), helper.getName()));
+    }
+
     m_impl->getCertChain(observer,
                          LogicCommand::GET_CHAIN_ALIAS,
                          certificate,
-                         untrustedCertificates);
+                         untrusted_certs);
 }
 
 void ManagerAsync::createSignature(const ObserverPtr& observer,
index f6ffdb2..6e75f31 100644 (file)
@@ -474,11 +474,17 @@ int ManagerImpl::getCertificateChain(
     const AliasVector &untrustedCertificates,
     CertificateShPtrVector &certificateChainVector)
 {
+    LabelNameVector untrusted_certs;
+    for (auto &e: untrustedCertificates) {
+        AliasSupport helper(e);
+        untrusted_certs.push_back(std::make_pair(helper.getLabel(), helper.getName()));
+    }
+
     return getCertChain(
         LogicCommand::GET_CHAIN_ALIAS,
         ++m_counter,
         certificate,
-        untrustedCertificates,
+        untrusted_certs,
         certificateChainVector,
         m_storageConnection);
 }
index b30e765..0540739 100644 (file)
@@ -730,10 +730,9 @@ RawBuffer CKMLogic::getCertificateChain(
     Credentials &cred,
     int commandId,
     const RawBuffer &certificate,
-    const AliasVector &aliasVector)
+    const LabelNameVector &labelNameVector)
 {
     int retCode = CKM_API_SUCCESS;
-    std::size_t separator_pos = 0;
     RawBufferVector chainRawVector;
     try {
         CertificateImpl cert(certificate, DataFormat::FORM_DER);
@@ -746,26 +745,8 @@ RawBuffer CKMLogic::getCertificateChain(
             goto senderror;
         }
 
-        for (auto &i: aliasVector) {
-            if ((separator_pos = i.rfind(LABEL_NAME_SEPARATOR)) == Alias::npos) {
-                // No label prefixed in alias. put empty label
-                retCode = getDataHelper(
-                        cred,
-                        DBDataType::CERTIFICATE,
-                        i,
-                        Label(),
-                        Password(),
-                        row);
-            }
-            else {
-                retCode = getDataHelper(
-                        cred,
-                        DBDataType::CERTIFICATE,
-                        i.substr(separator_pos+strlen(LABEL_NAME_SEPARATOR)), // alias
-                        Label(i.substr(0, separator_pos)),                    // label
-                        Password(),
-                        row);
-            }
+        for (auto &i: labelNameVector) {
+            retCode = getDataHelper(cred, DBDataType::CERTIFICATE, i.second, i.first, Password(), row);
 
             if (retCode != CKM_API_SUCCESS)
                 goto senderror;
index 299fb29..e462631 100644 (file)
@@ -123,7 +123,7 @@ public:
         Credentials &cred,
         int commandId,
         const RawBuffer &certificate,
-        const AliasVector &aliasVector);
+        const LabelNameVector &labelNameVector);
 
     RawBuffer  createSignature(
         Credentials &cred,
index 8e81103..fcbb9d3 100644 (file)
@@ -280,13 +280,13 @@ RawBuffer CKMService::processStorage(Credentials &cred, MessageBuffer &buffer)
         case LogicCommand::GET_CHAIN_ALIAS:
         {
             RawBuffer certificate;
-            AliasVector aliasVector;
-            buffer.Deserialize(certificate, aliasVector);
+            LabelNameVector untrusted_certs;
+            buffer.Deserialize(certificate, untrusted_certs);
             return m_logic->getCertificateChain(
                 cred,
                 msgID,
                 certificate,
-                aliasVector);
+                untrusted_certs);
         }
         case LogicCommand::CREATE_SIGNATURE:
         {