Fix compiler warnings & refactor code after security review
[platform/core/security/device-certificate-manager-backend.git] / src / kse-backend / ksebackendcontext.cpp
index a7b2c36..dd9a890 100644 (file)
@@ -72,8 +72,16 @@ int kse_backend_context::get_certificate(unsigned int index, std::string& outcer
        }
 
        auto& resolver(backend->get_so_resolver());
-       int error = resolver.invoke<int, unsigned int, hal_data *>(&kse_get_certificate_key,
+       int error = 0;
+       try {
+               error = resolver.invoke<int, unsigned int, hal_data *>(&kse_get_certificate_key,
                                        method_name, index, &cert);
+       } catch(...) {
+               BOOST_LOG_SEV(dcm_logger::get(), log_severity::error)
+                                       << "KSE: Got exception when calling resolver.invoke";
+               throw;
+       }
+
        if(error != 0) {
                BOOST_LOG_SEV(dcm_logger::get(), log_severity::error)
                                        << "Failed to get certificate. error=" << error;
@@ -111,17 +119,17 @@ int kse_backend_context::request_certificate_chain(std::string& mutable_chain)
 
        int error = 0;
 
-       if(error = get_certificate(LEAF_CERT_INDEX, leaf_cert))
+       if((error = get_certificate(LEAF_CERT_INDEX, leaf_cert)))
                return error;
-       if(error = get_certificate(SUBCA_CERT_INDEX, subca_cert))
+       if((error = get_certificate(SUBCA_CERT_INDEX, subca_cert)))
                return error;
 
        x509_crt_rewriter cert_writer;
-       if(error = cert_writer.parse(reinterpret_cast<const unsigned char *>(leaf_cert.c_str()),
+       if((error = cert_writer.parse(reinterpret_cast<const unsigned char *>(leaf_cert.c_str())),
                        leaf_cert.length()+1)) {
                return error;
        }
-       if(error = cert_writer.parse(reinterpret_cast<const unsigned char *>(subca_cert.c_str()),
+       if((error = cert_writer.parse(reinterpret_cast<const unsigned char *>(subca_cert.c_str())),
                        subca_cert.length()+1)) {
                return error;
        }
@@ -145,7 +153,11 @@ hal_hash_type _get_hal_hash_type(MessageDigestType digestType) {
        case MD_SHA256: return HAL_HASH_SHA256;
        case MD_SHA384: return HAL_HASH_SHA384;
        case MD_SHA512: return HAL_HASH_SHA512;
-       defalut:        return HAL_HASH_UNKNOWN;
+       case MD_NONE:
+       case MD_MD2:
+       case MD_MD4:
+       case MD_RIPEMD160:
+       defalut:                return HAL_HASH_UNKNOWN;
        }
 }