From 82b1412438374fd6bc2543db0589b2993b1e6cb6 Mon Sep 17 00:00:00 2001 From: leechul Date: Mon, 28 Mar 2016 16:16:00 +0900 Subject: [PATCH] Update pstat init API to fill device id of pstat as doxm's uuid in case of pstat's device id is empty. If you want test with empty device uuid, please use the resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.dat Patch #1 : Intial upload Patch #2 : Add json file according to Mr.JongSung Lee's comment. Change-Id: I9c791074cd5abe179c2c4cccbb66e0d95d044399 Signed-off-by: leechul Reviewed-on: https://gerrit.iotivity.org/gerrit/7383 Reviewed-by: Kyungsun Cho Tested-by: jenkins-iotivity Reviewed-by: Randeep Singh --- .../csdk/security/provisioning/sample/SConscript | 4 +- .../oic_svr_db_randompin_with_empty_deviceid.dat | Bin 0 -> 906 bytes .../oic_svr_db_randompin_with_empty_deviceid.json | 118 +++++++++++++++++++++ resource/csdk/security/src/pstatresource.c | 12 +++ 4 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.dat create mode 100644 resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.json diff --git a/resource/csdk/security/provisioning/sample/SConscript b/resource/csdk/security/provisioning/sample/SConscript index 1f811cf..a4f645d 100644 --- a/resource/csdk/security/provisioning/sample/SConscript +++ b/resource/csdk/security/provisioning/sample/SConscript @@ -80,8 +80,10 @@ justworksdat = provisioning_env.Install(sec_provisioning_build_dir, sec_provisioning_src_dir + 'oic_svr_db_server_justworks.dat') randompindat = provisioning_env.Install(sec_provisioning_build_dir, sec_provisioning_src_dir+ 'oic_svr_db_server_randompin.dat') +randompin_with_emptyuuid_dat = provisioning_env.Install(sec_provisioning_build_dir, + sec_provisioning_src_dir+ 'oic_svr_db_randompin_with_empty_deviceid.dat') -Alias("samples", [provisioningclient, sampleserver_justworks, sampleserver_randompin, clientdat, justworksdat, randompindat]) +Alias("samples", [provisioningclient, sampleserver_justworks, sampleserver_randompin, clientdat, justworksdat, randompindat, randompin_with_emptyuuid_dat]) provisioning_env.AppendTarget('samples') diff --git a/resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.dat b/resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.dat new file mode 100644 index 0000000000000000000000000000000000000000..3f27f59ca149cd9812b3dece807152f4256a8df4 GIT binary patch literal 906 zcmb7BOHRWu5N%V5ldwWU;S8Lj>=MsRs6+h0Vy= zqshhnua3{Y&uOf`t}RB*4Cm`-lx*yKiL{hJhyNF#65-WE7&Q~DW}^dO-17YOB^KUH drbVn&O@P5qDRzV7Q&pjjk%Jf=9MHnY=NA_QKOq1B literal 0 HcmV?d00001 diff --git a/resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.json b/resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.json new file mode 100644 index 0000000..0f73d7d --- /dev/null +++ b/resource/csdk/security/provisioning/sample/oic_svr_db_randompin_with_empty_deviceid.json @@ -0,0 +1,118 @@ +{ + "acl": { + "aclist": { + "aces": [ + { + "subjectuuid": "*", + "resources": [ + { + "href": "/oic/res", + "rel": "", + "rt": "", + "if": "" + }, + { + "href": "/oic/res/d", + "rel": "", + "rt": "", + "if": "" + }, + { + "href": "/oic/res/types/d", + "rel": "", + "rt": "", + "if": "" + }, + { + "href": "/oic/presence", + "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": "" + }, + { + "href": "/oic/sec/cred", + "rel": "", + "rt": "", + "if": "" + } + ], + "permission": 6 + }, + { + "subjectuuid": "*", + "resources": [ + { + "href": "/oic/sec/pconf", + "rel": "", + "rt": "", + "if": "" + }, + { + "href": "/oic/sec/dpairing", + "rel": "", + "rt": "", + "if": "" + } + ], + "permission": 6 + }, + { + "subjectuuid": "*", + "resources": [ + { + "href": "/oic/sec/ver", + "rel": "", + "rt": "", + "if": "" + } + ], + "permission": 2 + } + ] + }, + "rowneruuid" : "" + }, + "pstat": { + "isop": false, + "deviceuuid": "", + "rowneruuid": "", + "cm": 2, + "tm": 0, + "om": 3, + "sm": 3 + }, + "doxm": { + "oxms": [0, 1], + "oxmsel": 0, + "sct": 1, + "owned": false, + "deviceuuid": "", + "devowneruuid": "", + "rowneruuid": "", + "dpc": true + } +} diff --git a/resource/csdk/security/src/pstatresource.c b/resource/csdk/security/src/pstatresource.c index f13bb1b..25f143c 100644 --- a/resource/csdk/security/src/pstatresource.c +++ b/resource/csdk/security/src/pstatresource.c @@ -499,9 +499,21 @@ OCStackResult InitPstatResource() } if (data) { + OicUuid_t emptyUuid = {.id={0}}; + // Read ACL resource from PS ret = CBORPayloadToPstat(data, size, &gPstat); OICFree(data); + + //In case of PStat's device id is empty, fill the device id as doxm's device id. + if(memcmp(&gPstat->deviceID, &emptyUuid, sizeof(OicUuid_t)) == 0) + { + OicUuid_t doxmUuid = {.id={0}}; + if(OC_STACK_OK == GetDoxmDeviceID(&doxmUuid)) + { + memcpy(&gPstat->deviceID, &doxmUuid, sizeof(OicUuid_t)); + } + } } /* * If SVR database in persistent storage got corrupted or -- 2.7.4