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
29 * Initialize DOXM resource by loading data from persistent storage.
31 * @retval OC_STACK_OK for Success, otherwise some error value
33 OCStackResult InitDoxmResource();
36 * Perform cleanup for DOXM resources.
38 * @retval OC_STACK_OK for Success, otherwise some error value
40 OCStackResult DeInitDoxmResource();
43 * This method is used by SRM to retrieve DOXM resource data..
45 * @retval reference to @ref OicSecDoxm_t, binary format of Doxm resource data
47 const OicSecDoxm_t* GetDoxmResourceData();
50 * This method converts JSON DOXM into binary DOXM.
51 * The JSON DOXM can be from persistent database or
52 * or received as PUT/POST request.
54 * @param[in] jsonStr doxm data in json string.
55 * @return pointer to OicSecDoxm_t.
57 * @note Caller needs to invoke OCFree after done
58 * using the return pointer
60 OicSecDoxm_t * JSONToDoxmBin(const char * jsonStr);
63 * This method converts DOXM data into JSON format.
64 * Caller needs to invoke 'free' when finished done using
67 * @param[in] doxm Pointer to OicSecDoxm_t.
68 * @return pointer to json string.
70 * @note Caller needs to invoke OCFree after done
71 * using the return pointer
73 char * BinToDoxmJSON(const OicSecDoxm_t * doxm);
76 * This method returns the SRM device ID for this device.
78 * @retval OC_STACK_OK for Success, otherwise some error value
80 OCStackResult GetDoxmDeviceID(OicUuid_t *deviceID);
83 * @brief Gets the OicUuid_t value for the owner of this device.
85 * @return OC_STACK_OK if devOwner is a valid UUID, otherwise OC_STACK_ERROR.
87 OCStackResult GetDoxmDevOwnerId(OicUuid_t *devOwner);
89 /** This function deallocates the memory for OicSecDoxm_t .
91 * @param[in] doxm Pointer to OicSecDoxm_t.
93 void DeleteDoxmBinData(OicSecDoxm_t* doxm);
100 #endif //IOTVT_SRM_DOXMR_H