Quick guide : How to make provisioning tool and servers. 

1. Provisioning Tool.

  1-1. Callback function registration
       Register the callback functions of ownership transfer method(OxM) using OTMSetOwnershipTransferCallbackData API.
       You can use default OxM callback implementation located in resource/csdk/security/provisioning/include/oxm.

       [Sample code for just-works OxM]
           OTMCallbackData_t justWorksCBData = {};
           justWorksCBData.loadSecretCB = LoadSecretJustWorksCallback;
           justWorksCBData.createSecureSessionCB = CreateSecureSessionJustWorksCallback;
           justWorksCBData.createSelectOxmPayloadCB = CreateJustWorksSelectOxmPayload;
           justWorksCBData.createOwnerTransferPayloadCB = CreateJustWorksOwnerTransferPayload;
           OTMSetOwnershipTransferCallbackData(OIC_JUST_WORKS, &justWorksCBData);

  1-2. Find un-owned devices using OCDiscoverUnownedDevices API.
       OCDiscoverUnownedDevices will fill the unowned device list in second parameter.

       [Sample code for unowned device discovery]
          OCProvisionDev_t* pDeviceList = NULL;
          OCStackResult res = OCDiscoverUnownedDevices(PREDEFINED_TIMEOUT, &pDeviceList);
          if(OC_STACK_OK != res)
          {
              //error
          }

       NOTE : We also provide OCDiscoverOwnedDevices API to find owned devices.

  1-3. Performing ownership transfer
     We provided OCDoOwnershipTransfer API to perform ownership transfer.
     In order to perform ownership transfer, unowned device list is required generated by OCDiscoverUnownedDevices API.
     OCDoOwnershipTransfer will require the result callback as 3rd paramter.
     This callback function will be invoked when ownership transfer is finished.
     You can check result of ownership transfer for each devices as array of OCProvisionResult_t.

  1-4. Find owned devices using OCDiscoverOwendDevices API.
  1-5. Provision credential between two owned devices.
     If you have owned devices,
     You can send a credential to  two owned devices using OCProvisionPairwiseDevices.
     You can also send ACL in this process.

  1-6. Free memory.
     We provide ODDeleteDiscoverdDevices API to free list of OCProvisionDev_t.
     Please delete your device list before the exit your application.


2. Server.
 The samples are resource/csdk/security/provisioning/sample
   2-1. Just-works OxM.
       If you use just-works OxM to server.
       You don't need any modification for your server.

