Replace private implemetation with interface.
[platform/core/security/key-manager.git] / src / manager / client / client-manager-impl.h
index 527c6c6..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 RawData &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 RawData &password, Certificate &cert);
+    int getCertificate(const Alias &alias, const std::string &password, CertificateShPtr &cert);
+    int getCertificateAliasVector(AliasVector &aliasVector);
 
-    int saveData(const Alias &alias, const RawData &rawData, const Policy &policy);
+    int saveData(const Alias &alias, const RawBuffer &rawData, const Policy &policy);
     int removeData(const Alias &alias);
-    int getData(const Alias &alias, const RawData &password, RawData &cert);
+    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,
+        const Alias &publicKeyAlias,
+        const Policy &policyPrivateKey = Policy(),
+        const Policy &policyPublicKey = Policy());
+
+    int createKeyPairECDSA(
+        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,
         DBDataType dataType,
-        const RawData &rawData,
+        const RawBuffer &rawData,
         const Policy &policy);
 
     int removeBinaryData(
         const Alias &alias,
         DBDataType dataType);
-        
+
     int getBinaryData(
         const Alias &alias,
         DBDataType sendDataType,
-        const RawData &password,
+        const std::string &password,
         DBDataType &recvDataType,
-        RawData &rawData);
+        RawBuffer &rawData);
+
+    int getBinaryDataAliasVector(
+        DBDataType sendDataType,
+        AliasVector &aliasVector);
 
     int m_counter;
+    static bool s_isInit;
 };
 
 } // namespace CKM