|
struct | M2MB_SSL_PSK_TABLE_T |
| PSK table structure. Structure to hold a preshared key (PSK) used to populate the PSK table. The PSK table is used by TLS PSK cipher suites. More...
|
|
struct | M2MB_SSL_CERT_T |
| SSL certificate information for conversion and storage. More...
|
|
struct | M2MB_SSL_CA_INFO_T |
| SSL certificate authority list information. More...
|
|
struct | M2MB_SSL_CA_LIST_T |
| SSL certificate authority information for conversion and storage. More...
|
|
struct | M2MB_SSL_CERT_LIST_T |
| SSL Cert list structure. More...
|
|
union | M2MB_SSL_SEC_INFO_U |
| SSL Certificate information union. More...
|
|
struct | M2MB_SSL_CONFIG_VERIFY_POLICY_T |
| Structure to specify the certificate verification policy. More...
|
|
struct | M2MB_SSL_CONFIG_MORE_T |
| Additional SSL configurations structure. More...
|
|
struct | M2MB_SSL_CONFIG_T |
| Structure to configure an SSL connection. More...
|
|
#define | M2MB_SSL_FAILURE -1 |
|
#define | M2MB_SSL_ARG_FAIL -6 |
|
#define | M2MB_SSL_PLATFORM_FAIL -7 |
|
#define | M2MB_SSL_MEM_FAIL -8 |
|
#define | M2MB_SSL_LIMIT_FAIL -9 |
|
#define | M2MB_SSL_UNSUPPORTED_FAIL -10 |
|
#define | M2MB_SSL_PROTOCOL_FAIL -12 |
|
#define | M2MB_SSL_TIMEOUT_FAIL -13 |
|
#define | M2MB_SSL_INTERRUPT_FAIL -14 |
|
#define | M2MB_SSL_WRITE_ERROR -15 |
|
#define | M2MB_SSL_READ_ERROR -16 |
|
#define | M2MB_SSL_END_OF_FILE -17 |
|
#define | M2MB_SSL_CLOSE_NOTIFY -18 |
|
#define | M2MB_SSL_CERT_AUTH_FAIL -35 |
|
#define | M2MB_SSL_FULL -50 |
|
#define | M2MB_SSL_ALERT -54 |
|
#define | M2MB_SSL_FILE_NOT_FOUND -55 |
|
#define | M2MB_SSL_FALSE 0 |
|
#define | M2MB__SSL_TRUE 1 |
|
#define | M2MB_SSL_MAX_CA_LIST 10 |
|
#define | M2MB_SSL_INVALID_HANDLE (0) |
|
#define | M2MB_SSL_MAX_CIPHER_COUNT 64 |
|
#define | M2MB_SSL_MAX_CERT_NAME_LEN 64 |
|
#define | M2MB_SSL_MAX_SNI_NAME_LEN (64) |
|
enum | SSL_CFG_PARAM {
M2MB_SSL_CONF_INVALID = 0,
M2MB_SSL_CONF_PROTOCOL,
M2MB_SSL_CONF_CACERT,
M2MB_SSL_CONF_CERT,
M2MB_SSL_CONF_CIPHER,
M2MB_SSL_CONF_TIME,
M2MB_SSL_CONF_ALERT,
M2MB_SSL_CONF_DOMAIN,
M2MB_SSL_CONF_MAX_FRAG_LEN,
M2MB_SSL_CONF_NEG_DISABLE,
M2MB_SSL_CONF_SNI,
M2MB_SSL_CONF_ALPN
} |
|
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
} |
| TLS protocol version enum. More...
|
|
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_CERT_TYPE_E {
M2MB_SSL_CACERT,
M2MB_SSL_CERT,
M2MB_SSL_PRIVKEY,
M2MB_SSL_PSKTABLE,
M2MB_SSL_CERTALL
} |
| SSL certificate type enum. More...
|
|
enum | M2MB_SSL_PEMCERT_TYPE_E {
M2MB_SSL_PEM_CERT,
M2MB_SSL_PEM_PKCS1_PRIVKEY,
M2MB_SSL_PEM_PKCS8_PRIVKEY,
M2MB_SSL_PEM_PKCS8_ENC_PRIVKEY,
M2MB_SSL_PEM_EC_PRIVKEY
} |
| SSL certificate type enum. More...
|
|
enum | M2MB_SSL_CERT_FMT_E {
M2MB_SSL_DER,
M2MB_SSL_PEM
} |
| SSL certificate format enum. More...
|
|
enum | M2MB_SSL_UPPROTO_TYPE {
M2MB_SSL_CLIENT,
M2MB_SSL_HTTPC,
M2MB_SSL_HTTPD,
M2MB_SSL_MQTT,
M2MB_SSL_WEBSOCKET
} |
|
enum | M2MB_SSL_AUTH_TYPE_E {
M2MB_SSL_NO_AUTH,
M2MB_SSL_SERVER_AUTH,
M2MB_SSL_SERVER_CLIENT_AUTH
} |
| 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 SSL_CFG_PARAM | SSL_CFG_PARAM_E |
|
typedef HANDLE | M2MB_SSL_CTXT_HANDLE |
| SSL context handle.
This is obtained from m2mb_ssl_create_ctxt API and then used in subsequent SSL APIs. More...
|
|
typedef enum M2MB_SSL_PROTOCOL_VERSION_E | M2MB_SSL_PROTOCOL_VERSION_E |
| TLS protocol version enum. More...
|
|
typedef enum M2MB_SSL_CIPHER_SUITE_E | M2MB_SSL_CIPHER_SUITE_E |
| TLS ciphersuites enum. More...
|
|
typedef enum M2MB_SSL_CERT_TYPE_E | M2MB_SSL_CERT_TYPE_E |
| SSL certificate type enum. More...
|
|
typedef enum M2MB_SSL_PEMCERT_TYPE_E | M2MB_SSL_PEMCERT_TYPE_E |
| SSL certificate type enum. More...
|
|
typedef enum M2MB_SSL_CERT_FMT_E | M2MB_SSL_CERT_FMT_E |
| SSL certificate format enum. More...
|
|
typedef enum M2MB_SSL_UPPROTO_TYPE | M2MB_SSL_UPPROTO_TYPE_E |
|
typedef struct M2MB_SSL_PSK_TABLE_T | M2MB_SSL_PSK_TABLE_T |
| PSK table structure. Structure to hold a preshared key (PSK) used to populate the PSK table. The PSK table is used by TLS PSK cipher suites. More...
|
|
typedef struct M2MB_SSL_CERT_T | M2MB_SSL_CERT_T |
| SSL certificate information for conversion and storage. More...
|
|
typedef struct M2MB_SSL_CA_INFO_T | M2MB_SSL_CA_INFO_T |
| SSL certificate authority list information. More...
|
|
typedef struct M2MB_SSL_CA_LIST_T | M2MB_SSL_CA_LIST_T |
| SSL certificate authority information for conversion and storage. More...
|
|
typedef struct M2MB_SSL_CERT_LIST_T | M2MB_SSL_CERT_LIST_T |
| SSL Cert list structure. 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_CONFIG_T | M2MB_SSL_CONFIG_T |
| Structure to configure an SSL connection. More...
|
|
M2MB_SSL_CTXT_HANDLE | m2mb_ssl_init (M2MB_SSL_SSL_ROLE_E role) |
| Initialize SSL TLS context. More...
|
|
INT32 | m2mb_ssl_set_config (M2MB_SSL_CTXT_HANDLE sslContextHndl, SSL_CFG_PARAM_E CONF_ID, INT8 *CONF_VAL) |
| Set SSL configuration on the previously created SSL context. More...
|
|
void | m2mb_ssl_close (M2MB_SSL_CTXT_HANDLE sslContextHndl) |
| deletes an m2mb SSL context created during m2mb_ssl_init() More...
|
|
INT32 | m2mb_ssl_secure_protocol (M2MB_SSL_CTXT_HANDLE sslContextHndl, M2MB_SSL_UPPROTO_TYPE_E protoType, VOID *protoCtxHndl) |
| Configures the SSL security on the given protocol connection. More...
|
|
INT32 | m2mb_ssl_connect (M2MB_SSL_CTXT_HANDLE sslContextHndl, M2MB_SOCKET_BSD_SOCKET socket_fd) |
| Performs SSL Client connection. More...
|
|
INT32 | m2mb_ssl_write (M2MB_SSL_CTXT_HANDLE sslContextHndl, void *buf, UINT32 len) |
| Writes data to the SSL connection. More...
|
|
INT32 | m2mb_ssl_read (M2MB_SSL_CTXT_HANDLE sslContextHndl, void *buf, UINT32 len) |
| Read len bytes from SSL connection into buf. More...
|
|
INT32 | m2mb_ssl_cert_store (M2MB_SSL_CERT_TYPE_E sslCertType, M2MB_SSL_SEC_INFO_U sslSecInfo, CHAR *name, M2MB_SSL_CERT_FMT_E format) |
| Store certificates from buffer. More...
|
|
INT32 | m2mb_ssl_cert_load (M2MB_SSL_CTXT_HANDLE sslCtxtHndl, M2MB_SSL_CERT_TYPE_E sslCertType, CHAR *name) |
| Load certificates in the SSL context. More...
|
|
UINT8 | m2mb_ssl_get_certloadStatus (M2MB_SSL_CTXT_HANDLE sslCtxtHndl, M2MB_SSL_CERT_TYPE_E sslCertType) |
| Check if the certificate is loaded in the SSL context. More...
|
|
INT32 | m2mb_ssl_cert_delete (M2MB_SSL_CERT_TYPE_E sslCertType, CHAR *name) |
| Delete certificates. More...
|
|
INT32 | m2mb_ssl_status (M2MB_SSL_CTXT_HANDLE sslContextHndl) |
| Returns the status of an SSL connection. More...
|
|
INT32 | 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...
|
|
INT32 | m2mb_ssl_cert_get (M2MB_SSL_CERT_TYPE_E sslCertType, M2MB_SSL_CERT_LIST_T *sslCertList) |
| It gets the list of the certificates stored. More...
|
|
UINT32 | m2mb_ssl_get_internal_ssl_obj (M2MB_SSL_CTXT_HANDLE sslContextHndl) |
| It get the list of certificates stored. More...
|
|
INT32 | m2mb_ssl_cert_search (M2MB_SSL_CERT_TYPE_E sslCertType, CHAR *certName) |
| Search for the given certificate in the system. More...
|
|
SSL TLS support.
we866e4/epl/inc/nwk/m2mb_ssl.h
SSL TLS secure socket APIs
- Note
- Dependencies:
"#include <m2mb_types.h>"
"#include <m2mb_socket.h>"
"#include <m2mb_trace.h>"
- Author
- Oshin Bhatia
- Date
- 15/04/2018
Definition in file m2mb_ssl.h.