WE310F5  39.00.000
m2mb_ssl.h File Reference

SSL TLS support. More...

Go to the source code of this file.

Data Structures

union  M2MB_SSL_CONF_PARAMS
 
struct  M2MB_SSL_OPEN_PARAMS
 
struct  M2MB_SSL_CONFIG_VERIFY_POLICY
 Structure to specify the certificate verification policy. More...
 
struct  M2MB_SSL_CONFIG
 Structure to configure an SSL connection. More...
 
#define M2MB_SSL_INVALID_HANDLE   (0)
 
#define M2MB_SSL_MAX_CIPHER_COUNT   54
 
#define M2MB_SSL_MAX_CERT_NAME_LEN   64
 
#define M2MB_SSL_MAX_SNI_NAME_LEN   (64)
 
#define M2MB_SSL_CIPHER_MAX   0x003FFFFFFFFFFFFF
 
#define M2MB_MAX_CERTS   10
 
#define M2MB_SSL_MAX_CA_LIST   10
 
enum  M2MB_SSL_PROTOCOL_VERSION_E {
  M2MB_SSL_PROTOCOL_TLS_1_0,
  M2MB_SSL_PROTOCOL_TLS_1_1,
  M2MB_SSL_PROTOCOL_TLS_1_2,
  M2MB_SSL_PROTOCOL_DTLS_1_0,
  M2MB_SSL_PROTOCOL_DTLS_1_2,
  M2MB_SSL_PROTOCOL_VER_MAX
}
 SSL protocol SET Configuration enumeration. More...
 
enum  M2MB_SSL_CONF_ID {
  M2MB_SSL_CONF_INVALID = 0,
  M2MB_SSL_CONF_PROTOCOL = 1,
  M2MB_SSL_CONF_CACERT = 2,
  M2MB_SSL_CONF_CERT = 3,
  M2MB_SSL_CONF_CIPHER = 4,
  M2MB_SSL_CONF_TX_MAX_FRAG_LEN = 5,
  M2MB_SSL_CONF_SNI = 6,
  M2MB_SSL_CONF_DOMAIN = 7,
  M2MB_SSL_CONF_MAX_FRAG_LEN = 8,
  M2MB_SSL_CONF_SERVER_AUTH = 9,
  M2MB_SSL_CONF_TIME_VALIDATE = 10,
  M2MB_SSL_CONF_GET_PEEK = 11,
  M2MB_SSL_CONF_GET_CONN_STATUS = 12,
  M2MB_SSL_CONF_GET_CERT_LOAD_STATUS = 13,
  M2MB_SSL_CONF_GET_CA_CERT_LOAD_STATUS = 14
}
 
enum  M2MB_SSL_CIPHER_SUITE_E {
  M2MB_TLS_PSK_WITH_RC4_128_SHA,
  M2MB_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
  M2MB_TLS_PSK_WITH_AES_128_CBC_SHA,
  M2MB_TLS_PSK_WITH_AES_256_CBC_SHA,
  M2MB_TLS_PSK_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_PSK_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_PSK_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_PSK_WITH_AES_256_CBC_SHA384,
  M2MB_TLS_RSA_WITH_AES_128_CBC_SHA,
  M2MB_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
  M2MB_TLS_RSA_WITH_AES_256_CBC_SHA,
  M2MB_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
  M2MB_TLS_RSA_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_RSA_WITH_AES_256_CBC_SHA256,
  M2MB_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
  M2MB_TLS_RSA_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_RSA_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
  M2MB_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
  M2MB_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
  M2MB_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
  M2MB_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
  M2MB_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
  M2MB_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
  M2MB_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
  M2MB_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
  M2MB_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
  M2MB_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
  M2MB_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
  M2MB_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
  M2MB_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
  M2MB_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
  M2MB_TLS_RSA_WITH_AES_128_CCM,
  M2MB_TLS_RSA_WITH_AES_256_CCM,
  M2MB_TLS_DHE_RSA_WITH_AES_128_CCM,
  M2MB_TLS_DHE_RSA_WITH_AES_256_CCM,
  M2MB_TLS_RSA_WITH_AES_128_CCM_8,
  M2MB_TLS_RSA_WITH_AES_256_CCM_8,
  M2MB_TLS_DHE_RSA_WITH_AES_128_CCM_8,
  M2MB_TLS_DHE_RSA_WITH_AES_256_CCM_8,
  M2MB_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
  M2MB_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
  M2MB_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
}
 TLS ciphersuites enum. More...
 
enum  M2MB_SSL_AUTH_TYPE_E {
  M2MB_SSL_AUTH_NONE,
  M2MB_SSL_AUTH_REQUIRED,
  M2MB_SSL_AUTH_OPTIONAL
}
 SSL authentication types enum. More...
 
enum  M2MB_SSL_SSL_ROLE_E {
  M2MB_SSL_SSL_ROLE_SERVER_E = 0,
  M2MB_SSL_SSL_ROLE_CLIENT_E = 1
}
 SSL object role. More...
 
typedef enum M2MB_SSL_PROTOCOL_VERSION_E M2MB_SSL_PROTOCOL_VERSION_E
 SSL protocol SET Configuration enumeration. More...
 
typedef enum M2MB_SSL_CONF_ID M2MB_SSL_CONF_ID_E
 
typedef union M2MB_SSL_CONF_PARAMS M2MB_SSL_CONF_PARAMS_T
 
typedef HANDLE M2MB_SSL_CTXT_HANDLE
 SSL context handle.
This is obtained from m2mb_ssl_open API and then used in subsequent SSL APIs. More...
 
typedef enum M2MB_SSL_CIPHER_SUITE_E M2MB_SSL_CIPHER_SUITE_E
 TLS ciphersuites enum. More...
 
typedef enum M2MB_SSL_AUTH_TYPE_E M2MB_SSL_AUTH_TYPE_E
 SSL authentication types enum. More...
 
typedef enum M2MB_SSL_SSL_ROLE_E M2MB_SSL_SSL_ROLE_E
 SSL object role. More...
 
typedef struct M2MB_SSL_OPEN_PARAMS M2MB_SSL_OPEN_PARAMS_T
 
typedef struct M2MB_SSL_CONFIG_VERIFY_POLICY M2MB_SSL_CONFIG_VERIFY_POLICY_T
 Structure to specify the certificate verification policy. More...
 
typedef struct M2MB_SSL_CONFIG M2MB_SSL_CONFIG_T
 Structure to configure an SSL connection. More...
 
M2MB_STATUS_T m2mb_ssl_open (HANDLE *handle, M2MB_SSL_OPEN_PARAMS_T *openParams)
 Initialize SSL TLS context. More...
 
M2MB_STATUS_T m2mb_ssl_set_cfg (HANDLE handle, M2MB_SSL_CONF_ID_E conf_id, M2MB_SSL_CONF_PARAMS_T *conf_params)
 Set SSL configuration on the previously created SSL context. More...
 
M2MB_STATUS_T m2mb_ssl_get_cfg (HANDLE handle, M2MB_SSL_CONF_ID_E conf_id, M2MB_SSL_CONF_PARAMS_T *conf_params)
 Get SSL configuration on the previously created SSL context. More...
 
M2MB_STATUS_T m2mb_ssl_close (HANDLE handle)
 deletes an m2mb SSL context created during m2mb_ssl_open() More...
 
M2MB_STATUS_T m2mb_ssl_connect (HANDLE handle, M2MB_SOCKET_BSD_SOCKET socket_fd)
 Performs SSL Client connection. More...
 
INT32 m2mb_ssl_write (HANDLE handle, void *buf, UINT32 len)
 Writes data to the SSL connection. More...
 
INT32 m2mb_ssl_read (HANDLE handle, void *buf, UINT32 len)
 Read len bytes from SSL connection into buf. More...
 
M2MB_STATUS_T m2mb_ssl_accept (M2MB_SSL_CTXT_HANDLE sslSvrContextHndl, M2MB_SOCKET_BSD_SOCKET socket_fd, M2MB_SSL_CTXT_HANDLE *sslClientCtxHndl)
 Accepts an incoming SSL connection from the client. More...
 

Detailed Description

SSL TLS support.

epl/inc/nwk/m2mb_ssl.h

SSL/TLS module provides secure connection at L4 layer.

Note
Dependencies:
"#include <m2mb_types.h>" "#include <m2mb_socket.h>" "#include <m2mb_dbg.h>"
Author
Ranjita Kumar Mahapatra
Date
15/04/2018

Definition in file m2mb_ssl.h.