X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fsecurity%2Fprovisioning%2Finclude%2Finternal%2Fownershiptransfermanager.h;h=a7f2eb67be9c2581bd21c737974be31a6f91d6c2;hb=847996e6e5e387e38b7f56814016632d62f0cfe7;hp=bcd7b8a50fe6d20e488efafe033c32184165953d;hpb=ae6e681f3aa422e0bad2cc0cf706b54bde18bb1b;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..a7f2eb6 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,18 +78,43 @@ 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); + +/* + * Callback for selecting OTM. + */ +typedef OicSecOxm_t (*OTMSelectMethodCallback)(const OicSecOxm_t* otmList, const uint32_t len); /** * Required callback for performing ownership transfer */ -typedef struct OTMCallbackData{ +struct OTMCallbackData +{ OTMLoadSecret loadSecretCB; OTMCreateSecureSession createSecureSessionCB; OTMCreatePayloadCallback createSelectOxmPayloadCB; OTMCreatePayloadCallback createOwnerTransferPayloadCB; -}OTMCallbackData_t; + OTMSelectMethodCallback selectOTMCB; +}; + +/** + * 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; /**