X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fsecurity%2Fsrc%2Fresourcemanager.c;h=6d7c8e1cf03b60c15414bcf61fc9b84f84322778;hb=3c093548382bb2542c87a67e6e5fa32552c29cb3;hp=5eefbd4a5bd1dfef64151d2780167069aef2231e;hpb=6dac22e4428a50d74a11603436b95650c22bc11f;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/security/src/resourcemanager.c b/resource/csdk/security/src/resourcemanager.c index 5eefbd4..6d7c8e1 100644 --- a/resource/csdk/security/src/resourcemanager.c +++ b/resource/csdk/security/src/resourcemanager.c @@ -18,69 +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 PCF("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" + +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) +#include "crlresource.h" +#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) { - OC_LOG (INFO, TAG, PCF("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(); @@ -93,14 +96,30 @@ OCStackResult InitSecureResources( ) { ret = InitCredResource(); } +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) if(OC_STACK_OK == ret) { - ret = InitSVCResource(); - } - if(OC_STACK_OK == ret) + ret = InitCRLResource(); + } +#endif // __WITH_DTLS__ || __WITH_TLS__ + 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 @@ -109,17 +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(); +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) + DeInitCRLResource(); +#endif // __WITH_DTLS__ || __WITH_TLS__ + DeInitAmaclResource(); +//#ifdef DIRECT_PAIRING + DeInitPconfResource(); + DeInitDpairingResource(); +//#endif // DIRECT_PAIRING + DeInitVerResource(); + DeinitPersistentStorageInterface(); return OC_STACK_OK; }