1 //******************************************************************
3 // Copyright 2015 Intel Mobile Communications GmbH All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 #ifndef IOTVT_SRM_DOXM_H
22 #define IOTVT_SRM_DOXM_H
31 * Initialize DOXM resource by loading data from persistent storage.
33 * @retval OC_STACK_OK for Success, otherwise some error value
35 OCStackResult InitDoxmResource();
38 * Perform cleanup for DOXM resources.
40 * @retval OC_STACK_OK for Success, otherwise some error value
42 OCStackResult DeInitDoxmResource();
45 * This method is used by SRM to retrieve DOXM resource data..
47 * @retval reference to @ref OicSecDoxm_t, binary format of Doxm resource data
49 const OicSecDoxm_t* GetDoxmResourceData();
52 * This method converts JSON DOXM into binary DOXM.
53 * The JSON DOXM can be from persistent database or
54 * or received as PUT/POST request.
56 * @param[in] jsonStr doxm data in json string.
57 * @return pointer to OicSecDoxm_t.
59 * @note Caller needs to invoke OCFree after done
60 * using the return pointer
62 OicSecDoxm_t * JSONToDoxmBin(const char * jsonStr);
65 * This method converts DOXM data into JSON format.
66 * Caller needs to invoke 'free' when finished done using
69 * @param[in] doxm Pointer to OicSecDoxm_t.
70 * @return pointer to json string.
72 * @note Caller needs to invoke OCFree after done
73 * using the return pointer
75 char * BinToDoxmJSON(const OicSecDoxm_t * doxm);
78 * This method returns the SRM device ID for this device.
80 * @retval OC_STACK_OK for Success, otherwise some error value
82 OCStackResult GetDoxmDeviceID(OicUuid_t *deviceID);
85 * @brief Gets the OicUuid_t value for the owner of this device.
87 * @return OC_STACK_OK if devOwner is a valid UUID, otherwise OC_STACK_ERROR.
89 OCStackResult GetDoxmDevOwnerId(OicUuid_t *devOwner);
91 /** This function deallocates the memory for OicSecDoxm_t .
93 * @param[in] doxm Pointer to OicSecDoxm_t.
95 void DeleteDoxmBinData(OicSecDoxm_t* doxm);
102 #endif //IOTVT_SRM_DOXMR_H