X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fsecurity%2Fprovisioning%2Finclude%2Finternal%2Fownershiptransfermanager.h;h=1d0aa244de11c31368af438a2ab5de767100043f;hb=7f00f942c39b7bc27c7eeecf213a239c3fe4173c;hp=64f736830bf728b65dc7c3132e52d260b8945fee;hpb=c7947c2aac0d24b278b7198c3f45e4bc1a70482e;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/security/provisioning/include/internal/ownershiptransfermanager.h b/resource/csdk/security/provisioning/include/internal/ownershiptransfermanager.h index 64f7368..1d0aa24 100644 --- a/resource/csdk/security/provisioning/include/internal/ownershiptransfermanager.h +++ b/resource/csdk/security/provisioning/include/internal/ownershiptransfermanager.h @@ -31,27 +31,32 @@ extern "C" { #endif // __cplusplus #define OXM_STRING_MAX_LENGTH 32 +#define WRONG_PIN_MAX_ATTEMP 1 +typedef struct OTMCallbackData OTMCallbackData_t; +typedef struct OTMContext OTMContext_t; /** - * Context for ownership transfer(OT) - */ -typedef struct OTMContext{ - void* userCtx; /**< Context for user**/ - OCProvisionDev_t* selectedDeviceInfo; /**< Selected device info for OT */ - OicUuid_t tempCredId; -}OTMContext_t; - -/** - * Do ownership transfer for un-owned device. + * Do ownership transfer for the unowned devices. * * @param[in] ctx Application context would be returned in result callback - * @param[in] selectedDeviceInfo selected device information + * @param[in] selectedDeviceList linked list of ownership transfer candidate devices. * @param[in] resultCB Result callback function to be invoked when ownership transfer finished. * @return OC_STACK_OK in case of success and other value otherwise. */ OCStackResult OTMDoOwnershipTransfer(void* ctx, - OCProvisionDev_t* selectedDeviceInfo, OCProvisionResultCB resultCB); + OCProvisionDev_t* selectedDeviceList, OCProvisionResultCB resultCB); + +/** + * API to set a allow status of OxM + * + * @param[in] oxm Owership transfer method (ref. OicSecOxm_t) + * @param[in] allowStatus allow status (true = allow, false = not allow) + * + * @return OC_STACK_OK in case of success and other value otherwise. + */ +OCStackResult OTMSetOxmAllowStatus(const OicSecOxm_t oxm, const bool allowStatus); + /* *Callback for load secret for temporal secure session @@ -61,7 +66,6 @@ OCStackResult OTMDoOwnershipTransfer(void* ctx, */ typedef OCStackResult (*OTMLoadSecret)(OTMContext_t* otmCtx); - /* * Callback for create secure channel using secret inputed from OTMLoadSecret callback */ @@ -70,19 +74,38 @@ typedef OCStackResult (*OTMCreateSecureSession)(OTMContext_t* otmCtx); /* * Callback for creating CoAP payload. */ -typedef char* (*OTMCreatePayloadCallback)(OTMContext_t* otmCtx); +typedef OCStackResult (*OTMCreatePayloadCallback)(OTMContext_t* otmCtx, uint8_t **payload, + size_t *size); /** * Required callback for performing ownership transfer */ -typedef struct OTMCallbackData{ +struct OTMCallbackData +{ OTMLoadSecret loadSecretCB; OTMCreateSecureSession createSecureSessionCB; OTMCreatePayloadCallback createSelectOxmPayloadCB; OTMCreatePayloadCallback createOwnerTransferPayloadCB; -}OTMCallbackData_t; +}; /** + * Context for ownership transfer(OT) + */ +struct OTMContext{ + void* userCtx; /**< Context for user.*/ + OCProvisionDev_t* selectedDeviceInfo; /**< Selected device info for OT. */ + OicUuid_t subIdForPinOxm; /**< Subject Id which uses PIN based OTM. */ + OCProvisionResultCB ctxResultCallback; /**< Function pointer to store result callback. */ + OCProvisionResult_t* ctxResultArray; /**< Result array having result of all device. */ + size_t ctxResultArraySize; /**< No of elements in result array. */ + bool ctxHasError; /**< Does OT process have any error. */ + OCDoHandle ocDoHandle; /**