Fix errors in client.
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Mon, 23 Jun 2014 14:17:30 +0000 (16:17 +0200)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Fri, 12 Sep 2014 12:58:32 +0000 (14:58 +0200)
Change-Id: I5634f3ff2981663ee34026dc4860153604a49f17

src/include/ckm/key-manager.h
src/manager/client/client-manager-impl.cpp

index 6d4eb82..4f97ae9 100644 (file)
@@ -153,6 +153,11 @@ public:
 
     int saveKey(const Alias &alias, const Key &key, const Policy &policy);
     int saveCertificate(const Alias &alias, const Certificate &cert, const Policy &policy);
+
+    /*
+     * Data must be extractable. If you set extractable bit to false funciton will
+     * return ERROR_INPUT_PARAM.
+     */
     int saveData(const Alias &alias, const RawBuffer &data, const Policy &policy);
 
     int removeKey(const Alias &alias);
index d9b162c..d5bf19a 100644 (file)
@@ -74,6 +74,8 @@ int Manager::ManagerImpl::saveBinaryData(
 }
 
 int Manager::ManagerImpl::saveKey(const Alias &alias, const Key &key, const Policy &policy) {
+    if (key.empty())
+        return KEY_MANAGER_API_ERROR_INPUT_PARAM;
     return saveBinaryData(alias, toDBDataType(key.getType()), key.getDER(), policy);
 }
 
@@ -86,6 +88,8 @@ int Manager::ManagerImpl::saveCertificate(
 }
 
 int Manager::ManagerImpl::saveData(const Alias &alias, const RawBuffer &rawData, const Policy &policy) {
+    if (!policy.extractable)
+        return KEY_MANAGER_API_ERROR_INPUT_PARAM;
     return saveBinaryData(alias, DBDataType::BINARY_DATA, rawData, policy);
 }