Implement encryption/decryption API
[platform/core/security/key-manager.git] / src / manager / client / client-manager-impl.h
index bf6d279..e93b89c 100644 (file)
@@ -20,7 +20,7 @@
  */
 #pragma once
 
-#include <protocols.h>
+#include <data-type.h>
 #include <client-common.h>
 #include <ckm/ckm-type.h>
 #include <ckm/ckm-key.h>
@@ -51,7 +51,7 @@ public:
         const Policy &keyPolicy,
         const Policy &certPolicy);
     int getPKCS12(const Alias &alias, PKCS12ShPtr &pkcs);
-
+    int getPKCS12(const Alias &alias, const Password &keyPass, const Password &certPass, PKCS12ShPtr &pkcs);
 
     int removeAlias(const Alias &alias);
 
@@ -110,22 +110,34 @@ public:
 
     int setPermission(const Alias &alias, const Label &accessor, PermissionMask permissionMask);
 
+    int encrypt(const CryptoAlgorithm &algo,
+                const Alias &keyAlias,
+                const Password &password,
+                const RawBuffer& plain,
+                RawBuffer& encrypted);
+
+    int decrypt(const CryptoAlgorithm &algo,
+                const Alias &keyAlias,
+                const Password &password,
+                const RawBuffer& encrypted,
+                RawBuffer& decrypted);
+
 protected:
     int saveBinaryData(
         const Alias &alias,
-        DBDataType dataType,
+        DataType dataType,
         const RawBuffer &rawData,
         const Policy &policy);
 
     int getBinaryData(
         const Alias &alias,
-        DBDataType sendDataType,
+        DataType sendDataType,
         const Password &password,
-        DBDataType &recvDataType,
+        DataType &recvDataType,
         RawBuffer &rawData);
 
     int getBinaryDataAliasVector(
-        DBDataType sendDataType,
+        DataType sendDataType,
         AliasVector &aliasVector);
 
     int createKeyPair(
@@ -139,6 +151,7 @@ protected:
     int m_counter;
     CKM::ServiceConnection m_storageConnection;
     CKM::ServiceConnection m_ocspConnection;
+    CKM::ServiceConnection m_encryptionConnection;
 };
 
 } // namespace CKM