From 10e9a1524633b81fd263648b9e4556d039bd5bdb Mon Sep 17 00:00:00 2001 From: Bartlomiej Grzelewski Date: Mon, 30 Jun 2014 20:46:16 +0200 Subject: [PATCH] Add openssl initialization in client library. Change-Id: I1043801db5743d855902c85c16a9acb22c3ed3a0 --- src/manager/client/client-manager-impl.cpp | 27 +++++++++++++++++++++++++++ src/manager/client/client-manager-impl.h | 7 +++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/manager/client/client-manager-impl.cpp b/src/manager/client/client-manager-impl.cpp index 6b5301d..8eb3049 100644 --- a/src/manager/client/client-manager-impl.cpp +++ b/src/manager/client/client-manager-impl.cpp @@ -18,6 +18,8 @@ * @version 1.0 * @brief Manager implementation. */ +#include + #include #include @@ -26,8 +28,33 @@ #include #include + +namespace { + +void clientInitialize(void) { + OpenSSL_add_all_ciphers(); + OpenSSL_add_all_algorithms(); + OpenSSL_add_all_digests(); +} + +} // namespace anonymous + namespace CKM { +bool Manager::ManagerImpl::s_isInit = false; + +Manager::ManagerImpl::ManagerImpl() + : m_counter(0) +{ + // TODO secure with mutex + if (!s_isInit) { + s_isInit = true; + clientInitialize(); + } + +} + + int Manager::ManagerImpl::saveBinaryData( const Alias &alias, DBDataType dataType, diff --git a/src/manager/client/client-manager-impl.h b/src/manager/client/client-manager-impl.h index 3d4154f..92ccab1 100644 --- a/src/manager/client/client-manager-impl.h +++ b/src/manager/client/client-manager-impl.h @@ -29,9 +29,7 @@ namespace CKM { class Manager::ManagerImpl { public: - ManagerImpl() - : m_counter(0) - {} + ManagerImpl(); virtual ~ManagerImpl(){} int saveKey(const Alias &alias, const Key &key, const Policy &policy); @@ -48,7 +46,7 @@ public: int removeData(const Alias &alias); int getData(const Alias &alias, const std::string &password, RawBuffer &cert); int getDataAliasVector(AliasVector &aliasVector); - + int createKeyPairRSA( const int size, // size in bits [1024, 2048, 4096] const Alias &privateKeyAlias, @@ -112,6 +110,7 @@ protected: AliasVector &aliasVector); int m_counter; + static bool s_isInit; }; } // namespace CKM -- 2.7.4