Replace private implemetation with interface.
[platform/core/security/key-manager.git] / src / manager / client / client-manager-impl.h
index 6bd8bd5..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 requestKeyAliasVector(AliasVector &aliasVector);
+    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 requestCertificateAliasVector(AliasVector &aliasVector);
+    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 requestDataAliasVector(AliasVector &aliasVector);
-    
+    int getDataAliasVector(AliasVector &aliasVector);
+
     int createKeyPairRSA(
         const int size,              // size in bits [1024, 2048, 4096]
         const Alias &privateKeyAlias,
@@ -57,12 +56,40 @@ public:
         const Policy &policyPublicKey = Policy());
 
     int createKeyPairECDSA(
-        const Key::ECType type,
+        ElipticCurve type,
         const Alias &privateKeyAlias,
         const Alias &publicKeyAlias,
         const Policy &policyPrivateKey = Policy(),
         const Policy &policyPublicKey = Policy());
 
+    int getCertificateChain(
+        const CertificateShPtr &certificate,
+        const CertificateShPtrVector &untrustedCertificates,
+        CertificateShPtrVector &certificateChainVector);
+
+    int getCertificateChain(
+        const CertificateShPtr &certificate,
+        const AliasVector &untrustedCertificates,
+        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(
         const Alias &alias,
@@ -73,7 +100,7 @@ protected:
     int removeBinaryData(
         const Alias &alias,
         DBDataType dataType);
-        
+
     int getBinaryData(
         const Alias &alias,
         DBDataType sendDataType,
@@ -81,11 +108,12 @@ protected:
         DBDataType &recvDataType,
         RawBuffer &rawData);
 
-    int requestBinaryDataAliasVector(
+    int getBinaryDataAliasVector(
         DBDataType sendDataType,
         AliasVector &aliasVector);
 
     int m_counter;
+    static bool s_isInit;
 };
 
 } // namespace CKM