lwIP 2.2.0
Lightweight IP stack
|
Functions | |
struct altcp_tls_config * | altcp_tls_create_config_server (u8_t cert_count) |
err_t | altcp_tls_config_server_add_privkey_cert (struct altcp_tls_config *config, const u8_t *privkey, size_t privkey_len, const u8_t *privkey_pass, size_t privkey_pass_len, const u8_t *cert, size_t cert_len) |
struct altcp_tls_config * | altcp_tls_create_config_server_privkey_cert (const u8_t *privkey, size_t privkey_len, const u8_t *privkey_pass, size_t privkey_pass_len, const u8_t *cert, size_t cert_len) |
struct altcp_tls_config * | altcp_tls_create_config_client (const u8_t *cert, size_t cert_len) |
struct altcp_tls_config * | altcp_tls_create_config_client_2wayauth (const u8_t *ca, size_t ca_len, const u8_t *privkey, size_t privkey_len, const u8_t *privkey_pass, size_t privkey_pass_len, const u8_t *cert, size_t cert_len) |
int | altcp_tls_configure_alpn_protocols (struct altcp_tls_config *conf, const char **protos) |
void | altcp_tls_free_config (struct altcp_tls_config *conf) |
void | altcp_tls_free_entropy (void) |
struct altcp_pcb * | altcp_tls_wrap (struct altcp_tls_config *config, struct altcp_pcb *inner_pcb) |
struct altcp_pcb * | altcp_tls_new (struct altcp_tls_config *config, u8_t ip_type) |
struct altcp_pcb * | altcp_tls_alloc (void *arg, u8_t ip_type) |
void * | altcp_tls_context (struct altcp_pcb *conn) |
void | altcp_tls_init_session (struct altcp_tls_session *dest) |
err_t | altcp_tls_get_session (struct altcp_pcb *conn, struct altcp_tls_session *dest) |
err_t | altcp_tls_set_session (struct altcp_pcb *conn, struct altcp_tls_session *from) |
void | altcp_tls_free_session (struct altcp_tls_session *dest) |
This file contains function prototypes for a TLS layer. A port to ARM mbedtls is provided in the apps/ tree (LWIP_ALTCP_TLS_MBEDTLS option).
struct altcp_pcb * altcp_tls_alloc | ( | void * | arg, |
u8_t | ip_type | ||
) |
Create new ALTCP_TLS layer pcb and its inner tcp pcb. Same as altcp_tls_new but this allocator function fits to altcp_allocator_t / altcp_new.
'arg' must contain a struct altcp_tls_config *.
This standard allocator function creates an altcp pcb for TLS over TCP
err_t altcp_tls_config_server_add_privkey_cert | ( | struct altcp_tls_config * | config, |
const u8_t * | privkey, | ||
size_t | privkey_len, | ||
const u8_t * | privkey_pass, | ||
size_t | privkey_pass_len, | ||
const u8_t * | cert, | ||
size_t | cert_len | ||
) |
Add a certificate to an ALTCP_TLS server configuration handle
int altcp_tls_configure_alpn_protocols | ( | struct altcp_tls_config * | conf, |
const char ** | protos | ||
) |
Configure ALPN TLS extension Example:
static const char *g_alpn_protocols[] = { "x-amzn-mqtt-ca", NULL };
tls_config = altcp_tls_create_config_client(ca, ca_len);
altcp_tls_conf_alpn_protocols(tls_config, g_alpn_protocols);
void * altcp_tls_context | ( | struct altcp_pcb * | conn | ) |
Return pointer to internal TLS context so application can tweak it. Real type depends on port (e.g. mbedtls)
struct altcp_tls_config * altcp_tls_create_config_client | ( | const u8_t * | cert, |
size_t | cert_len | ||
) |
Create an ALTCP_TLS client configuration handle
struct altcp_tls_config * altcp_tls_create_config_client_2wayauth | ( | const u8_t * | ca, |
size_t | ca_len, | ||
const u8_t * | privkey, | ||
size_t | privkey_len, | ||
const u8_t * | privkey_pass, | ||
size_t | privkey_pass_len, | ||
const u8_t * | cert, | ||
size_t | cert_len | ||
) |
Create an ALTCP_TLS client configuration handle with two-way server/client authentication
struct altcp_tls_config * altcp_tls_create_config_server | ( | u8_t | cert_count | ) |
Create an ALTCP_TLS server configuration handle prepared for multiple certificates
struct altcp_tls_config * altcp_tls_create_config_server_privkey_cert | ( | const u8_t * | privkey, |
size_t | privkey_len, | ||
const u8_t * | privkey_pass, | ||
size_t | privkey_pass_len, | ||
const u8_t * | cert, | ||
size_t | cert_len | ||
) |
Create an ALTCP_TLS server configuration handle with one certificate (short version of calling altcp_tls_create_config_server and altcp_tls_config_server_add_privkey_cert)
void altcp_tls_free_config | ( | struct altcp_tls_config * | conf | ) |
Free an ALTCP_TLS configuration handle
void altcp_tls_free_entropy | ( | void | ) |
Free an ALTCP_TLS global entropy instance. All ALTCP_TLS configuration are linked to one altcp_tls_entropy_rng structure that handle an unique system entropy & ctr_drbg instance. This function allow application to free this altcp_tls_entropy_rng structure when all configuration referencing it were destroyed. This function does nothing if some ALTCP_TLS configuration handle are still active.
void altcp_tls_free_session | ( | struct altcp_tls_session * | dest | ) |
Free allocated data inside a TLS session buffer. Real type depends on port (e.g. mbedtls use mbedtls_ssl_session)
err_t altcp_tls_get_session | ( | struct altcp_pcb * | conn, |
struct altcp_tls_session * | dest | ||
) |
Save current connected session to reuse it later. Should be called after altcp_connect() succeeded. Return error if saving session fail. Real type depends on port (e.g. mbedtls use mbedtls_ssl_session)
void altcp_tls_init_session | ( | struct altcp_tls_session * | dest | ) |
Initialise a TLS session buffer. Real type depends on port (e.g. mbedtls use mbedtls_ssl_session)
struct altcp_pcb * altcp_tls_new | ( | struct altcp_tls_config * | config, |
u8_t | ip_type | ||
) |
Create new ALTCP_TLS pcb and its inner tcp pcb
This standard allocator function creates an altcp pcb for TLS over TCP
err_t altcp_tls_set_session | ( | struct altcp_pcb * | conn, |
struct altcp_tls_session * | from | ||
) |
Restore a previously saved session. Must be called before altcp_connect(). Return error if cannot restore session. Real type depends on port (e.g. mbedtls use mbedtls_ssl_session)
struct altcp_pcb * altcp_tls_wrap | ( | struct altcp_tls_config * | config, |
struct altcp_pcb * | inner_pcb | ||
) |
Create new ALTCP_TLS layer wrapping an existing pcb as inner connection (e.g. TLS over TCP)