replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / csdk / security / include / internal / doxmresource.h
old mode 100755 (executable)
new mode 100644 (file)
index f63a2b1..d42dd73
@@ -22,6 +22,9 @@
 #define IOTVT_SRM_DOXM_H
 
 #include "octypes.h"
+#ifdef MULTIPLE_OWNER
+#include "cacommon.h"
+#endif //MULTIPLE_OWNER
 
 #ifdef __cplusplus
 extern "C" {
@@ -79,6 +82,18 @@ OCStackResult CBORPayloadToDoxm(const uint8_t *cborPayload, size_t size,
 OCStackResult DoxmToCBORPayload(const OicSecDoxm_t * doxm, uint8_t **cborPayload,
                                 size_t *cborSize, bool rwOnly);
 
+#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 SetDoxmDeviceIDSeed(const uint8_t* seed, size_t seedSize);
+#endif
+
 /**
  * This method returns the SRM device ID for this device.
  *
@@ -87,6 +102,14 @@ OCStackResult DoxmToCBORPayload(const OicSecDoxm_t * doxm, uint8_t **cborPayload
 OCStackResult GetDoxmDeviceID(OicUuid_t *deviceID);
 
 /**
+ * This method changes the SRM device ID for this device.
+ * This api will update device Id iff device is in unowned state.
+ * @return ::OC_STACK_OK for Success, otherwise some error value.
+ */
+OCStackResult SetDoxmDeviceID(const OicUuid_t *deviceID);
+
+
+/**
  * Gets the OicUuid_t value for the owner of this device.
  *
  * @param devownerid a pointer to be assigned to the devownerid property
@@ -95,6 +118,14 @@ OCStackResult GetDoxmDeviceID(OicUuid_t *deviceID);
 OCStackResult GetDoxmDevOwnerId(OicUuid_t *devownerid);
 
 /**
+ * Gets the bool state of "isOwned" property on the doxm resource.
+ *
+ * @param isOwned a pointer to be assigned to isOwned property
+ * @return ::OC_STACK_OK if isOwned is assigned correctly, else ::OC_STACK_ERROR.
+ */
+OCStackResult GetDoxmIsOwned(bool *isOwned);
+
+/**
  * Gets the OicUuid_t value for the rowneruuid of the doxm resource.
  *
  * @param rowneruuid a pointer to be assigned to the rowneruuid property
@@ -102,6 +133,17 @@ OCStackResult GetDoxmDevOwnerId(OicUuid_t *devownerid);
  */
 OCStackResult GetDoxmRownerId(OicUuid_t *rowneruuid);
 
+#ifdef MULTIPLE_OWNER
+/**
+ * Compare the UUID to SubOwner.
+ *
+ * @param[in] uuid device UUID
+ *
+ * @return true if uuid exists in the SubOwner list of doxm, else false.
+ */
+bool IsSubOwner(const OicUuid_t* uuid);
+#endif //MULTIPLE_OWNER
+
 /** This function deallocates the memory for OicSecDoxm_t .
  *
  * @param doxm is the pointer to @ref OicSecDoxm_t.
@@ -114,6 +156,53 @@ void DeleteDoxmBinData(OicSecDoxm_t* doxm);
  */
 void RestoreDoxmToInitState();
 
+#if defined(__WITH_DTLS__) && defined(MULTIPLE_OWNER)
+/**
+ * Callback function to handle MOT DTLS handshake result.
+ * @param[out]   object           remote device information.
+ * @param[out]   errorInfo        CA Error information.
+ */
+void MultipleOwnerDTLSHandshakeCB(const CAEndpoint_t *object,
+                                const CAErrorInfo_t *errorInfo);
+#endif //__WITH_DTLS__ && MULTIPLE_OWNER
+
+/**
+ * Internal function to change doxm resource to Ready for Normal Operation.
+ *
+ * @param newROwner new owner
+ *
+ * @retval ::OC_STACK_OK for Success, otherwise some error value
+ */
+OCStackResult SetDoxmSelfOwnership(const OicUuid_t* newROwner);
+
+/**
+ * Function to set a MOT status
+ *
+ * @param enable whether the MOT is enabled. (true=enable, false=disable)
+ *
+ * @retval ::OC_STACK_OK for Success, otherwise some error value
+ */
+OCStackResult SetMOTStatus(bool enable);
+
+/**
+ * Function to remove the Sub Owner (include ACL/Cred)
+ *
+ * @param subOwner UUID of Sub Owner to be removed.
+ *
+ * @retVal ::OC_STACK_OK for success, otherwise some error value.
+ */
+OCStackResult RemoveSubOwner(const OicUuid_t* subOwner);
+
+/**
+ * Function to set a max number of sub owner.
+ *
+ * @param maxSubOwner Max number of sub owner.
+ *
+ * @retVal ::OC_STACK_OK for success, otherwise some error value.
+ */
+OCStackResult SetNumberOfSubOwner(size_t maxSubOwner);
+
+
 #ifdef __cplusplus
 }
 #endif