/***************************************************************************//**
 * @file
 * @brief Network Security Layer
 *******************************************************************************
 * # License
 * <b>Copyright 2018 Silicon Laboratories Inc. www.silabs.com</b>
 *******************************************************************************
 *
 * The licensor of this software is Silicon Laboratories Inc.  Your use of this
 * software is governed by the terms of Silicon Labs Master Software License
 * Agreement (MSLA) available at
 * www.silabs.com/about-us/legal/master-software-license-agreement.
 * The software is governed by the sections of the MSLA applicable to Micrium
 * Software.
 *
 ******************************************************************************/

/****************************************************************************************************//**
 * @defgroup NET_SECURE Network Secure module API
 * @ingroup  NET
 * @brief    Network Secure module API
 *
 * @addtogroup NET_SECURE
 * @{
 *******************************************************************************************************/

/********************************************************************************************************
 ********************************************************************************************************
 *                                               MODULE
 ********************************************************************************************************
 *******************************************************************************************************/

#ifndef  _NET_SECURE_H_
#define  _NET_SECURE_H_

#include  <rtos_description.h>

#ifdef  RTOS_MODULE_NET_SSL_TLS_AVAIL

/********************************************************************************************************
 ********************************************************************************************************
 *                                            INCLUDE FILES
 ********************************************************************************************************
 *******************************************************************************************************/

#include  <cpu/include/cpu.h>
#include  <common/include/rtos_err.h>
#include  <net/include/net_sock.h>

/********************************************************************************************************
 ********************************************************************************************************
 *                                         FUNCTION PROTOTYPES
 ********************************************************************************************************
 *******************************************************************************************************/

#ifdef __cplusplus
extern "C" {
#endif

CPU_BOOLEAN NetSecure_CA_CertInstall(const void                   *p_ca_cert,
                                     CPU_INT32U                   ca_cert_len,
                                     NET_SOCK_SECURE_CERT_KEY_FMT fmt,
                                     RTOS_ERR                     *p_err);

void NetSecure_Log(CPU_CHAR *p_str);

#if 0
CPU_BOOLEAN NetSecure_DN_Print(CPU_CHAR              *p_buf,
                               CPU_INT32U            buf_len,
                               certDistinguishedName *p_dn);
#endif

#ifdef __cplusplus
}
#endif

/****************************************************************************************************//**
 ********************************************************************************************************
 * @}                                          MODULE END
 ********************************************************************************************************
 *******************************************************************************************************/

#endif // NET_SECURE_MODULE_EN
#endif // _NET_SECURE_H_
