X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fsecurity%2Fprovisioning%2Finclude%2Finternal%2Fownershiptransfermanager.h;h=b8f34c97da007e50f197b930d8b25c2cb2298445;hb=4f964073c7ab4d8d4727692122a630dc5c8a7b23;hp=bcd7b8a50fe6d20e488efafe033c32184165953d;hpb=ea3b90336cac85ca8c75e6a78a60ab16dc2ffe58;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 bcd7b8a..b8f34c9 100644 --- a/resource/csdk/security/provisioning/include/internal/ownershiptransfermanager.h +++ b/resource/csdk/security/provisioning/include/internal/ownershiptransfermanager.h @@ -31,20 +31,10 @@ extern "C" { #endif // __cplusplus #define OXM_STRING_MAX_LENGTH 32 +#define WRONG_PIN_MAX_ATTEMP 1 - -/** - * Context for ownership transfer(OT) - */ -typedef 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. */ -}OTMContext_t; +typedef struct OTMCallbackData OTMCallbackData_t; +typedef struct OTMContext OTMContext_t; /** * Do ownership transfer for the unowned devices. @@ -57,6 +47,21 @@ typedef struct OTMContext{ OCStackResult OTMDoOwnershipTransfer(void* ctx, OCProvisionDev_t* selectedDeviceList, OCProvisionResultCB resultCB); +OCStackResult OTMDoCustomOwnershipTransfer(void* ctx, + OCProvisionDev_t* selectedDeviceList, OCProvisionResultCB resultCB, + const OicSecOxm_t method); + +/** + * 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 * @@ -65,7 +70,6 @@ OCStackResult OTMDoOwnershipTransfer(void* ctx, */ typedef OCStackResult (*OTMLoadSecret)(OTMContext_t* otmCtx); - /* * Callback for create secure channel using secret inputed from OTMLoadSecret callback */ @@ -74,19 +78,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; /**