replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / csdk / security / include / srmutility.h
index bcf5ea8..3608bbc 100644 (file)
 #define IOTVT_SRM_UTILITY_H
 
 #include "ocstack.h"
+#if defined (__TIZENRT__)
+#include <apps/netutils/cJSON.h>
+#else
 #include "cJSON.h"
+#endif
 #include "securevirtualresourcetypes.h"
 #ifdef __cplusplus
 extern "C"
@@ -55,6 +59,24 @@ struct OicParseQueryIter
     coap_parse_iterator_t pi;   /**< coap struct for tokenizing the query.*/
 };
 
+typedef enum OicSecOtmEvent{
+    OIC_OTM_READY = 0,
+    OIC_OTM_STARTED = 1,
+    OIC_OTM_DONE = 2,
+    OIC_OTM_ERROR = 3
+}OicSecOtmEvent_t;
+
+/**
+ * Callback function to recevie the OTM event on server side.
+ *
+ * @param addr PT's address (address can be NULL in case of init state)
+ * @param port PT's port (It is meaningless in case of init state & BLE)
+ * @param uuid PT's UUID (UUID can be NULL in case of init state & coap reqest)
+ * @param event OTM state (@ref OicSecOtmEvent_t)
+ */
+typedef void (*OicSecOtmEventHandler_t)(const char* addr, uint16_t port,
+                                        const char* uuid, int event);
+
 /**
  * Macro to verify success of operation.
  * eg: VERIFY_SUCCESS(TAG, OC_STACK_OK == foo(), ERROR);
@@ -136,6 +158,37 @@ OCStackResult ConvertUuidToStr(const OicUuid_t* uuid, char** strUuid);
 OCStackResult ConvertStrToUuid(const char* strUuid, OicUuid_t* uuid);
 
 
+#if defined(__WITH_DTLS__) || defined (__WITH_TLS__)
+/**
+ * API to save the seed value to generate device UUID.
+ *
+ * @param seed buffer of seed value.
+ * @param seedSize byte length of seed
+ *
+ * @return ::OC_STACK_OK for Success, otherwise some error value.
+ */
+OCStackResult SetDeviceIdSeed(const uint8_t* seed, size_t seedSize);
+
+/**
+ * API to register OTM event handler
+ *
+ * @param otmEventHandler implementation of OTM event handler (@ref OicSecOtmEventHandler_t)
+ */
+void SetOtmEventHandler(OicSecOtmEventHandler_t otmEventHandler);
+
+/**
+ * Invoke OTM event handler to notify the OTM state.
+ *
+ * @param addr PT's address (address can be NULL in case of init state)
+ * @param port PT's port (It is meaningless in case of init state & BLE)
+ * @param uuid PT's UUID (UUID can be NULL in case of init state & coap reqest)
+ * @param event OTM state (@ref OicSecOtmEvent_t)
+ * @param result OTM result code
+ */
+void InvokeOtmEventHandler(const char* addr, uint16_t port,
+                           const OicUuid_t* uuid, OicSecOtmEvent_t event);
+#endif
+
 #ifdef __cplusplus
 }
 #endif // __cplusplus