mirror of
https://github.com/espressif/esp-mqtt.git
synced 2025-07-30 02:38:19 +02:00
Add mutual SSL auth config to mqtt_client
picked from master
This commit is contained in:
committed by
David Cermak
parent
52cb6980b0
commit
d2bcdd84a1
@ -83,6 +83,8 @@ typedef struct {
|
|||||||
int task_stack; /*!< MQTT task stack size, default is 6144 bytes, can be changed in ``make menuconfig`` */
|
int task_stack; /*!< MQTT task stack size, default is 6144 bytes, can be changed in ``make menuconfig`` */
|
||||||
int buffer_size; /*!< size of MQTT send/receive buffer, default is 1024 */
|
int buffer_size; /*!< size of MQTT send/receive buffer, default is 1024 */
|
||||||
const char *cert_pem; /*!< pointer to CERT file for server verify (with SSL), default is NULL, not required to verify the server */
|
const char *cert_pem; /*!< pointer to CERT file for server verify (with SSL), default is NULL, not required to verify the server */
|
||||||
|
const char *client_cert_pem; /*!< pointer to CERT file for SSL mutual authentication, default is NULL, not required if mutual authentication is not needed. If it is not NULL, also `client_key_pem` has to be provided. */
|
||||||
|
const char *client_key_pem; /*!< pointer to PEM private key file for SSL mutual authentication, default is NULL, not required if mutual authentication is not needed. If it is not NULL, also `client_cert_pem` has to be provided. */
|
||||||
esp_mqtt_transport_t transport; /*!< overrides URI transport */
|
esp_mqtt_transport_t transport; /*!< overrides URI transport */
|
||||||
} esp_mqtt_client_config_t;
|
} esp_mqtt_client_config_t;
|
||||||
|
|
||||||
|
@ -299,6 +299,12 @@ esp_mqtt_client_handle_t esp_mqtt_client_init(const esp_mqtt_client_config_t *co
|
|||||||
if (config->cert_pem) {
|
if (config->cert_pem) {
|
||||||
esp_transport_ssl_set_cert_data(ssl, config->cert_pem, strlen(config->cert_pem));
|
esp_transport_ssl_set_cert_data(ssl, config->cert_pem, strlen(config->cert_pem));
|
||||||
}
|
}
|
||||||
|
if (config->client_cert_pem) {
|
||||||
|
transport_ssl_set_client_cert_data(ssl, config->client_cert_pem, strlen(config->client_cert_pem));
|
||||||
|
}
|
||||||
|
if (config->client_key_pem) {
|
||||||
|
transport_ssl_set_client_key_data(ssl, config->client_key_pem, strlen(config->client_key_pem));
|
||||||
|
}
|
||||||
esp_transport_list_add(client->transport_list, ssl, "mqtts");
|
esp_transport_list_add(client->transport_list, ssl, "mqtts");
|
||||||
if (config->transport == MQTT_TRANSPORT_OVER_SSL) {
|
if (config->transport == MQTT_TRANSPORT_OVER_SSL) {
|
||||||
client->config->scheme = create_string("mqtts", 5);
|
client->config->scheme = create_string("mqtts", 5);
|
||||||
|
Reference in New Issue
Block a user