X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=resource%2Fcsdk%2Fsecurity%2Fsrc%2Fresourcemanager.c;h=6d7c8e1cf03b60c15414bcf61fc9b84f84322778;hb=3c093548382bb2542c87a67e6e5fa32552c29cb3;hp=fe097e68a441fb051c913f5284318931ff3dfdf8;hpb=bb93e3a07afd2126aa7665c4c56de50e2a1c9bfa;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/security/src/resourcemanager.c b/resource/csdk/security/src/resourcemanager.c index fe097e6..6d7c8e1 100644 --- a/resource/csdk/security/src/resourcemanager.c +++ b/resource/csdk/security/src/resourcemanager.c @@ -18,73 +18,72 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +#include #include "resourcemanager.h" #include "securevirtualresourcetypes.h" #include "aclresource.h" #include "pstatresource.h" #include "doxmresource.h" #include "credresource.h" -#include "svcresource.h" #include "amaclresource.h" #include "oic_malloc.h" #include "oic_string.h" #include "logger.h" #include "utlist.h" -#include -#define TAG "SRM-RM" +//#ifdef DIRECT_PAIRING +#include "pconfresource.h" +#include "dpairingresource.h" +//#endif // DIRECT_PAIRING +#include "verresource.h" +#include "psinterface.h" + +#define TAG "OIC_SRM_RM" -#ifdef __WITH_X509__ +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) #include "crlresource.h" -#endif // __WITH_X509__ +#endif // __WITH_DTLS__ || __WITH_TLS__ -/** - * 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) { - OIC_LOG (DEBUG, TAG, "SRM sending SRM response"); - OCEntityHandlerResponse response = {.requestHandle = NULL}; + OIC_LOG(DEBUG, TAG, "SRM sending SRM response"); + OCStackResult ret = OC_STACK_ERROR; + if (ehRequest) { + OCEntityHandlerResponse response = {.requestHandle = 0}; OCSecurityPayload ocPayload = {.base = {.type = PAYLOAD_TYPE_INVALID}}; 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; + ret = InitPersistentStorageInterface(); + /* * doxm resource should be initialized first as it contains the DeviceID * which MAY be used during initialization of other resources. */ - ret = InitDoxmResource(); - + if(OC_STACK_OK == ret) + { + ret = InitDoxmResource(); + } if(OC_STACK_OK == ret) { ret = InitPstatResource(); @@ -97,20 +96,30 @@ OCStackResult InitSecureResources( ) { ret = InitCredResource(); } -#ifdef __WITH_X509__ +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) if(OC_STACK_OK == ret) { ret = InitCRLResource(); } -#endif // __WITH_X509__ +#endif // __WITH_DTLS__ || __WITH_TLS__ if(OC_STACK_OK == ret) { - ret = InitSVCResource(); - } - 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,22 +128,22 @@ 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(); DeInitCredResource(); DeInitDoxmResource(); DeInitPstatResource(); -#ifdef __WITH_X509__ +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) DeInitCRLResource(); -#endif // __WITH_X509__ - DeInitSVCResource(); +#endif // __WITH_DTLS__ || __WITH_TLS__ DeInitAmaclResource(); +//#ifdef DIRECT_PAIRING + DeInitPconfResource(); + DeInitDpairingResource(); +//#endif // DIRECT_PAIRING + DeInitVerResource(); + DeinitPersistentStorageInterface(); return OC_STACK_OK; }