Merge tizen_5.0 codes into tizen_4.0
[platform/upstream/iotivity.git] / resource / csdk / connectivity / api / casecurityinterface.h
index 736541d..c891460 100644 (file)
@@ -33,6 +33,7 @@
 #endif //__WITH_DTLS__ or __WITH_TLS__
 #include "cacommon.h"
 #include "byte_array.h"
+#include "octypes.h"
 
 #ifdef __cplusplus
 extern "C"
@@ -73,6 +74,24 @@ typedef enum
 }CASslEkcbProtocol_t;
 
 /**
+ *@enum CACertificateVerificationStatus_t
+ * type of certificate status info to be used when invoking
+ * certificate verification status info callback
+ */
+typedef enum
+{
+    CA_CERTIFICATE_VERIFY_SUCCESS_MUTUAL = 0,
+    CA_CERTIFICATE_VERIFY_NO_CERT,
+    CA_CERTIFICATE_VERIFY_FAILED
+} CACertificateVerificationStatus_t;
+
+/**
+ * Callback function type for certificate verification status.
+ * @param[in]   status      Certificate verification status info.
+ */
+typedef void (*CertificateVerificationCallback_t)(CACertificateVerificationStatus_t status);
+
+/**
  * This internal callback is used by CA layer to
  * retrieve PSK credentials from SRM.
  *
@@ -354,6 +373,16 @@ typedef void (*SslExportKeysCallback_t)(const unsigned char* masterSecret,
 CAResult_t CASetSslExportKeysCallback(SslExportKeysCallback_t exportKeysCb,
                                       CASslEkcbProtocol_t protocol, CASslEkcbRole_t role);
 
+/**
+ * API to set certificate verification callback.
+ */
+void CAsetCertificateVerificationCallback(CertificateVerificationCallback_t noCertCallback);
+
+/**
+ * API to unset certificate verification callback.
+ */
+void CAunsetCertificateVerificationCallback();
+
 #endif //__WITH_TLS__ or __WITH_DTLS__