]> granicus.if.org Git - esp-idf/commitdiff
esp_http_client: Add support for mutual authentication
authorAnders Kalør <anders@kaloer.com>
Sat, 10 Nov 2018 22:51:05 +0000 (23:51 +0100)
committerMahavir Jain <mahavir@espressif.com>
Wed, 23 Jan 2019 11:17:23 +0000 (16:47 +0530)
Closes https://github.com/espressif/esp-idf/pull/2688

components/esp_http_client/esp_http_client.c
components/esp_http_client/include/esp_http_client.h

index c7a613bca93a9b3dcf60471e5def753e1506de81..6e55c9bf495ec26ee055b9e70ad632d7f927b438 100644 (file)
@@ -490,6 +490,14 @@ esp_http_client_handle_t esp_http_client_init(const esp_http_client_config_t *co
     if (config->cert_pem) {
         esp_transport_ssl_set_cert_data(ssl, config->cert_pem, strlen(config->cert_pem));
     }
+
+    if (config->client_cert_pem) {
+        esp_transport_ssl_set_client_cert_data(ssl, config->client_cert_pem, strlen(config->client_cert_pem));
+    }
+
+    if (config->client_key_pem) {
+        esp_transport_ssl_set_client_key_data(ssl, config->client_key_pem, strlen(config->client_key_pem));
+    }
 #endif
 
     if (_set_config(client, config) != ESP_OK) {
index 4e940a6d10a771fd8e6abea74300ccc91032add2..77e9d85208564dba2a3bb3d5956473726926c1b4 100644 (file)
@@ -105,7 +105,9 @@ typedef struct {
     esp_http_client_auth_type_t auth_type;           /*!< Http authentication type, see `esp_http_client_auth_type_t` */
     const char                  *path;               /*!< HTTP Path, if not set, default is `/` */
     const char                  *query;              /*!< HTTP query */
-    const char                  *cert_pem;           /*!< SSL Certification, PEM format as string, if the client requires to verify server */
+    const char                  *cert_pem;           /*!< SSL server certification, PEM format as string, if the client requires to verify server */
+    const char                  *client_cert_pem;    /*!< SSL client certification, PEM format as string, if the server requires to verify client */
+    const char                  *client_key_pem;     /*!< SSL client key, PEM format as string, if the server requires to verify client */
     esp_http_client_method_t    method;                   /*!< HTTP Method */
     int                         timeout_ms;               /*!< Network timeout in milliseconds */
     bool                        disable_auto_redirect;    /*!< Disable HTTP automatic redirects */