summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsangwan.kwon <sangwan.kwon@samsung.com>2016-12-27 19:14:53 +0900
committersangwan.kwon <sangwan.kwon@samsung.com>2016-12-27 19:14:53 +0900
commitd490b19b41d4159f1760d55b9a03a6f7dc133793 (patch)
treea1e327312690173d151c93399cf486069da40856
parent878be73a990b4e55523c7553c69492fabcc36d1a (diff)
downloadcert-svc-d490b19b41d4159f1760d55b9a03a6f7dc133793.tar.gz
cert-svc-d490b19b41d4159f1760d55b9a03a6f7dc133793.tar.bz2
cert-svc-d490b19b41d4159f1760d55b9a03a6f7dc133793.zip
Remove singleton pattern on xmlSec
[AS-IS] * For performance, singleton pattern is adopted on xmlSec. * This makes issue which xmlSec's dtor is not called. [TO-BE] * Remove singletone pattern on xmlSec class. Change-Id: Ibaaff16277ca7e97bd328e9899ee0dda596b5dea Signed-off-by: sangwan.kwon <sangwan.kwon@samsung.com>
-rw-r--r--src/vcore/BaseValidator.cpp6
-rw-r--r--src/vcore/BaseValidator.h1
-rw-r--r--src/vcore/XmlsecAdapter.cpp16
-rw-r--r--src/vcore/XmlsecAdapter.h4
4 files changed, 5 insertions, 22 deletions
diff --git a/src/vcore/BaseValidator.cpp b/src/vcore/BaseValidator.cpp
index e978fb7..717ad32 100644
--- a/src/vcore/BaseValidator.cpp
+++ b/src/vcore/BaseValidator.cpp
@@ -317,7 +317,7 @@ VCerr BaseValidator::baseCheck(const std::string &contentPath,
m_context.allowBrokenChain = true;
// XmlSec validate
- XmlSecSingleton::Instance().validate(m_context);
+ m_xmlSec.validate(m_context);
// Check reference of 'Object' tag - OID
m_data.setReference(m_context.referenceSet);
@@ -387,9 +387,9 @@ VCerr BaseValidator::baseCheckList(bool checkOcsp, const UriList &uriList)
// XmlSec validate
if (uriList.size() == 0)
- XmlSecSingleton::Instance().validateNoHash(m_context);
+ m_xmlSec.validateNoHash(m_context);
else
- XmlSecSingleton::Instance().validatePartialHash(m_context, uriList);
+ m_xmlSec.validatePartialHash(m_context, uriList);
if (checkOcsp && Ocsp::check(m_data) == Ocsp::Result::REVOKED) {
LogError("Certificate is Revoked by OCSP server.");
diff --git a/src/vcore/BaseValidator.h b/src/vcore/BaseValidator.h
index 2a084a7..57db716 100644
--- a/src/vcore/BaseValidator.h
+++ b/src/vcore/BaseValidator.h
@@ -71,6 +71,7 @@ private:
bool checkObjectReferences(void);
PluginHandler m_pluginHandler;
+ XmlSec m_xmlSec;
};
} // namespace ValidationCore
diff --git a/src/vcore/XmlsecAdapter.cpp b/src/vcore/XmlsecAdapter.cpp
index 7705613..ed86288 100644
--- a/src/vcore/XmlsecAdapter.cpp
+++ b/src/vcore/XmlsecAdapter.cpp
@@ -43,14 +43,11 @@
#include <dpl/assert.h>
#include <dpl/log/log.h>
-#include <dpl/singleton_impl.h>
#include <vcore/XmlsecAdapter.h>
#define VCORE_ERRORS_BUFFER_SIZE 1024
-IMPLEMENT_SINGLETON(ValidationCore::XmlSec)
-
namespace {
struct FileWrapper {
@@ -168,9 +165,7 @@ void LogDebugPrint(const char *file,
LogDebug(buff);
}
-XmlSec::XmlSec()
- : m_initialized(false)
- , m_pList(nullptr)
+XmlSec::XmlSec() : m_pList(nullptr)
{
LIBXML_TEST_VERSION
xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
@@ -213,15 +208,10 @@ XmlSec::XmlSec()
ThrowMsg(Exception::InternalError,
"Xmlsec-crypto initialization failed.");
}
-
- m_initialized = true;
}
XmlSec::~XmlSec()
{
- if (m_initialized)
- return;
-
xmlSecCryptoShutdown();
xmlSecCryptoAppShutdown();
xmlSecShutdown();
@@ -229,7 +219,6 @@ XmlSec::~XmlSec()
xsltCleanupGlobals();
#endif
s_prefixPath.clear();
- m_initialized = false;
}
void XmlSec::validateFile(XmlSecContext &context, xmlSecKeysMngrPtr mngrPtr)
@@ -405,9 +394,6 @@ void XmlSec::validateInternal(XmlSecContext &context)
Assert(!!context.certificatePtr || !context.certificatePath.empty());
xmlSecErrorsSetCallback(LogDebugPrint);
- if (!m_initialized)
- ThrowMsg(Exception::InternalError, "XmlSec is not initialized");
-
std::unique_ptr<xmlSecKeysMngr, std::function<void(xmlSecKeysMngrPtr)>>
mngrPtr(xmlSecKeysMngrCreate(), xmlSecKeysMngrDestroy);
diff --git a/src/vcore/XmlsecAdapter.h b/src/vcore/XmlsecAdapter.h
index 269ebd9..f59cda2 100644
--- a/src/vcore/XmlsecAdapter.h
+++ b/src/vcore/XmlsecAdapter.h
@@ -28,7 +28,6 @@
#include <xmlsec/keysmngr.h>
#include <dpl/exception.h>
-#include <dpl/singleton.h>
#include <vcore/Certificate.h>
#include <vcore/SignatureData.h>
@@ -127,7 +126,6 @@ private:
};
ValidateMode m_mode;
- bool m_initialized;
const std::list<std::string> *m_pList;
void loadDERCertificateMemory(XmlSecContext &context, xmlSecKeysMngrPtr mngr);
@@ -143,6 +141,4 @@ private:
static void fileExtractPrefix(XmlSecContext &context);
};
-typedef VcoreDPL::Singleton<XmlSec> XmlSecSingleton;
-
} // namespace ValidationCore