[IOT-830] Added remove API for all credentials on |credresource|
authorKyungsun Cho <goodsun.cho@samsung.com>
Tue, 1 Dec 2015 05:36:13 +0000 (14:36 +0900)
committerSachin Agrawal <sachin.agrawal@intel.com>
Tue, 1 Dec 2015 18:57:12 +0000 (18:57 +0000)
added all credentials remove API for iotivity client with provisioning
feature. considering commercialization, iotivity client needs not only to
reset SVR data, e.g. doxm, acl and cred resources, but also to remove only
all credential data for its owned servers. for the former case legacy API(s)
could be supported but for the latter case additional API is needed.
the added API for this supports to remove all credentials and update
persistent storage in running iotivity client.
Jira-issue: https://jira.iotivity.org/browse/IOT-830

Change-Id: Icbfab415469bea72caf7a759f6437503bf76dafd
Signed-off-by: Kyungsun Cho <goodsun.cho@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/4377
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sachin Agrawal <sachin.agrawal@intel.com>
resource/csdk/security/include/internal/credresource.h
resource/csdk/security/src/credresource.c

index ae092df..74ea373 100644 (file)
@@ -110,6 +110,15 @@ OCStackResult AddCredential(OicSecCred_t * cred);
  */
 OCStackResult RemoveCredential(const OicUuid_t* credId);
 
+/**
+ * Remove all credential data on credential resource and persistent storage
+ *
+ * @retval
+ *     OC_STACK_OK              - no errors
+ *     OC_STACK_ERROR           - stack process error
+ */
+OCStackResult RemoveAllCredentials(void);
+
 #if defined(__WITH_DTLS__)
 /**
  * This internal callback is used by lower stack (i.e. CA layer) to
index e7235b5..660164b 100644 (file)
@@ -570,6 +570,14 @@ exit:
     return 0;
 }
 
+/**
+ * Get the default value
+ * @retval  NULL for now. Update it when we finalize the default info.
+ */
+static OicSecCred_t* GetCredDefault()
+{
+    return NULL;
+}
 
 /**
  * This function adds the new cred to the credential list.
@@ -631,6 +639,25 @@ OCStackResult RemoveCredential(const OicUuid_t *subject)
 
 }
 
+/**
+ * Remove all credential data on credential resource and persistent storage
+ *
+ * @retval
+ *     OC_STACK_OK              - no errors
+ *     OC_STACK_ERROR           - stack process error
+ */
+OCStackResult RemoveAllCredentials(void)
+{
+    DeleteCredList(gCred);
+    gCred = GetCredDefault();
+
+    if(!UpdatePersistentStorage(gCred))
+    {
+        return OC_STACK_ERROR;
+    }
+    return OC_STACK_OK;
+}
+
 static OCEntityHandlerResult HandlePostRequest(const OCEntityHandlerRequest * ehRequest)
 {
     OCEntityHandlerResult ret = OC_EH_ERROR;
@@ -758,15 +785,6 @@ OCStackResult CreateCredResource()
 }
 
 /**
- * Get the default value
- * @retval  NULL for now. Update it when we finalize the default info.
- */
-static OicSecCred_t* GetCredDefault()
-{
-    return NULL;
-}
-
-/**
  * Initialize Cred resource by loading data from persistent storage.
  *
  * @retval