Replace private implemetation with interface.
[platform/core/security/key-manager.git] / src / manager / client / client-manager-impl.h
index 7fa1d5f..9e8d638 100644 (file)
 #include <protocols.h>
 
 #include <ckm/ckm-type.h>
-#include <ckm/key-manager.h>
+#include <ckm/ckm-key.h>
+#include <ckm/ckm-manager.h>
 
 namespace CKM {
 
-class Manager::ManagerImpl {
+class ManagerImpl : public Manager {
 public:
-    ManagerImpl()
-      : m_counter(0)
-    {}
+    ManagerImpl();
     virtual ~ManagerImpl(){}
 
-    int saveKey(const Alias &alias, const Key &key, const Policy &policy);
+    int saveKey(const Alias &alias, const KeyShPtr &key, const Policy &policy);
     int removeKey(const Alias &alias);
-    int getKey(const Alias &alias, const std::string &password, Key &key);
+    int getKey(const Alias &alias, const std::string &password, KeyShPtr &key);
     int getKeyAliasVector(AliasVector &aliasVector);
 
-    int saveCertificate(const Alias &alias, const Certificate &cert, const Policy &policy);
+    int saveCertificate(const Alias &alias, const CertificateShPtr &cert, const Policy &policy);
     int removeCertificate(const Alias &alias);
-    int getCertificate(const Alias &alias, const std::string &password, Certificate &cert);
+    int getCertificate(const Alias &alias, const std::string &password, CertificateShPtr &cert);
     int getCertificateAliasVector(AliasVector &aliasVector);
 
     int saveData(const Alias &alias, const RawBuffer &rawData, const Policy &policy);
     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,
@@ -64,14 +63,32 @@ public:
         const Policy &policyPublicKey = Policy());
 
     int getCertificateChain(
-        const Certificate &certificate,
-        const CertificateVector &untrustedCertificates,
-        CertificateVector &certificateChainVector);
+        const CertificateShPtr &certificate,
+        const CertificateShPtrVector &untrustedCertificates,
+        CertificateShPtrVector &certificateChainVector);
 
     int getCertificateChain(
-        const Certificate &certificate,
+        const CertificateShPtr &certificate,
         const AliasVector &untrustedCertificates,
-        CertificateVector &certificateChainVector);
+        CertificateShPtrVector &certificateChainVector);
+
+    int createSignature(
+        const Alias &privateKeyAlias,
+        const std::string &password,           // password for private_key
+        const RawBuffer &message,
+        const HashAlgorithm hash,
+        const RSAPaddingAlgorithm padding,
+        RawBuffer &signature);
+
+    int verifySignature(
+        const Alias &publicKeyOrCertAlias,
+        const std::string &password,           // password for public_key (optional)
+        const RawBuffer &message,
+        const RawBuffer &signature,
+        const HashAlgorithm hash,
+        const RSAPaddingAlgorithm padding);
+
+    int ocspCheck(const CertificateShPtrVector &certificateChain, int &ocspCheck);
 
 protected:
     int saveBinaryData(
@@ -96,6 +113,7 @@ protected:
         AliasVector &aliasVector);
 
     int m_counter;
+    static bool s_isInit;
 };
 
 } // namespace CKM