extern const char * OIC_JSON_PDEVICE_ID_NAME;
extern const char * OIC_JSON_RLIST_NAME;
extern const char * OIC_JSON_HREF_NAME;
+extern const char * OIC_JSON_REL_NAME;
extern const char * OIC_JSON_RT_NAME;
extern const char * OIC_JSON_IF_NAME;
extern const char * OIC_JSON_ROWNERID_NAME;
extern const char * OIC_JSON_ENCODING_NAME;
+extern const char * OIC_JSON_DATA_NAME;
extern const char * OIC_JSON_EMPTY_STRING;
{\r
"acl": {\r
- "aclist":{\r
- "aces":[\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/res",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/p",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/res/types/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/ad",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/amacl",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 2\r
- },\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/sec/doxm",\r
- "rt": "",\r
- "if": ""\r
- } ,\r
- {\r
- "href": "/oic/sec/pstat",\r
- "rt": "",\r
- "if": ""\r
- } \r
- ],\r
- "permission": 2\r
- }\r
- ] \r
- },\r
- "rownerid" : "61646D69-6E44-6576-6963-655575696430"\r
- }, \r
- "pstat": {\r
- "isop": true,\r
- "cm": 2,\r
- "tm": 0,\r
- "om": 3,\r
- "sm": [3],\r
- "deviceid": "61646D69-6E44-6576-6963-655575696430",\r
- "rownerid": "61646D69-6E44-6576-6963-655575696430"\r
- },\r
- "doxm": {\r
- "oxms": [0],\r
- "oxmsel": 0,\r
- "sct": 1,\r
- "owned": true,\r
- "didformat": 0,\r
- "deviceid": "61646D69-6E44-6576-6963-655575696430",\r
- "dpc": false,\r
- "devownerid": "61646D69-6E44-6576-6963-655575696430",\r
- "rownerid": "61646D69-6E44-6576-6963-655575696430"\r
- }\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/p",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/res/types/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/ad",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/amacl",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ } \r
+ ],\r
+ "permission": 2\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "61646D69-6E44-6576-6963-655575696430"\r
+ }, \r
+ "pstat": {\r
+ "isop": true,\r
+ "cm": 2,\r
+ "tm": 0,\r
+ "om": 3,\r
+ "sm": 3,\r
+ "deviceuuid": "61646D69-6E44-6576-6963-655575696430",\r
+ "rowneruuid": "61646D69-6E44-6576-6963-655575696430"\r
+ },\r
+ "doxm": {\r
+ "oxms": [0],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": true,\r
+ "deviceuuid": "61646D69-6E44-6576-6963-655575696430",\r
+ "dpc": false,\r
+ "devowneruuid": "61646D69-6E44-6576-6963-655575696430",\r
+ "rowneruuid": "61646D69-6E44-6576-6963-655575696430"\r
+ }\r
}\r
+++ /dev/null
-{
- "acl": {
- "aclist":{
- "aces":[
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/res",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/p",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/res/types/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/ad",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 2
- },
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/sec/doxm",
- "rt": "",
- "if": ""
- } ,
- {
- "href": "/oic/sec/pstat",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/acl",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/cred",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 7
- }
- ]
- },
- "rownerid" : "61646D69-6E44-6576-6963-655575696430"
- },
- "pstat": {
- "isop": true,
- "cm": 2,
- "tm": 0,
- "om": 3,
- "sm": [3],
- "deviceid": "61646D69-6E44-6576-6963-655575696430",
- "rownerid": "61646D69-6E44-6576-6963-655575696430"
- },
- "doxm": {
- "oxms": [0],
- "oxmsel": 0,
- "sct": 1,
- "owned": true,
- "didformat": 0,
- "deviceid": "61646D69-6E44-6576-6963-655575696430",
- "dpc": false,
- "devownerid": "61646D69-6E44-6576-6963-655575696430",
- "rownerid": "61646D69-6E44-6576-6963-655575696430"
- }
-}
{\r
"acl": {\r
- "aclist":{\r
- "aces":[\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/res",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/res/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/res/types/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/presence",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 2\r
- },\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/sec/doxm",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/pstat",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/acl",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/cred",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 6\r
- },\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/sec/pconf",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/dpairing",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 6\r
- }\r
- ]\r
- },\r
- "rownerid" : "6A757374-776F-726B-4465-765575696430"\r
- },\r
- "pstat": {\r
- "isop": false,\r
- "deviceid": "6A757374-776F-726B-4465-765575696430",\r
- "rownerid": "6A757374-776F-726B-4465-765575696430",\r
- "cm": 2,\r
- "tm": 0,\r
- "om": 3,\r
- "sm": [3]\r
- },\r
- "doxm": {\r
- "oxms": [0],\r
- "oxmsel": 0,\r
- "sct": 1,\r
- "owned": false,\r
- "didformat": 0,\r
- "deviceid": "6A757374-776F-726B-4465-765575696430",\r
- "devownerid": "",\r
- "rownerid": "6A757374-776F-726B-4465-765575696430",\r
- "dpc": true\r
- }\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/res/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/res/types/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/presence",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/acl",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/cred",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 6\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/pconf",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/dpairing",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 6\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "6A757374-776F-726B-4465-765575696430"\r
+ },\r
+ "pstat": {\r
+ "isop": false,\r
+ "deviceuuid": "6A757374-776F-726B-4465-765575696430",\r
+ "rowneruuid": "6A757374-776F-726B-4465-765575696430",\r
+ "cm": 2,\r
+ "tm": 0,\r
+ "om": 3,\r
+ "sm": 3\r
+ },\r
+ "doxm": {\r
+ "oxms": [0],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": false,\r
+ "deviceuuid": "6A757374-776F-726B-4465-765575696430",\r
+ "devowneruuid": "",\r
+ "rowneruuid": "6A757374-776F-726B-4465-765575696430",\r
+ "dpc": true\r
+ }\r
}
\ No newline at end of file
{\r
"acl": {\r
- "aclist":{\r
- "aces":[\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/res",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/res/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/res/types/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/presence",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 2\r
- },\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/sec/doxm",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/pstat",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/acl",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/cred",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 6\r
- },\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/sec/pconf",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/dpairing",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 6\r
- }\r
- ]\r
- },\r
- "rownerid" : "72616E64-5069-6E44-6576-557569643030"\r
- },\r
- "pstat": {\r
- "isop": false,\r
- "deviceid": "72616E64-5069-6E44-6576-557569643030",\r
- "rownerid": "72616E64-5069-6E44-6576-557569643030",\r
- "cm": 2,\r
- "tm": 0,\r
- "om": 3,\r
- "sm": [3]\r
- },\r
- "doxm": {\r
- "oxms": [0,1],\r
- "oxmsel": 0,\r
- "sct": 1,\r
- "owned": false,\r
- "didformat": 0,\r
- "deviceid": "72616E64-5069-6E44-6576-557569643030",\r
- "devownerid": "",\r
- "rownerid": "72616E64-5069-6E44-6576-557569643030",\r
- "dpc": true\r
- }\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/res/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/res/types/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/presence",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/acl",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/cred",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 6\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/pconf",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/dpairing",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 6\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "72616E64-5069-6E44-6576-557569643030"\r
+ },\r
+ "pstat": {\r
+ "isop": false,\r
+ "deviceuuid": "72616E64-5069-6E44-6576-557569643030",\r
+ "rowneruuid": "72616E64-5069-6E44-6576-557569643030",\r
+ "cm": 2,\r
+ "tm": 0,\r
+ "om": 3,\r
+ "sm": 3\r
+ },\r
+ "doxm": {\r
+ "oxms": [0, 1],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": false,\r
+ "deviceuuid": "72616E64-5069-6E44-6576-557569643030",\r
+ "devowneruuid": "",\r
+ "rowneruuid": "72616E64-5069-6E44-6576-557569643030",\r
+ "dpc": true\r
+ }\r
}
\ No newline at end of file
+++ /dev/null
-{
- "acl": {
- "aclist":{
- "aces":[
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/res",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/res/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/res/types/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/ad",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/acl",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/svc",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/amacl",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 2
- },
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/sec/doxm",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/pstat",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 6
- }
- ]
- },
- "rownerid" : "31313131-3131-3131-3131-313131313131"
- },
- "pstat": {
- "isop": false,
- "deviceid": "756E6B6E-6F77-6564-4465-766963654964",
- "rownerid": "756E6B6E-6F77-6564-4465-7669636549640",
- "cm": 2,
- "tm": 0,
- "om": 3,
- "sm": [3]
- },
- "doxm": {
- "oxms": [0],
- "oxmsel": 0,
- "sct": 1,
- "owned": false,
- "didformat": 0,
- "deviceid": "756E6B6E-6F77-6564-4465-766963654964",
- "rownerid": "756E6B6E-6F77-6564-4465-766963654964",
- "dpc": true
- }
-}
static OTMCallbackData_t g_OTMDatas[OIC_OXM_COUNT];
/**
- * Variable for storing provisioning tool's provisioning capabilities
- * Must be in decreasing order of preference. More prefered method should
- * have lower array index.
- */
-static OicSecDpom_t gProvisioningToolCapability[] = { SINGLE_SERVICE_CLIENT_DRIVEN };
-
-/**
* Number of supported provisioning methods
* current version supports only one.
*/
OicSecDpom_t *selectedMode)
{
OIC_LOG(DEBUG, TAG, "IN SelectOperationMode");
-
- size_t i = 0;
- size_t j = 0;
-
- while (i < gNumOfProvisioningMethodsPT && j < selectedDeviceInfo->pstat->smLen)
- {
- if (gProvisioningToolCapability[i] < selectedDeviceInfo->pstat->sm[j])
- {
- i++;
- }
- else if (selectedDeviceInfo->pstat->sm[j] < gProvisioningToolCapability[i])
- {
- j++;
- }
- else /* if gProvisioningToolCapability[i] == deviceSupportedMethods[j] */
- {
- *selectedMode = gProvisioningToolCapability[j];
- break;
- }
- }
+ *selectedMode = selectedDeviceInfo->pstat->sm[0];
OIC_LOG_V(DEBUG, TAG, "Selected Operation Mode = %d", *selectedMode);
-
- OIC_LOG(DEBUG, TAG, "OUT SelectOperationMode");
}
/**
return OC_STACK_INVALID_PARAM;
}
- char base64Buff[B64ENCODE_OUT_SAFESIZE(sizeof(revokedDev->doxm->deviceID.id)) + 1] = {};
- uint32_t base64Len = 0;
- if (B64_OK != b64Encode(revokedDev->doxm->deviceID.id, sizeof(revokedDev->doxm->deviceID.id),
- base64Buff, sizeof(base64Buff), &base64Len))
+ char *subID = NULL;
+ OCStackResult ret = ConvertUuidToStr(&revokedDev->doxm->deviceID, &subID);
+ if(OC_STACK_OK != ret)
{
- OIC_LOG(ERROR, TAG, "SendDeleteCredentialRequest : Failed to base64 encoding");
+ OIC_LOG(ERROR, TAG, "SendDeleteCredentialRequest : Failed to canonical UUID encoding");
return OC_STACK_ERROR;
}
char reqBuf[MAX_URI_LENGTH + MAX_QUERY_LENGTH] = {0};
int snRet = 0;
- //coaps://0.0.0.0:5684/oic/sec/cred?sub=(BASE64 ENCODED UUID)
+ //coaps://0.0.0.0:5684/oic/sec/cred?subjectid=(Canonical ENCODED UUID)
snRet = snprintf(reqBuf, sizeof(reqBuf), SRP_FORM_DELETE_CREDENTIAL, destDev->endpoint.addr,
- destDev->securePort, OIC_RSRC_CRED_URI, OIC_JSON_SUBJECT_NAME, base64Buff);
+ destDev->securePort, OIC_RSRC_CRED_URI, OIC_JSON_SUBJECTID_NAME, subID);
+ OICFree(subID);
if (snRet < 0)
{
OIC_LOG_V(ERROR, TAG, "SendDeleteCredentialRequest : Error (snprintf) %d\n", snRet);
OIC_LOG(DEBUG, TAG, "Sending remove credential request to resource server");
- OCStackResult ret = OCDoResource(NULL, OC_REST_DELETE, reqBuf,
+ ret = OCDoResource(NULL, OC_REST_DELETE, reqBuf,
&destDev->endpoint, NULL,
CT_ADAPTER_IP, OC_HIGH_QOS, &cbData, NULL, 0);
if (OC_STACK_OK != ret)
OCStackResult res = OC_STACK_ERROR;
RemoveData_t* removeData = (RemoveData_t*)delDevCtx;
- if(removeData)
+
+ if (clientResponse)
{
- if (clientResponse)
+ OicUuid_t revDevUuid = {.id={0}};
+ if(UUID_LENGTH == clientResponse->identity.id_length)
{
- OicUuid_t revDevUuid = {.id={0}};
- if(UUID_LENGTH == clientResponse->identity.id_length)
+ memcpy(revDevUuid.id, clientResponse->identity.id, sizeof(revDevUuid.id));
+ if (OC_STACK_RESOURCE_DELETED == clientResponse->result)
{
- memcpy(revDevUuid.id, clientResponse->identity.id, sizeof(revDevUuid.id));
- if (OC_STACK_RESOURCE_DELETED == clientResponse->result)
+ res = PDMUnlinkDevices(&removeData->revokeTargetDev->doxm->deviceID, &revDevUuid);
+ if (OC_STACK_OK != res)
{
- res = PDMUnlinkDevices(&removeData->revokeTargetDev->doxm->deviceID, &revDevUuid);
- if (OC_STACK_OK != res)
- {
- OIC_LOG(ERROR, TAG, "PDMSetLinkStale() FAIL: PDB is an obsolete one.");
- registerResultForRemoveDevice(removeData, &revDevUuid,
- OC_STACK_INCONSISTENT_DB, true);
+ OIC_LOG(ERROR, TAG, "PDMSetLinkStale() FAIL: PDB is an obsolete one.");
+ registerResultForRemoveDevice(removeData, &revDevUuid,
+ OC_STACK_INCONSISTENT_DB, true);
- return OC_STACK_DELETE_TRANSACTION;
- }
-
- registerResultForRemoveDevice(removeData, &revDevUuid,
- OC_STACK_RESOURCE_DELETED, false);
- }
- else
- {
- registerResultForRemoveDevice(removeData, &revDevUuid,
- clientResponse->result, true);
- OIC_LOG(ERROR, TAG, "Unexpected result from DELETE credential request!");
+ return OC_STACK_DELETE_TRANSACTION;
}
+
+ registerResultForRemoveDevice(removeData, &revDevUuid,
+ OC_STACK_RESOURCE_DELETED, false);
}
else
{
- OIC_LOG_V(WARNING, TAG, "Incorrect length of device UUID was sent from %s:%d",
- clientResponse->devAddr.addr, clientResponse->devAddr.port);
-
- if (OC_STACK_RESOURCE_DELETED == clientResponse->result)
- {
- /**
- * Since server's credential was deleted,
- * register result as OC_STACK_INCONSISTENT_DB with NULL UUID.
- */
-
- OIC_LOG_V(ERROR, TAG, "But server's credential was deleted.");
- registerResultForRemoveDevice(removeData, NULL, OC_STACK_INCONSISTENT_DB, true);
- }
- else
- {
- registerResultForRemoveDevice(removeData, NULL, clientResponse->result, true);
- }
+ registerResultForRemoveDevice(removeData, &revDevUuid,
+ clientResponse->result, true);
+ OIC_LOG(ERROR, TAG, "Unexpected result from DELETE credential request!");
}
}
else
{
- registerResultForRemoveDevice(removeData, NULL, OC_STACK_ERROR, true);
- OIC_LOG(ERROR, TAG, "SRPRemoveDevices received Null clientResponse");
+ OIC_LOG_V(WARNING, TAG, "Incorrect length of device UUID was sent from %s:%d",
+ clientResponse->devAddr.addr, clientResponse->devAddr.port);
+
+ if (OC_STACK_RESOURCE_DELETED == clientResponse->result)
+ {
+ /**
+ * Since server's credential was deleted,
+ * register result as OC_STACK_INCONSISTENT_DB with NULL UUID.
+ */
+ OIC_LOG_V(ERROR, TAG, "But server's credential was deleted.");
+ registerResultForRemoveDevice(removeData, NULL, OC_STACK_INCONSISTENT_DB, true);
+ }
+ else
+ {
+ registerResultForRemoveDevice(removeData, NULL, clientResponse->result, true);
+ }
}
}
else
{
- OIC_LOG(WARNING, TAG, "SRPRemoveDevices received null context");
+ registerResultForRemoveDevice(removeData, NULL, OC_STACK_ERROR, true);
+ OIC_LOG(ERROR, TAG, "SRPRemoveDevices received Null clientResponse");
}
+
return OC_STACK_DELETE_TRANSACTION;
}
static const uint8_t ACL_MAP_SIZE = 2;
static const uint8_t ACL_ACLIST_MAP_SIZE = 1;
static const uint8_t ACL_ACES_MAP_SIZE = 3;
-static const uint8_t ACL_RESOURCE_MAP_SIZE = 3;
+static const uint8_t ACL_RESOURCE_MAP_SIZE = 4;
// CborSize is the default cbor payload size being used.
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Creating ACES Map");
// Subject -- Mandatory
- cborEncoderResult = cbor_encode_text_string(&oicSecAclMap, OIC_JSON_SUBJECT_NAME,
- strlen(OIC_JSON_SUBJECT_NAME));
+ cborEncoderResult = cbor_encode_text_string(&oicSecAclMap, OIC_JSON_SUBJECTID_NAME,
+ strlen(OIC_JSON_SUBJECTID_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding Subject Name Tag.");
inLen = (memcmp(&(acl->subject), &WILDCARD_SUBJECT_ID, sizeof(OicUuid_t)) == 0) ?
WILDCARD_SUBJECT_ID_LEN : sizeof(OicUuid_t);
strlen(acl->resources[i]));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding HREF Value in Map.");
+ cborEncoderResult = cbor_encode_text_string(&rMap, OIC_JSON_REL_NAME,
+ strlen(OIC_JSON_REL_NAME));
+ VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding REL Name Tag.");
+
+ // TODO : Need to assign real value of REL
+ cborEncoderResult = cbor_encode_text_string(&rMap, OIC_JSON_EMPTY_STRING,
+ strlen(OIC_JSON_EMPTY_STRING));
+ VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding REL Value.");
+
cborEncoderResult = cbor_encode_text_string(&rMap, OIC_JSON_RT_NAME,
strlen(OIC_JSON_RT_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding RT Name Tag.");
if (name)
{
// Subject -- Mandatory
- if (strcmp(name, OIC_JSON_SUBJECT_NAME) == 0)
+ if (strcmp(name, OIC_JSON_SUBJECTID_NAME) == 0)
{
char *subject = NULL;
cborFindResult = cbor_value_dup_text_string(&aclMap, &subject, &len, NULL);
cborFindResult = cbor_value_dup_text_string(&rMap, &acl->resources[i++], &len, NULL);
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding Href Value.");
}
-
+ // "rel"
+ if (0 == strcmp(OIC_JSON_REL_NAME, rMapName))
+ {
+ // TODO : Need to check data structure of OicSecAcl_t based on RAML spec.
+ char *relData = NULL;
+ cborFindResult = cbor_value_dup_text_string(&rMap, &relData, &len, NULL);
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding REL Value.");
+ OICFree(relData);
+ }
// "rt"
if (0 == strcmp(OIC_JSON_RT_NAME, rMapName))
{
while (GetNextQuery (&parseIter))
{
- if (strncasecmp((char *) parseIter.attrPos, OIC_JSON_SUBJECT_NAME, parseIter.attrLen) == 0)
+ if (strncasecmp((char *) parseIter.attrPos, OIC_JSON_SUBJECTID_NAME, parseIter.attrLen) == 0)
{
VERIFY_SUCCESS(TAG, 0 != parseIter.valLen, ERROR);
memcpy(subject->id, parseIter.valPos, parseIter.valLen);
OCCallbackData cbData = {.context=NULL};
OCDevAddr destAddr = {.adapter = OC_ADAPTER_IP};
B64Result b64Ret;
+ char *subID = NULL;
VERIFY_NON_NULL(TAG, context, ERROR);
VERIFY_NON_NULL(TAG, devAddr, ERROR);
- b64Ret = b64Encode(context->subject.id, sizeof(context->subject.id),
- base64Buff, sizeof(base64Buff), &outLen);
- VERIFY_SUCCESS(TAG, B64_OK == b64Ret, ERROR);
+ ret = ConvertUuidToStr(&context->subject, &subID);
+ if(OC_STACK_OK != ret)
+ {
+ OIC_LOG(ERROR, TAG, "SendAclReq : Failed to canonical UUID encoding");
+ return OC_STACK_ERROR;
+ }
snprintf(uri, sizeof(uri), GET_ACE_QUERY_FMT, OIC_RSRC_ACL_URI,
- OIC_JSON_SUBJECT_NAME, base64Buff,
+ OIC_JSON_SUBJECTID_NAME, subID,
OIC_JSON_RESOURCES_NAME, context->resource);
+ OICFree(subID);
cbData.cb = &AmsMgrAclReqCallback;
cbData.context = context;
cborEncoderResult = cbor_encoder_create_map(&credMap, &publicMap, publicMapSize);
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding PublicData Map");
- cborEncoderResult = cbor_encode_text_string(&publicMap, OIC_JSON_PUBDATA_NAME,
- strlen(OIC_JSON_PUBDATA_NAME));
+ cborEncoderResult = cbor_encode_text_string(&publicMap, OIC_JSON_DATA_NAME,
+ strlen(OIC_JSON_DATA_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding Pub Data Tag.");
cborEncoderResult = cbor_encode_byte_string(&publicMap, cred->publicData.data,
cred->publicData.len);
cborEncoderResult = cbor_encoder_create_map(&credMap, &privateMap, privateMapSize);
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding PrivateData Map");
- cborEncoderResult = cbor_encode_text_string(&privateMap, OIC_JSON_PRIVDATA_NAME,
- strlen(OIC_JSON_PRIVDATA_NAME));
+ cborEncoderResult = cbor_encode_text_string(&privateMap, OIC_JSON_DATA_NAME,
+ strlen(OIC_JSON_DATA_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding Priv Tag.");
cborEncoderResult = cbor_encode_byte_string(&privateMap, cred->privateData.data,
cred->privateData.len);
if (privname)
{
// PrivateData::privdata -- Mandatory
- if (strcmp(privname, OIC_JSON_PRIVDATA_NAME) == 0)
+ if (strcmp(privname, OIC_JSON_DATA_NAME) == 0)
{
cborFindResult = cbor_value_dup_byte_string(&privateMap, &cred->privateData.data,
&cred->privateData.len, NULL);
if (pubname)
{
// PrivateData::privdata -- Mandatory
- if (strcmp(pubname, OIC_JSON_PUBDATA_NAME) == 0)
+ if (strcmp(pubname, OIC_JSON_DATA_NAME) == 0)
{
cborFindResult = cbor_value_dup_byte_string(&pubMap, &cred->publicData.data,
&cred->publicData.len, NULL);
OCEntityHandlerResult ehRet = OC_EH_ERROR;
- unsigned char base64Buff[sizeof(((OicUuid_t*)0)->id)] = {};
- B64Result b64Ret = B64_OK;
- uint32_t outLen = 0;
-
if (NULL == ehRequest->query)
- {
- return ehRet;
- }
-
- OicParseQueryIter_t parseIter = { .attrPos=NULL };
- OicUuid_t subject = {.id={0}};
-
- //Parsing REST query to get the subject
- ParseQueryIterInit((unsigned char *)ehRequest->query, &parseIter);
- while (GetNextQuery(&parseIter))
- {
- if (strncasecmp((char *)parseIter.attrPos, OIC_JSON_SUBJECT_NAME,
- parseIter.attrLen) == 0)
- {
- b64Ret = b64Decode((char*)parseIter.valPos, parseIter.valLen, base64Buff,
- sizeof(base64Buff), &outLen);
- VERIFY_SUCCESS(TAG, (b64Ret == B64_OK && outLen <= sizeof(subject.id)), ERROR);
- memcpy(subject.id, base64Buff, outLen);
+ {
+ return ehRet;
+ }
+
+ OicParseQueryIter_t parseIter = { .attrPos=NULL };
+ OicUuid_t subject = {.id={0}};
+
+ //Parsing REST query to get the subject
+ ParseQueryIterInit((unsigned char *)ehRequest->query, &parseIter);
+ while (GetNextQuery(&parseIter))
+ {
+ if (strncasecmp((char *)parseIter.attrPos, OIC_JSON_SUBJECTID_NAME,
+ parseIter.attrLen) == 0)
+ {
+ OCStackResult ret = ConvertStrToUuid((const char*)parseIter.valPos, &subject);
+ VERIFY_SUCCESS(TAG, OC_STACK_OK == ret, ERROR);
}
- }
+ }
- if (OC_STACK_RESOURCE_DELETED == RemoveCredential(&subject))
- {
- ehRet = OC_EH_RESOURCE_DELETED;
- }
+ if (OC_STACK_RESOURCE_DELETED == RemoveCredential(&subject))
+ {
+ ehRet = OC_EH_RESOURCE_DELETED;
+ }
exit:
return ehRet;
static const uint16_t CBOR_MAX_SIZE = 4400;
/** DOXM Map size - Number of mandatory items. */
-static const uint8_t DOXM_MAP_SIZE = 8;
+static const uint8_t DOXM_MAP_SIZE = 7;
static OicSecDoxm_t *gDoxm = NULL;
static OCResourceHandle gDoxmHandle = NULL;
cborEncoderResult = cbor_encode_boolean(&doxmMap, doxm->owned);
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding Owned Value.");
-
- //TODO: Need to modify to use real didformat value
- //DidFormat
- cborEncoderResult = cbor_encode_text_string(&doxmMap, OIC_JSON_DEVICE_ID_FORMAT_NAME,
- strlen(OIC_JSON_DEVICE_ID_FORMAT_NAME));
- VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding DidFormat Tag");
- cborEncoderResult = cbor_encode_int(&doxmMap, 0);
- VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding DidFormat Value.");
-
-
//DeviceId -- Mandatory
cborEncoderResult = cbor_encode_text_string(&doxmMap, OIC_JSON_DEVICE_ID_NAME,
strlen(OIC_JSON_DEVICE_ID_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding Device Id Value.");
ret = ConvertStrToUuid(strUuid , &doxm->deviceID);
VERIFY_SUCCESS(TAG, OC_STACK_OK == ret, ERROR);
- OICFree(strUuid );
+ OICFree(strUuid);
strUuid = NULL;
}
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding Owner Value.");
ret = ConvertStrToUuid(strUuid , &doxm->owner);
VERIFY_SUCCESS(TAG, OC_STACK_OK == ret, ERROR);
- OICFree(strUuid );
+ OICFree(strUuid);
strUuid = NULL;
}
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding ROwner Value.");
ret = ConvertStrToUuid(strUuid , &doxm->rownerID);
VERIFY_SUCCESS(TAG, OC_STACK_OK == ret, ERROR);
- OICFree(strUuid );
+ OICFree(strUuid);
strUuid = NULL;
}
- cborFindResult = cbor_value_map_find_value(&doxmCbor, OIC_JSON_DEVICE_ID_FORMAT_NAME, &doxmMap);
- if (CborNoError == cborFindResult && cbor_value_is_integer(&doxmMap))
- {
- // TODO: handle "didformat"
- }
-
-
*secDoxm = doxm;
ret = OC_STACK_OK;
static const uint16_t CBOR_SIZE = 1024;
static const uint64_t CBOR_MAX_SIZE = 4400;
static const uint8_t PCONF_MAP_SIZE = 4;
-static const uint8_t PCONF_RESOURCE_MAP_SIZE = 3;
+static const uint8_t PCONF_RESOURCE_MAP_SIZE = 4;
static OicSecPconf_t *gPconf = NULL;
static OCResourceHandle gPconfHandle = NULL;
strlen(pdacl->resources[i]));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding HREF Value in Map.");
+ cborEncoderResult = cbor_encode_text_string(&rMap, OIC_JSON_REL_NAME,
+ strlen(OIC_JSON_REL_NAME));
+ VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding REL Name Tag.");
+
+ // TODO : Need to assign real value of REL
+ cborEncoderResult = cbor_encode_text_string(&rMap, OIC_JSON_EMPTY_STRING,
+ strlen(OIC_JSON_EMPTY_STRING));
+ VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding REL Value.");
+
cborEncoderResult = cbor_encode_text_string(&rMap, OIC_JSON_RT_NAME,
strlen(OIC_JSON_RT_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Addding RT Name Tag.");
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding Href Value.");
}
+ // "rel"
+ if (0 == strcmp(OIC_JSON_REL_NAME, rMapName))
+ {
+ // TODO : Need to check data structure of OicSecPdAcl_t and assign based on RAML spec.
+ char *relData = NULL;
+ cborFindResult = cbor_value_dup_text_string(&rMap, &relData, &len, NULL);
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding REL Value.");
+ OICFree(relData);
+ }
+
// "rt"
if (0 == strcmp(OIC_JSON_RT_NAME, rMapName))
{
cborEncoderResult = cbor_encode_text_string(&pstatMap, OIC_JSON_SM_NAME,
strlen(OIC_JSON_SM_NAME));
VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding SM Name Tag.");
- {
- CborEncoder sm = {{.ptr = NULL }, .end = 0 };
- cborEncoderResult = cbor_encoder_create_array(&pstatMap, &sm, pstat->smLen);
- VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding SM Array.");
-
- for (size_t i = 0; i < pstat->smLen; i++)
- {
- cborEncoderResult = cbor_encode_int(&sm, pstat->sm[i]);
- VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding SM Value in Array.");
- }
- cborEncoderResult = cbor_encoder_close_container(&pstatMap, &sm);
- VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Closing SM Array.");
- }
+ cborEncoderResult = cbor_encode_int(&pstatMap, pstat->sm[0]);
+ VERIFY_CBOR_SUCCESS(TAG, cborEncoderResult, "Failed Adding SM Name Value.");
cborEncoderResult = cbor_encode_text_string(&pstatMap, OIC_JSON_ROWNERID_NAME,
strlen(OIC_JSON_ROWNERID_NAME));
}
cborFindResult = cbor_value_map_find_value(&pstatCbor, OIC_JSON_SM_NAME, &pstatMap);
- if (CborNoError == cborFindResult && cbor_value_is_array(&pstatMap))
+ if (CborNoError == cborFindResult && cbor_value_is_integer(&pstatMap))
{
- CborValue sm = { .parser = NULL };
- cborFindResult = cbor_value_get_array_length(&pstatMap, &pstat->smLen);
- VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding Array Len.");
-
- pstat->sm = (OicSecDpom_t *)OICCalloc(pstat->smLen, sizeof(OicSecDpom_t));
- VERIFY_NON_NULL(TAG, pstat->sm, ERROR);
-
- cborFindResult = cbor_value_enter_container(&pstatMap, &sm);
- VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Entering SM.");
+ pstat->smLen = 1;
+ pstat->sm = (OicSecDpom_t*)OICCalloc(pstat->smLen, sizeof(OicSecDpom_t));
+ cborFindResult = cbor_value_get_int(&pstatMap, (int *) &pstat->sm[0]);
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding SM.");
- int i = 0;
- while (cbor_value_is_valid(&sm))
- {
- cborFindResult = cbor_value_get_int(&sm, (int *)&pstat->sm[i++]);
- VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding SM.");
- cborFindResult = cbor_value_advance(&sm);
- VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Closing SM.");
- }
}
cborFindResult = cbor_value_map_find_value(&pstatCbor, OIC_JSON_ROWNERID_NAME, &pstatMap);
const char * OIC_JSON_PERMISSION_NAME = "permission";
const char * OIC_JSON_OWNERS_NAME = "ownrs";
const char * OIC_JSON_OWNER_NAME = "ownr";
-const char * OIC_JSON_DEVOWNERID_NAME = "devownerid";
+const char * OIC_JSON_DEVOWNERID_NAME = "devowneruuid";
const char * OIC_JSON_OWNED_NAME = "owned";
const char * OIC_JSON_OXM_NAME = "oxm";
const char * OIC_JSON_OXMS_NAME = "oxms";
const char * OIC_JSON_DEVICE_ID_FORMAT_NAME = "didformat";
const char * OIC_JSON_ISOP_NAME = "isop";
const char * OIC_JSON_COMMIT_HASH_NAME = "ch";
-const char * OIC_JSON_DEVICE_ID_NAME = "deviceid";
+const char * OIC_JSON_DEVICE_ID_NAME = "deviceuuid";
const char * OIC_JSON_CM_NAME = "cm";
const char * OIC_JSON_TM_NAME = "tm";
const char * OIC_JSON_OM_NAME = "om";
const char * OIC_JSON_SM_NAME = "sm";
const char * OIC_JSON_CREDID_NAME = "credid";
-const char * OIC_JSON_SUBJECTID_NAME = "subjectid";
+const char * OIC_JSON_SUBJECTID_NAME = "subjectuuid";
const char * OIC_JSON_ROLEIDS_NAME = "roleid";
const char * OIC_JSON_CREDTYPE_NAME = "credtype";
const char * OIC_JSON_PUBLICDATA_NAME = "publicdata";
const char * OIC_JSON_ROWNER_NAME = "rowner";
const char * OIC_JSON_PRM_NAME = "prm";
const char * OIC_JSON_SPM_NAME = "spm";
-const char * OIC_JSON_PDEVICE_ID_NAME = "pdeviceid";
+const char * OIC_JSON_PDEVICE_ID_NAME = "pdeviceuuid";
const char * OIC_JSON_RLIST_NAME = "rlist";
const char * OIC_JSON_HREF_NAME = "href";
+const char * OIC_JSON_REL_NAME = "rel";
const char * OIC_JSON_RT_NAME = "rt";
const char * OIC_JSON_IF_NAME = "if";
-const char * OIC_JSON_ROWNERID_NAME = "rownerid";
+const char * OIC_JSON_ROWNERID_NAME = "rowneruuid";
const char * OIC_JSON_ENCODING_NAME = "encoding";
+const char * OIC_JSON_DATA_NAME = "data";
const char * OIC_JSON_EMPTY_STRING = "";
size_t jsonObjLen = 0;
cJSON *jsonObj = NULL;
- jsonObj = cJSON_GetObjectItem(jsonAcl, OIC_JSON_SUBJECT_NAME);
+ jsonObj = cJSON_GetObjectItem(jsonAcl, OIC_JSON_SUBJECTID_NAME);
VERIFY_NON_NULL(TAG, jsonObj, ERROR);
VERIFY_SUCCESS(TAG, cJSON_String == jsonObj->type, ERROR);
if(strcmp(jsonObj->valuestring, WILDCARD_RESOURCE_URI) == 0)
doxm->dpc = jsonObj->valueint;
}
- //DidFormat -- Mandatory
- jsonObj = cJSON_GetObjectItem(jsonDoxm, OIC_JSON_DEVICE_ID_FORMAT_NAME);
- if (jsonObj)
- {
- VERIFY_SUCCESS(TAG, cJSON_Number == jsonObj->type, ERROR);
- //TODO: handle didformat value
- }
-
//DeviceId -- Mandatory
jsonObj = cJSON_GetObjectItem(jsonDoxm, OIC_JSON_DEVICE_ID_NAME);
if (jsonObj)
jsonObj = cJSON_GetObjectItem(jsonPstat, OIC_JSON_SM_NAME);
VERIFY_NON_NULL(TAG, jsonObj, ERROR);
- if (cJSON_Array == jsonObj->type)
- {
- pstat->smLen = (size_t)cJSON_GetArraySize(jsonObj);
- size_t idxx = 0;
- VERIFY_SUCCESS(TAG, pstat->smLen != 0, ERROR);
- pstat->sm = (OicSecDpom_t*)OICCalloc(pstat->smLen, sizeof(OicSecDpom_t));
- VERIFY_NON_NULL(TAG, pstat->sm, ERROR);
- do
- {
- cJSON *jsonSm = cJSON_GetArrayItem(jsonObj, idxx);
- VERIFY_NON_NULL(TAG, jsonSm, ERROR);
- pstat->sm[idxx] = (OicSecDpom_t)jsonSm->valueint;
- } while ( ++idxx < pstat->smLen);
- }
+ VERIFY_SUCCESS(TAG, cJSON_Number == jsonObj->type, ERROR);
+ pstat->smLen = 1;
+ pstat->sm = (OicSecDpom_t*)OICCalloc(pstat->smLen, sizeof(OicSecDpom_t));
+ pstat->sm[0] = (OicSecDpom_t)jsonObj->valueint;
+
ret = OC_STACK_OK;
exit:
}
//subject -- Mandatory
- jsonObj = cJSON_GetObjectItem(jsonCred, OIC_JSON_SUBJECT_NAME);
+ jsonObj = cJSON_GetObjectItem(jsonCred, OIC_JSON_SUBJECTID_NAME);
VERIFY_NON_NULL(TAG, jsonObj, ERROR);
VERIFY_SUCCESS(TAG, cJSON_String == jsonObj->type, ERROR);
outLen = 0;
uint8_t *payload = NULL;
size_t size = 0;
- ASSERT_TRUE(ReadCBORFile(DEFAULT_ACL_FILE_NAME, &payload, &size));
+ ASSERT_TRUE(ReadCBORFile(DEFAULT_ACL_FILE_NAME, OIC_JSON_ACL_NAME, &payload, &size));
ASSERT_TRUE(payload != NULL);
OicSecAcl_t *psAcl = CBORPayloadToAcl(payload, size);
uint8_t *payload = NULL;
size_t size = 0;
- ASSERT_TRUE(ReadCBORFile(ACL1_FILE_NAME, &payload, &size));
+ ASSERT_TRUE(ReadCBORFile(ACL1_FILE_NAME, OIC_JSON_ACL_NAME, &payload, &size));
ASSERT_TRUE(NULL != payload);
OCSecurityPayload *securityPayload = OCSecurityPayloadCBORCreate(payload, size);
uint8_t *payload = NULL;
size_t size = 0;
- ASSERT_TRUE(ReadCBORFile(ACL1_FILE_NAME, &payload, &size));
+ ASSERT_TRUE(ReadCBORFile(ACL1_FILE_NAME, OIC_JSON_ACL_NAME, &payload, &size));
ASSERT_TRUE(payload != NULL);
OicSecAcl_t *defaultPsAcl = CBORPayloadToAcl(payload, size);
// Create Entity Handler DELETE request
ehReq.method = OC_REST_DELETE;
- char query[] = "sub=2222222222222222;rsrc=/a/led";
+ char query[] = "subjectuuid=2222222222222222;resources=/a/led";
ehReq.query = (char *)OICMalloc(strlen(query)+1);
ASSERT_TRUE(NULL != ehReq.query);
OICStrcpy(ehReq.query, strlen(query)+1, query);
// Create Entity Handler DELETE request
ehReq.method = OC_REST_DELETE;
- char query[] = "subject=2222222222222222;resources=/a/led";
+ char query[] = "subjectuuid=2222222222222222;resources=/a/led";
ehReq.query = (char *)OICMalloc(strlen(query)+1);
ASSERT_TRUE(NULL != ehReq.query);
OICStrcpy(ehReq.query, strlen(query)+1, query);
//Create Entity Handler GET request wit query
ehReq.method = OC_REST_GET;
- char query[] = "sub=2222222222222222;rsrc=/a/led";
+ char query[] = "subjectuuid=2222222222222222;resources=/a/led";
ehReq.query = (char*)OICMalloc(strlen(query)+1);
ASSERT_TRUE(NULL != ehReq.query);
OICStrcpy(ehReq.query, strlen(query)+1, query);
OicSecCred_t *cred = (OicSecCred_t *)OICCalloc(1, sizeof(*cred));
VERIFY_NON_NULL(TAG, cred, ERROR);
cred->credId = 1234;
- OICStrcpy((char *)cred->subject.id, sizeof(cred->subject.id), "subject1");
+ OICStrcpy((char *)cred->subject.id, sizeof(cred->subject.id)+1, "1111111111111111");
#if 0
cred->roleIdsLen = 2;
cred->ownersLen = 1;
cred->owners = (OicUuid_t *)OICCalloc(cred->ownersLen, sizeof(*cred->owners));
VERIFY_NON_NULL(TAG, cred->owners, ERROR);
- OICStrcpy((char *)cred->owners[0].id, sizeof(cred->owners[0].id), "ownersId11");
+ OICStrcpy((char *)cred->owners[0].id, sizeof(cred->owners[0].id), "aaaaaaaaaaaaaaaa");
cred->next = (OicSecCred_t*)OICCalloc(1, sizeof(*cred->next));
VERIFY_NON_NULL(TAG, cred->next, ERROR);
cred->next->credId = 5678;
- OICStrcpy((char *)cred->next->subject.id, sizeof(cred->next->subject.id), "subject2");
+ OICStrcpy((char *)cred->next->subject.id, sizeof(cred->next->subject.id)+1, "2222222222222222");
#if 0
cred->next->roleIdsLen = 0;
#endif
cred->next->ownersLen = 2;
cred->next->owners = (OicUuid_t *)OICCalloc(cred->next->ownersLen, sizeof(*cred->next->owners));
VERIFY_NON_NULL(TAG, cred->next->owners, ERROR);
- OICStrcpy((char *)cred->next->owners[0].id, sizeof(cred->next->owners[0].id), "ownersId21");
- OICStrcpy((char *)cred->next->owners[1].id, sizeof(cred->next->owners[1].id), "ownersId22");
+ OICStrcpy((char *)cred->next->owners[0].id, sizeof(cred->next->owners[0].id), "bbbbbbbbbbbbbbbb");
+ OICStrcpy((char *)cred->next->owners[1].id, sizeof(cred->next->owners[1].id), "cccccccccccccccc");
return cred;
const OicSecCred_t* subjectCred1 = NULL;
const OicSecCred_t* subjectCred2 = NULL;
OCEntityHandlerResult ehRet = OC_EH_ERROR;
- char query[] = "sub=c3ViamVjdDE="; //base64 Encoding of subject1
+ char query[] = "subjectuuid=31313131-3131-3131-3131-313131313131"; //canonical uuid of subject1
SetPersistentHandler(&ps, true);
OicSecCred_t *cred = getCredList();
ASSERT_TRUE(NULL != cred);
-
uint8_t *payload = NULL;
size_t size = 0;
EXPECT_EQ(OC_STACK_OK, CredToCBORPayload(cred, &payload, &size));
subjectCred1 = GetCredResourceData(&cred->subject);
EXPECT_TRUE(NULL != subjectCred1);
- // Create Entity Handler DELETE request
- ehReq.method = OC_REST_DELETE;
- ehReq.query = (char *)OICCalloc(1, strlen(query)+1);
- if (!ehReq.query)
- {
- OICFree(payload);
- DeleteCredList(cred);
- }
- ASSERT_TRUE(NULL != ehReq.query);
- OICStrcpy(ehReq.query, strlen(query)+1, query);
-
- ehRet = CredEntityHandler(OC_REQUEST_FLAG, &ehReq, NULL);
- EXPECT_EQ(OC_EH_ERROR, ehRet);
-
- // Verify if SRM has deleted ACE for the subject
- subjectCred2 = GetCredResourceData(&cred->subject);
- EXPECT_TRUE(NULL == subjectCred2);
-
- // Perform cleanup
- OICFree(ehReq.query);
- OICFree(payload);
- DeInitCredResource();
- DeleteCredList(cred);
- OCPayloadDestroy((OCPayload *)ehReq.payload);
+ // Create Entity Handler DELETE request
+ ehReq.method = OC_REST_DELETE;
+ ehReq.query = (char *)OICCalloc(1, strlen(query)+1);
+ if (!ehReq.query)
+ {
+ OICFree(payload);
+ DeleteCredList(cred);
+ }
+ ASSERT_TRUE(NULL != ehReq.query);
+ OICStrcpy(ehReq.query, strlen(query)+1, query);
+
+ ehRet = CredEntityHandler(OC_REQUEST_FLAG, &ehReq, NULL);
+ EXPECT_EQ(OC_EH_ERROR, ehRet);
+
+ // Verify if SRM has deleted ACE for the subject
+ subjectCred2 = GetCredResourceData(&cred->subject);
+ EXPECT_TRUE(NULL == subjectCred2);
+
+ // Perform cleanup
+ OICFree(ehReq.query);
+ OICFree(payload);
+ DeInitCredResource();
+ DeleteCredList(cred);
+ OCPayloadDestroy((OCPayload *)ehReq.payload);
}
TEST(CredResourceTest, CredToCBORPayloadNULL)
TEST(DoxmResourceTest, DoxmEntityHandlerDeviceIdQuery)
{
EXPECT_EQ(OC_STACK_INVALID_PARAM, InitDoxmResource());
- char query[] = "deviceid=2222222222222222";
+ char query[] = "deviceuuid=2222222222222222";
OCEntityHandlerRequest req = OCEntityHandlerRequest();
req.method = OC_REST_GET;
req.query = OICStrdup(query);
{
"acl": {
- "aclist":{
- "aces":[
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/res",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/p",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/res/types/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/ad",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 2
- },
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/sec/doxm",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/pstat",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/acl",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 6
- }
- ]
- },
- "rownerid" : "756E6B6E-6F77-6564-4465-766963654964"
- },
- "pstat": {
- "isop": false,
- "deviceid": "756E6B6E-6F77-6564-4465-766963654964",
- "rownerid": "756E6B6E-6F77-6564-4465-766963654964",
- "cm": 0,
- "tm": 0,
- "om": 3,
- "sm": [3]
- },
- "doxm": {
- "oxms": [0],
- "oxmsel": 0,
- "sct": 1,
- "owned": false,
- "didformat": 0,
- "deviceid": "756E6B6E-6F77-6564-4465-766963654964",
- "rownerid": "756E6B6E-6F77-6564-4465-766963654964",
- "dpc": false
- }
-}
+ "aclist": {
+ "aces": [
+ {
+ "subjectuuid": "*",
+ "resources": [
+ {
+ "href": "/oic/res",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/d",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/p",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/res/types/d",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/ad",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 2
+ },
+ {
+ "subjectuuid": "*",
+ "resources": [
+ {
+ "href": "/oic/sec/doxm",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/pstat",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/acl",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 6
+ },
+ {
+ "subjectuuid": "*",
+ "resources": [
+ {
+ "href": "/oic/sec/pconf",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/dpairing",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 6
+ }
+ ]
+ },
+ "rowneruuid" : "756E6B6E-6F77-6564-4465-766963654964"
+ },
+ "pstat": {
+ "isop": false,
+ "deviceuuid": "756E6B6E-6F77-6564-4465-766963654964",
+ "rowneruuid": "756E6B6E-6F77-6564-4465-766963654964",
+ "cm": 2,
+ "tm": 0,
+ "om": 3,
+ "sm": 3
+ },
+ "doxm": {
+ "oxms": [0],
+ "oxmsel": 0,
+ "sct": 1,
+ "owned": false,
+ "deviceuuid": "756E6B6E-6F77-6564-4465-766963654964",
+ "devowneruuid": "",
+ "rowneruuid": "756E6B6E-6F77-6564-4465-766963654964",
+ "dpc": true
+ }
+}
\ No newline at end of file
{
- "acl":
- {
- "aclist":{
- "aces":[
- {
- "subject": "31313131-3131-3131-3131-313131313131",
- "resources": [
- {
- "href": "/oic/light",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/fan",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 31
- },
- {
- "subject": "33333333-3333-3333-3333-333333333333",
- "resources": [
- {
- "href": "/oic/light",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/garage",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 31
- }
- ]
- },
- "rownerid" : "32323232-3232-3232-3232-323232323232"
- },
- "pstat": {
- "isop": false,
- "deviceid": "756E6B6E-6F77-6564-4465-766963654964",
- "rownerid": "756E6B6E-6F77-6564-4465-766963654964",
- "cm": 63,
- "tm": 48,
- "om": 0,
- "sm": [3, 1]
- }
+ "acl": {
+ "aclist": {
+ "aces": [
+ {
+ "subjectuuid": "31313131-3131-3131-3131-313131313131",
+ "resources": [
+ {
+ "href": "/oic/light",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/fan",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 31
+ },
+ {
+ "subjectuuid": "33333333-3333-3333-3333-333333333333",
+ "resources": [
+ {
+ "href": "/oic/light",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/garage",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 31
+ }
+ ]
+ },
+ "rowneruuid" : "32323232-3232-3232-3232-323232323232"
+ },
+ "pstat": {
+ "isop": false,
+ "deviceuuid": "756E6B6E-6F77-6564-4465-766963654964",
+ "rowneruuid": "756E6B6E-6F77-6564-4465-766963654964",
+ "cm": 63,
+ "tm": 48,
+ "om": 0,
+ "sm": 3
+ }
}
-¢faclist¡daces\84£gsubjecta*iresources\86£dhrefh/oic/resbrt`bif`£dhreff/oic/dbrt`bif`£dhreff/oic/pbrt`bif`£dhrefp/oic/res/types/dbrt`bif`£dhrefg/oic/adbrt`bif`£dhrefl/oic/sec/aclbrt`bif`jpermission\ 2£gsubjecta*iresources\82£dhrefm/oic/sec/doxmbrt`bif`£dhrefn/oic/sec/pstatbrt`bif`jpermission\ 6£gsubjectx$31313131-3131-3131-3131-313131313131iresources\82£dhrefj/oic/lightbrt`bif`£dhrefh/oic/fanbrt`bif`jpermission\18\1f£gsubjectx$33333333-3333-3333-3333-333333333333iresources\82£dhrefj/oic/lightbrt`bif`£dhrefk/oic/garagebrt`bif`jpermission\18\1fhrowneridx$32323232-3232-3232-3232-323232323232
\ No newline at end of file
+¿caclY\ 2\8b¢faclist¡daces\84£ksubjectuuida*iresources\86¤dhrefh/oic/rescrel`brt`bif`¤dhreff/oic/dcrel`brt`bif`¤dhreff/oic/pcrel`brt`bif`¤dhrefp/oic/res/types/dcrel`brt`bif`¤dhrefg/oic/adcrel`brt`bif`¤dhrefl/oic/sec/aclcrel`brt`bif`jpermission\ 2£ksubjectuuida*iresources\82¤dhrefm/oic/sec/doxmcrel`brt`bif`¤dhrefn/oic/sec/pstatcrel`brt`bif`jpermission\ 6£ksubjectuuidx$31313131-3131-3131-3131-313131313131iresources\82¤dhrefj/oic/lightcrel`brt`bif`¤dhrefh/oic/fancrel`brt`bif`jpermission\18\1f£ksubjectuuidx$33333333-3333-3333-3333-333333333333iresources\82¤dhrefj/oic/lightcrel`brt`bif`¤dhrefk/oic/garagecrel`brt`bif`jpermission\18\1fjrowneruuidx$32323232-3232-3232-3232-323232323232ÿ
\ No newline at end of file
{
- "acl":{
- "aclist":{
- "aces":[
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/res",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/p",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/res/types/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/ad",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/acl",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 2
- },
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/sec/doxm",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/pstat",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 6
- },
- {
- "subject": "31313131-3131-3131-3131-313131313131",
- "resources": [
- {
- "href": "/oic/light",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/fan",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 31
- },
- {
- "subject": "33333333-3333-3333-3333-333333333333",
- "resources": [
- {
- "href": "/oic/light",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/garage",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 31
- }
- ]
- },
- "rownerid" : "32323232-3232-3232-3232-323232323232"
- }
+ "acl": {
+ "aclist": {
+ "aces": [
+ {
+ "subjectuuid": "*",
+ "resources": [
+ {
+ "href": "/oic/res",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/d",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/p",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/res/types/d",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/ad",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/acl",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 2
+ },
+ {
+ "subjectuuid": "*",
+ "resources": [
+ {
+ "href": "/oic/sec/doxm",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/pstat",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 6
+ },
+ {
+ "subjectuuid": "31313131-3131-3131-3131-313131313131",
+ "resources": [
+ {
+ "href": "/oic/light",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/fan",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 31
+ },
+ {
+ "subjectuuid": "33333333-3333-3333-3333-333333333333",
+ "resources": [
+ {
+ "href": "/oic/light",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/garage",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 31
+ }
+ ]
+ },
+ "rowneruuid" : "32323232-3232-3232-3232-323232323232"
+ }
}
-¢faclist¡daces\81£gsubjecta*iresources\88£dhrefh/oic/resbrt`bif`£dhreff/oic/dbrt`bif`£dhreff/oic/pbrt`bif`£dhrefp/oic/res/types/dbrt`bif`£dhrefg/oic/adbrt`bif`£dhrefl/oic/sec/aclbrt`bif`£dhrefm/oic/sec/doxmbrt`bif`£dhrefn/oic/sec/pstatbrt`bif`jpermission\ 2hrowneridx$32323232-3232-3232-3232-323232323232
\ No newline at end of file
+¿caclY\ 1X¢faclist¡daces\81£ksubjectuuida*iresources\88¤dhrefh/oic/rescrel`brt`bif`¤dhreff/oic/dcrel`brt`bif`¤dhreff/oic/pcrel`brt`bif`¤dhrefp/oic/res/types/dcrel`brt`bif`¤dhrefg/oic/adcrel`brt`bif`¤dhrefl/oic/sec/aclcrel`brt`bif`¤dhrefm/oic/sec/doxmcrel`brt`bif`¤dhrefn/oic/sec/pstatcrel`brt`bif`jpermission\ 2jrowneruuidx$32323232-3232-3232-3232-323232323232ÿ
\ No newline at end of file
{
- "acl":{
- "aclist":{
- "aces":[
- {
- "subject": "*",
- "resources": [
- {
- "href": "/oic/res",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/p",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/res/types/d",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/ad",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/acl",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/doxm",
- "rt": "",
- "if": ""
- },
- {
- "href": "/oic/sec/pstat",
- "rt": "",
- "if": ""
- }
- ],
- "permission": 2
- }
- ]
- },
- "rownerid" : "32323232-3232-3232-3232-323232323232"
- }
+ "acl": {
+ "aclist": {
+ "aces": [
+ {
+ "subjectuuid": "*",
+ "resources": [
+ {
+ "href": "/oic/res",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/d",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/p",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/res/types/d",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/ad",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/acl",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/doxm",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ },
+ {
+ "href": "/oic/sec/pstat",
+ "rel": "",
+ "rt": "",
+ "if": ""
+ }
+ ],
+ "permission": 2
+ }
+ ]
+ },
+ "rowneruuid" : "32323232-3232-3232-3232-323232323232"
+ }
}
defaultPstat->cm = (OicSecDpm_t) 63;
defaultPstat->tm = (OicSecDpm_t) 48;
defaultPstat->om = (OicSecDpom_t) 0;
- defaultPstat->smLen = 2;
+ defaultPstat->smLen = 1;
defaultPstat->sm = (OicSecDpom_t *)OICCalloc(defaultPstat->smLen, sizeof(*defaultPstat->sm));
ASSERT_TRUE(defaultPstat->sm != NULL);
defaultPstat->sm[0] = (OicSecDpom_t) 3;
- defaultPstat->sm[1] = (OicSecDpom_t) 1;
size_t size = 0;
uint8_t *cbor = NULL;
EXPECT_EQ(OC_STACK_OK, PstatToCBORPayload(defaultPstat, &cbor, &size));
pstat.isOp = true;
pstat.tm = NORMAL;
pstat.om = SINGLE_SERVICE_CLIENT_DRIVEN;
- pstat.smLen = 2;
+ pstat.smLen = 1;
pstat.sm = (OicSecDpom_t*)OICCalloc(pstat.smLen, sizeof(*pstat.sm));
ASSERT_TRUE(NULL != pstat.sm);
pstat.sm[0] = SINGLE_SERVICE_CLIENT_DRIVEN;
- pstat.sm[1] = SINGLE_SERVICE_SERVER_DRIVEN;
size_t size = 0;
uint8_t *cbor = NULL;
EXPECT_EQ(pstat.om, pstat1->om);
EXPECT_EQ(pstat.smLen, pstat1->smLen);
EXPECT_EQ(pstat.sm[0], pstat1->sm[0]);
- EXPECT_EQ(pstat.sm[1], pstat1->sm[1]);
DeletePstatBinData(pstat1);
OICFree(cbor);
#include "oic_malloc.h"
#include "ocstack.h"
#include <stdlib.h>
+#include "cbor.h"
#define STRINGIZE2(x) #x
#define STRINGIZE(x) STRINGIZE2(x)
return data;
}
-bool ReadCBORFile(const char* filename, uint8_t **data, size_t *size)
+bool ReadCBORFile(const char* filename, const char* rsrcname, uint8_t **payload, size_t *pSize)
{
bool status = false;
- if (!data || !size)
+ if (!payload || !pSize)
{
printf("Passed parameter are INVALID \n");
return status;
}
+ uint8_t *data = NULL;
+ size_t size = 0;
+
int len = strlen(STRINGIZE(SECURITY_BUILD_UNITTEST_DIR)) + strlen(filename) + 1;
char *filepath = (char *)OICCalloc(1, len);
if (!filepath)
struct stat st;
if (stat(filepath, &st) == 0)
{
- *data = (uint8_t *)OICMalloc(st.st_size);
- if (*data)
+ data = (uint8_t *)OICMalloc(st.st_size);
+ if (data)
{
- if (fread(*data, 1, st.st_size, fp) != (size_t)st.st_size)
+ if (fread(data, 1, st.st_size, fp) != (size_t)st.st_size)
{
printf("Error in reading file %s\n", filename);
}
else
{
- *size = st.st_size;
- status = true;
+ size = st.st_size;
+
+ CborValue cbor = {0, };
+ CborParser parser = {0, };
+ cbor_parser_init(data, size, 0, &parser, &cbor);
+ CborError cborFindResult = CborNoError;
+
+ CborValue curVal = {0, };
+ cborFindResult = cbor_value_map_find_value(&cbor, rsrcname, &curVal);
+ if (CborNoError == cborFindResult && cbor_value_is_byte_string(&curVal))
+ {
+ cborFindResult = cbor_value_dup_byte_string(&curVal, payload, pSize, NULL);
+ if(CborNoError != cborFindResult)
+ {
+ printf("Failed to getting %s data\n", rsrcname);
+ }
+ else
+ {
+ status = true;
+ }
+ }
+ else
+ {
+ printf("Failed to finding %s data\n", rsrcname);
+ }
+
}
+ OICFree(data);
}
}
fclose(fp);
#define IOTVT_SRM_TEST_COMMON_H
char* ReadFile(const char* filename);
-bool ReadCBORFile(const char* filename, uint8_t **payload, size_t *size);
+bool ReadCBORFile(const char* filename, const char* rsrcName, uint8_t **payload, size_t *size);
void SetPersistentHandler(OCPersistentStorage *ps, bool set);
#endif //IOTVT_SRM_TEST_COMMON_H
{\r
"acl": {\r
- "aclist":{\r
- "aces":[\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/res",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/p",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/res/types/d",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/ad",\r
- "rt": "",\r
- "if": ""\r
- },\r
- {\r
- "href": "/oic/sec/amacl",\r
- "rt": "",\r
- "if": ""\r
- }\r
- ],\r
- "permission": 2\r
- },\r
- {\r
- "subject": "*",\r
- "resources": [\r
- {\r
- "href": "/oic/sec/doxm",\r
- "rt": "",\r
- "if": ""\r
- } ,\r
- {\r
- "href": "/oic/sec/pstat",\r
- "rt": "",\r
- "if": ""\r
- } \r
- ],\r
- "permission": 2\r
- }\r
- ] \r
- },\r
- "rownerid" : "61646D69-6E44-6576-6963-655575696430"\r
- }, \r
- "pstat": {\r
- "isop": true,\r
- "cm": 2,\r
- "tm": 0,\r
- "om": 3,\r
- "sm": [3],\r
- "deviceid": "61646D69-6E44-6576-6963-655575696430",\r
- "rownerid": "61646D69-6E44-6576-6963-655575696430"\r
- },\r
- "doxm": {\r
- "oxms": [0],\r
- "oxmsel": 0,\r
- "sct": 1,\r
- "owned": true,\r
- "didformat": 0,\r
- "deviceid": "61646D69-6E44-6576-6963-655575696430",\r
- "dpc": false,\r
- "devownerid": "61646D69-6E44-6576-6963-655575696430",\r
- "rownerid": "61646D69-6E44-6576-6963-655575696430"\r
- }\r
+ "aclist": {\r
+ "aces": [\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/res",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/p",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/res/types/d",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/ad",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/amacl",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ }\r
+ ],\r
+ "permission": 2\r
+ },\r
+ {\r
+ "subjectuuid": "*",\r
+ "resources": [\r
+ {\r
+ "href": "/oic/sec/doxm",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ },\r
+ {\r
+ "href": "/oic/sec/pstat",\r
+ "rel": "",\r
+ "rt": "",\r
+ "if": ""\r
+ } \r
+ ],\r
+ "permission": 2\r
+ }\r
+ ]\r
+ },\r
+ "rowneruuid" : "61646D69-6E44-6576-6963-655575696430"\r
+ }, \r
+ "pstat": {\r
+ "isop": true,\r
+ "cm": 2,\r
+ "tm": 0,\r
+ "om": 3,\r
+ "sm": 3,\r
+ "deviceuuid": "61646D69-6E44-6576-6963-655575696430",\r
+ "rowneruuid": "61646D69-6E44-6576-6963-655575696430"\r
+ },\r
+ "doxm": {\r
+ "oxms": [0],\r
+ "oxmsel": 0,\r
+ "sct": 1,\r
+ "owned": true,\r
+ "deviceuuid": "61646D69-6E44-6576-6963-655575696430",\r
+ "dpc": false,\r
+ "devowneruuid": "61646D69-6E44-6576-6963-655575696430",\r
+ "rowneruuid": "61646D69-6E44-6576-6963-655575696430"\r
+ }\r
}\r