From e44e21161db17dcf685cd63d0967de6a6f72ea76 Mon Sep 17 00:00:00 2001 From: Nathan Heldt-Sheller Date: Fri, 10 Jul 2015 22:12:47 -0700 Subject: [PATCH] Fixed Secure Resource Mgr Policy Engine to allow for wildcard resource URIs. The Policy Engine was not checking for wilcard resource URIs in Access Control List entry (URI = "*"); this has been added per Security Spec A v0.96r3. Change-Id: Iff6d8618cee2d177aa1b03dc3c58a78cd1fd6061 Signed-off-by: Nathan Heldt-Sheller Reviewed-on: https://gerrit.iotivity.org/gerrit/1626 Tested-by: jenkins-iotivity Reviewed-by: Sakthivel Samidurai Reviewed-by: Shilpa Sodani Reviewed-by: Sachin Agrawal --- resource/csdk/security/include/internal/srmresourcestrings.h | 1 + resource/csdk/security/src/policyengine.c | 3 ++- resource/csdk/security/src/srmresourcestrings.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/resource/csdk/security/include/internal/srmresourcestrings.h b/resource/csdk/security/include/internal/srmresourcestrings.h index 794358e..af37507 100644 --- a/resource/csdk/security/include/internal/srmresourcestrings.h +++ b/resource/csdk/security/include/internal/srmresourcestrings.h @@ -79,6 +79,7 @@ extern const char * OIC_JSON_SM_NAME; extern OicUuid_t WILDCARD_SUBJECT_ID; extern size_t WILDCARD_SUBJECT_ID_LEN; +extern const char * WILDCARD_RESOURCE_URI; //Ownership Transfer Methods extern const char * OXM_JUST_WORKS; diff --git a/resource/csdk/security/src/policyengine.c b/resource/csdk/security/src/policyengine.c index 28ece4a..ef15fad 100644 --- a/resource/csdk/security/src/policyengine.c +++ b/resource/csdk/security/src/policyengine.c @@ -196,7 +196,8 @@ exit: { for(size_t n = 0; n < acl->resourcesLen; n++) { - if(0 == strcmp(resource, acl->resources[n])) // TODO null terms? + if(0 == strcmp(resource, acl->resources[n]) || // TODO null terms? + 0 == strcmp(WILDCARD_RESOURCE_URI, acl->resources[n])) { return true; } diff --git a/resource/csdk/security/src/srmresourcestrings.c b/resource/csdk/security/src/srmresourcestrings.c index b9e1f3a..43e2c5c 100644 --- a/resource/csdk/security/src/srmresourcestrings.c +++ b/resource/csdk/security/src/srmresourcestrings.c @@ -76,7 +76,8 @@ const char * OIC_JSON_PRIVATEDATA_NAME = "pvdata"; const char * OIC_JSON_PERIOD_NAME = "period"; OicUuid_t WILDCARD_SUBJECT_ID = {"*"}; -size_t WILDCARD_SUBJECT_ID_LEN = 1 ; +size_t WILDCARD_SUBJECT_ID_LEN = 1; +const char * WILDCARD_RESOURCE_URI = "*"; //Ownership Transfer Methods const char * OXM_JUST_WORKS = "oic.sec.doxm.jw"; -- 2.7.4