Imported Upstream version 1.1.0
[platform/upstream/iotivity.git] / resource / csdk / security / src / resourcemanager.c
index 19fb099..198b62a 100644 (file)
@@ -18,6 +18,7 @@
 //
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
+#include <string.h>
 #include "resourcemanager.h"
 #include "securevirtualresourcetypes.h"
 #include "aclresource.h"
 #include "oic_string.h"
 #include "logger.h"
 #include "utlist.h"
-#include <string.h>
+
+//#ifdef DIRECT_PAIRING
+#include "pconfresource.h"
+#include "dpairingresource.h"
+//#endif // DIRECT_PAIRING
+#include "verresource.h"
 
 #define TAG "SRM-RM"
 
 #include "crlresource.h"
 #endif // __WITH_X509__
 
-/**
- * This method is used by all secure resource modules to send responses to REST queries.
- *
- * @param ehRequest pointer to entity handler request data structure.
- * @param ehRet result code from entity handler.
- * @param rspPayload response payload in JSON.
- *
- * @retval  OC_STACK_OK for Success, otherwise some error value
- */
 OCStackResult SendSRMResponse(const OCEntityHandlerRequest *ehRequest,
-        OCEntityHandlerResult ehRet, const char *rspPayload)
+        OCEntityHandlerResult ehRet, uint8_t *cborPayload, size_t size)
 {
-    OC_LOG (DEBUG, TAG, "SRM sending SRM response");
+    OIC_LOG(DEBUG, TAG, "SRM sending SRM response");
     OCEntityHandlerResponse response = {.requestHandle = NULL};
+    OCStackResult ret = OC_STACK_ERROR;
+
     if (ehRequest)
     {
         OCSecurityPayload ocPayload = {.base = {.type = PAYLOAD_TYPE_INVALID}};
@@ -59,21 +58,17 @@ OCStackResult SendSRMResponse(const OCEntityHandlerRequest *ehRequest,
         response.requestHandle = ehRequest->requestHandle;
         response.resourceHandle = ehRequest->resource;
         response.ehResult = ehRet;
-        response.payload = (OCPayload*)(&ocPayload);
+        response.payload = (OCPayload *)(&ocPayload);
         response.payload->type = PAYLOAD_TYPE_SECURITY;
-        ((OCSecurityPayload*)response.payload)->securityData = (char *)rspPayload;
+        ((OCSecurityPayload *)response.payload)->securityData = cborPayload;
+        ((OCSecurityPayload *)response.payload)->payloadSize = size;
         response.persistentBufferFlag = 0;
 
-        return OCDoResponse(&response);
+        ret = OCDoResponse(&response);
     }
-    return OC_STACK_ERROR;
+    return ret;
 }
 
-/**
- * Initialize all secure resources ( /oic/sec/cred, /oic/sec/acl, /oic/sec/pstat etc).
- *
- * @retval  OC_STACK_OK for Success, otherwise some error value
- */
 OCStackResult InitSecureResources( )
 {
     OCStackResult ret;
@@ -106,11 +101,25 @@ OCStackResult InitSecureResources( )
     if(OC_STACK_OK == ret)
     {
         ret = InitSVCResource();
-       }
-       if(OC_STACK_OK == ret)
+    }
+    if(OC_STACK_OK == ret)
     {
         ret = InitAmaclResource();
     }
+//#ifdef DIRECT_PAIRING
+    if(OC_STACK_OK == ret)
+    {
+        ret = InitPconfResource();
+    }
+    if(OC_STACK_OK == ret)
+    {
+        ret = InitDpairingResource();
+    }
+//#endif // DIRECT_PAIRING
+    if(OC_STACK_OK == ret)
+    {
+        ret = InitVerResource();
+    }
     if(OC_STACK_OK != ret)
     {
         //TODO: Update the default behavior if one of the SVR fails
@@ -119,11 +128,6 @@ OCStackResult InitSecureResources( )
     return ret;
 }
 
-/**
- * Perform cleanup for secure resources ( /oic/sec/cred, /oic/sec/acl, /oic/sec/pstat etc).
- *
- * @retval  OC_STACK_OK for Success, otherwise some error value
- */
 OCStackResult DestroySecureResources( )
 {
     DeInitACLResource();
@@ -135,6 +139,11 @@ OCStackResult DestroySecureResources( )
 #endif // __WITH_X509__
     DeInitSVCResource();
     DeInitAmaclResource();
+//#ifdef DIRECT_PAIRING
+    DeInitPconfResource();
+    DeInitDpairingResource();
+//#endif // DIRECT_PAIRING
+    DeInitVerResource();
 
     return OC_STACK_OK;
 }