return MA_ERROR_NONE;
}
-static OicSecAcl_t* _create_target_acl(const OicUuid_t* target, const OicUuid_t* subject,
- const char *rsrc_uri, const char *rsrc_type, const char *rsrc_interface, int permission)
+static OicSecAcl_t* _create_target_acl(const OicUuid_t* subject, const char *rsrc_uri,
+ const char *rsrc_type, const char *rsrc_interface, int permission)
{
/* For example
* subejct = "12341234-1234-1234-12341234"
* rsrc_interface = "oic.if.baseline"
* rsrc_permission = MA_PERMISSION_FULL
*/
+
size_t len;
+ OicUuid_t eowner;
+ OCStackResult ret;
OicSecAcl_t* acl = NULL;
OicSecAce_t* ace = NULL;
OicSecRsrc_t* rsrc = NULL;
- ma_check_null_ret_error(target, "target", NULL);
ma_check_null_ret_error(subject, "subject", NULL);
+ ma_check_null_ret_error(rsrc_uri, "rsrc_uri", NULL);
+ ma_check_null_ret_error(rsrc_type, "rsrc_type", NULL);
+ ma_check_null_ret_error(rsrc_interface, "rsrc_interface", NULL);
#ifdef DEBUG_UUID
- MA_LOGD("target = %s", ma_get_readable_uuid(target));
MA_LOGD("subject = %s", ma_get_readable_uuid(subject));
MA_LOGD("rsrc_uri = %s", rsrc_uri);
MA_LOGD("rsrc_type = %s", rsrc_type);
MA_LOGE("ace->eownerID : calloc failed = %d", errno);
goto CREATE_ACL_ERROR;
}
- memcpy(ace->eownerID->id, subject->id, sizeof(subject->id));
+ ret = GetDoxmDevOwnerId(&eowner);
+ if (OC_STACK_OK != ret) {
+ MA_LOGE("GeDoxmDevOwner failed = %d", ret);
+ goto CREATE_ACL_ERROR;
+ }
+ memcpy(ace->eownerID->id, eowner.id, sizeof(subject->id));
return acl;
g_client->g_doneCB = false;
MA_LOGI(" Provisioning Selected ACL..");
- acl = _create_target_acl(&target_dev->doxm->deviceID,
- &subject_dev->doxm->deviceID, con->rsrc_uri, con->rsrc_type,
+ acl = _create_target_acl(&subject_dev->doxm->deviceID, con->rsrc_uri, con->rsrc_type,
con->rsrc_interface, con->permission);
if (NULL == acl) {
MA_LOGE("Failed to create ACL for %s", con->rsrc_uri);
ma_subowner_s *client = (ma_subowner_s *)ctx;
if (!has_error) {
- MA_LOGD("Provision ACL SUCCEEDED");
+ MA_LOGD("Provision CRED SUCCEEDED");
} else {
- MA_LOGD("Provision ACL FAILED ");
+ MA_LOGD("Provision CRED FAILED ");
ma_print_result_list((const OCProvisionResult_t*) arr, nOfRes);
}
client->g_doneCB = true;
SYMMETRIC_PAIR_WISE_KEY, OWNER_PSK_LENGTH_256,
dev1, dev2, _cred_provisioning_cb);
if (OC_STACK_OK != ret) {
- MA_LOGD("OCProvisionPairwiseDevices API error: %d (%s)",
+ MA_LOGD("OCProvisionCredentials API error: %d (%s)",
ret, ma_ocf_error_to_string(ret));
goto PV_CRED_END;
}
g_client->g_doneCB = false;
MA_LOGI(" Provisioning Selected Pairwise..");
- acl_1 = _create_target_acl(&target_dev_1->doxm->deviceID,
- &subject_dev_1->doxm->deviceID, con->rsrc_uri_1,
- con->rsrc_type_1,
- con->rsrc_interface_1, con->permission_1);
+ acl_1 = _create_target_acl(&subject_dev_1->doxm->deviceID, con->rsrc_uri_1,
+ con->rsrc_type_1, con->rsrc_interface_1, con->permission_1);
if (NULL == acl_1) {
MA_LOGE("Failed to create ACL for %s", con->rsrc_uri);
goto PVPAIRWIE_ERROR;
}
- acl_2 = _create_target_acl(&target_dev_2->doxm->deviceID,
- &subject_dev_2->doxm->deviceID, con->rsrc_uri_2,
- con->rsrc_type_2,
- con->rsrc_interface_2, con->permission_2);
+ acl_2 = _create_target_acl(&subject_dev_2->doxm->deviceID, con->rsrc_uri_2,
+ con->rsrc_type_2, con->rsrc_interface_2, con->permission_2);
if (NULL == acl_2) {
MA_LOGE("Failed to create ACL for %s", con->rsrc_uri);
goto PVPAIRWIE_ERROR;
/* Do both resources pairwise */
ret = OCProvisionPairwiseDevices((void*) g_client, SYMMETRIC_PAIR_WISE_KEY,
- OWNER_PSK_LENGTH_256, target_dev_1, acl_1,
- target_dev_2, acl_2, _resources_pairwise_cb);
+ OWNER_PSK_LENGTH_256, target_dev_1, acl_1, target_dev_2, acl_2,
+ _resources_pairwise_cb);
if (OC_STACK_OK != ret) {
MA_LOGD("OCProvisionPairwiseDevices API error: %d (%s)", ret,
ma_ocf_error_to_string(ret));
goto PV_PAIR_END;
}
- MA_LOGI("Registered Discovered Devices");
+ MA_LOGI("MOT Done");
g_client->g_doneCB = false;
MA_LOGI(" Provisioning Selected Pairwise..");
- acl_1 = _create_target_acl(&target_dev_1->doxm->deviceID,
- &subject_dev_1->doxm->deviceID, con->rsrc_uri_1,
- con->rsrc_type_1,
- con->rsrc_interface_1, con->permission_1);
+ acl_1 = _create_target_acl(&subject_dev_1->doxm->deviceID, con->rsrc_uri_1,
+ con->rsrc_type_1, con->rsrc_interface_1, con->permission_1);
if (NULL == acl_1) {
MA_LOGE("Failed to create ACL for %s", con->rsrc_uri);
goto PV_PAIR_END;
}
- acl_2 = _create_target_acl(&target_dev_2->doxm->deviceID,
- &subject_dev_2->doxm->deviceID, con->rsrc_uri_2,
- con->rsrc_type_2,
- con->rsrc_interface_2, con->permission_2);
+ acl_2 = _create_target_acl(&subject_dev_2->doxm->deviceID, con->rsrc_uri_2,
+ con->rsrc_type_2, con->rsrc_interface_2, con->permission_2);
if (NULL == acl_2) {
MA_LOGE("Failed to create ACL for %s", con->rsrc_uri);
goto PV_PAIR_END;
g_client->g_doneCB = false;
+#ifdef DEBUG_UUID
+ MA_LOGD("owner_dev = %s", ma_get_readable_uuid(owner_uuid));
+ MA_LOGD("owned_dev = %s", ma_get_readable_uuid(owned_uuid));
+#endif
+
MA_LOGI("Unlink Selected Pairwise Devices..");
g_mutex_lock(&g_client->iotivity_mutex);
ret = OCUnlinkDevices((void*) g_client, owner_dev, owned_dev, _unlink_resources_cb);