Implement asynchronous encryption/decryption API
[platform/core/security/key-manager.git] / src / manager / client-async / client-manager-async-impl.h
index b3aea30..02c132d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -53,6 +53,12 @@ public:
             const Alias& alias,
             const RawBuffer& data,
             const Policy& policy);
+    void savePKCS12(
+            const ObserverPtr& observer,
+            const Alias &alias,
+            const PKCS12ShPtr &pkcs,
+            const Policy &keyPolicy,
+            const Policy &certPolicy);
 
     void createSignature(
             const ObserverPtr& observer,
@@ -78,13 +84,13 @@ public:
             const ObserverPtr& observer,
             const Alias& alias,
             const Label& accessor,
-            Permission newPermission);
+            PermissionMask permissionMask);
 
     // generic methods
     void saveBinaryData(
             const ManagerAsync::ObserverPtr& observer,
             const Alias& alias,
-            DBDataType dataType,
+            DataType dataType,
             const RawBuffer& rawData,
             const Policy& policy);
 
@@ -95,12 +101,18 @@ public:
     void getBinaryData(
             const ManagerAsync::ObserverPtr& observer,
             const Alias &alias,
-            DBDataType sendDataType,
+            DataType sendDataType,
             const Password &password);
 
+    void getPKCS12(
+            const ManagerAsync::ObserverPtr& observer,
+            const Alias &alias,
+            const Password &keyPassword,
+            const Password &certPassword);
+
     void getBinaryDataAliasVector(
             const ManagerAsync::ObserverPtr& observer,
-            DBDataType dataType);
+            DataType dataType);
 
     void createKeyPair(
             const ManagerAsync::ObserverPtr& observer,
@@ -111,15 +123,23 @@ public:
             const Policy &policyPrivateKey,
             const Policy &policyPublicKey);
 
+    void createKeyAES(
+            const ManagerAsync::ObserverPtr& observer,
+            const size_t  size,
+            const Alias  &keyAlias,
+            const Policy &policyKey);
+
     template <typename T>
     void getCertChain(
             const ManagerAsync::ObserverPtr& observer,
             LogicCommand command,
             const CertificateShPtr &certificate,
-            const T &sendData)
+            const T &untrusted,
+            const T &trusted,
+            bool useSystemTrustedCertificates)
     {
         observerCheck(observer);
-        if (!certificate || sendData.empty()) {
+        if (!certificate) {
             observer->ReceivedError(CKM_API_ERROR_INPUT_PARAM);
             return;
         }
@@ -128,10 +148,20 @@ public:
                           static_cast<int>(command),
                           m_counter,
                           certificate->getDER(),
-                          sendData);
+                          untrusted,
+                          trusted,
+                          useSystemTrustedCertificates);
         }, [&observer](int error){ observer->ReceivedError(error); } );
     }
 
+    void crypt(
+            const ObserverPtr& observer,
+            const CryptoAlgorithm& algo,
+            const Alias& keyAlias,
+            const Password& password,
+            const RawBuffer& input,
+            bool encryption);
+
 private:
 
     template <typename... Args>