WE310F5  39.00.000
m2mb_ssl.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
28 /* Global declarations ==========================================================================*/
29 #ifndef M2MB_SSL_H_
30 #define M2MB_SSL_H_
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 
93 /*-----------------------------------------------------------------------------------------------*/
94 
99 /*-----------------------------------------------------------------------------------------------*/
100 
101 #define M2MB_SSL_INVALID_HANDLE (0)
102 #define M2MB_SSL_MAX_CIPHER_COUNT 54
103 #define M2MB_SSL_MAX_CERT_NAME_LEN 64
104 #define M2MB_SSL_MAX_SNI_NAME_LEN (64)
105 #define M2MB_SSL_CIPHER_MAX 0x003FFFFFFFFFFFFF
106 #define M2MB_MAX_CERTS 10
107 #define M2MB_SSL_MAX_CA_LIST 10
116 typedef enum M2MB_SSL_PROTOCOL_VERSION_E
117 {
125 
126 typedef enum M2MB_SSL_CONF_ID
127 {
144 
145 typedef union M2MB_SSL_CONF_PARAMS{
161 /* Global typedefs ==============================================================================*/
162 
166 
167 
170 {
227 
228 
231 {
236 
239 {
243 
244 typedef struct M2MB_SSL_OPEN_PARAMS
245 {
248 
249 
252 {
268 
269 
271 typedef struct M2MB_SSL_CONFIG
272 {
280 
294  uint8_t sni_enabled;
295 
296 
299 
300 
301 
302 
303 /* Global functions =============================================================================*/
304 /* ======================================================================= */
305 
306 
307 /*-----------------------------------------------------------------------------------------------*/
308 
348 /*-----------------------------------------------------------------------------------------------*/
349 
351 
352 
353 /*-----------------------------------------------------------------------------------------------*/
432 /*-----------------------------------------------------------------------------------------------*/
434 
435 /*-----------------------------------------------------------------------------------------------*/
489 /*-----------------------------------------------------------------------------------------------*/
491  M2MB_SSL_CONF_PARAMS_T * conf_params );
492 
493 /*-----------------------------------------------------------------------------------------------*/
494 
535 /*-----------------------------------------------------------------------------------------------*/
536 
538 
539 /*-----------------------------------------------------------------------------------------------*/
540 
606 /*-----------------------------------------------------------------------------------------------*/
608 
609 
682 /*-----------------------------------------------------------------------------------------------*/
683 INT32 m2mb_ssl_write( HANDLE handle, void *buf, UINT32 len );
684 
758 /*-----------------------------------------------------------------------------------------------*/
759 INT32 m2mb_ssl_read( HANDLE handle, void *buf, UINT32 len );
760 
761 /*-----------------------------------------------------------------------------------------------*/
762 
763 
764 
842  /*-----------------------------------------------------------------------------------------------*/
843 
845  m2mb_ssl_accept( M2MB_SSL_CTXT_HANDLE sslSvrContextHndl, M2MB_SOCKET_BSD_SOCKET socket_fd,
846  M2MB_SSL_CTXT_HANDLE* sslClientCtxHndl);
847 
851 /*-----------------------------------------------------------------------------------------------*/
852 
853 #ifdef __cplusplus
854 }
855 #endif
856 #endif
857 
M2MB_SSL_CIPHER_SUITE_E
TLS ciphersuites enum.
Definition: m2mb_ssl.h:169
M2MB_SSL_CONF_ID
Definition: m2mb_ssl.h:126
UINT8 send_Alert
Definition: m2mb_ssl.h:289
M2MB_SSL_CIPHER_SUITE_E CipherSuites[M2MB_SSL_MAX_CIPHER_COUNT]
Definition: m2mb_ssl.h:276
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.
unsigned char UINT8
Definition: m2mb_types.h:86
M2MB_SSL_PROTOCOL_VERSION_E
SSL protocol SET Configuration enumeration.
Definition: m2mb_ssl.h:116
M2MB_SSL_SSL_ROLE_E
SSL object role.
Definition: m2mb_ssl.h:238
enum M2MB_SSL_CONF_ID M2MB_SSL_CONF_ID_E
M2MB_SSL_AUTH_TYPE_E
SSL authentication types enum.
Definition: m2mb_ssl.h:230
#define M2MB_SSL_MAX_CERT_NAME_LEN
Definition: m2mb_ssl.h:103
M2MB_SSL_SSL_ROLE_E role
Definition: m2mb_ssl.h:246
INT32 M2MB_STATUS_T
Definition: m2mb_status.h:97
M2MB_SSL_AUTH_TYPE_E authType
Definition: m2mb_ssl.h:266
unsigned short UINT16
Definition: m2mb_types.h:87
INT32 m2mb_ssl_read(HANDLE handle, void *buf, UINT32 len)
Read len bytes from SSL connection into buf.
M2MB_STATUS_T m2mb_ssl_close(HANDLE handle)
deletes an m2mb SSL context created during m2mb_ssl_open()
M2MB_STATUS_T m2mb_ssl_connect(HANDLE handle, M2MB_SOCKET_BSD_SOCKET socket_fd)
Performs SSL Client connection.
M2MB_SSL_PROTOCOL_VERSION_E ProtVers
Definition: m2mb_ssl.h:273
struct M2MB_SSL_OPEN_PARAMS M2MB_SSL_OPEN_PARAMS_T
struct M2MB_SSL_CONFIG_VERIFY_POLICY M2MB_SSL_CONFIG_VERIFY_POLICY_T
Structure to specify the certificate verification policy.
M2MB_SSL_PROTOCOL_VERSION_E protocol
Definition: m2mb_ssl.h:146
struct M2MB_SSL_CONFIG M2MB_SSL_CONFIG_T
Structure to configure an SSL connection.
#define M2MB_SSL_MAX_SNI_NAME_LEN
Definition: m2mb_ssl.h:104
UINT8 CipherSuitesNum
Definition: m2mb_ssl.h:279
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.
INT32 m2mb_ssl_write(HANDLE handle, void *buf, UINT32 len)
Writes data to the SSL connection.
UINT16 max_frag_len_tx
Definition: m2mb_ssl.h:283
Structure to configure an SSL connection.
Definition: m2mb_ssl.h:271
M2MB_STATUS_T m2mb_ssl_open(HANDLE *handle, M2MB_SSL_OPEN_PARAMS_T *openParams)
Initialize SSL TLS context.
UINT8 match_Name[M2MB_SSL_MAX_CERT_NAME_LEN]
Definition: m2mb_ssl.h:262
#define M2MB_SSL_MAX_CIPHER_COUNT
Definition: m2mb_ssl.h:102
unsigned long int UINT32
Definition: m2mb_types.h:88
signed int INT32
Definition: m2mb_types.h:82
UINT16 max_frag_len
Definition: m2mb_ssl.h:281
HANDLE M2MB_SSL_CTXT_HANDLE
SSL context handle. This is obtained from m2mb_ssl_open API and then used in subsequent SSL APIs...
Definition: m2mb_ssl.h:165
UINT8 sni_name[M2MB_SSL_MAX_SNI_NAME_LEN]
Definition: m2mb_ssl.h:292
Structure to specify the certificate verification policy.
Definition: m2mb_ssl.h:251
void * HANDLE
Definition: m2mb_types.h:98
unsigned long long UINT64
Definition: m2mb_types.h:90
iHANDLE M2MB_SOCKET_BSD_SOCKET
Definition: m2mb_socket.h:267
M2MB_SSL_CONFIG_VERIFY_POLICY_T policy
Definition: m2mb_ssl.h:297
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.
uint8_t sni_enabled
Definition: m2mb_ssl.h:294
union M2MB_SSL_CONF_PARAMS M2MB_SSL_CONF_PARAMS_T
UINT16 max_frag_len_neg_disable
Definition: m2mb_ssl.h:286