diff --git a/arduino/libraries/WiFi/src/WiFiSSLClient.cpp b/arduino/libraries/WiFi/src/WiFiSSLClient.cpp index 6d65633..1e2f0a0 100644 --- a/arduino/libraries/WiFi/src/WiFiSSLClient.cpp +++ b/arduino/libraries/WiFi/src/WiFiSSLClient.cpp @@ -264,6 +264,17 @@ int WiFiSSLClient::peek() return _peek; } +void WiFiSSLClient::setCertificate(const char *client_ca) +{ + _cert = client_ca; +} + +void WiFiSSLClient:: setPrivateKey(const char *private_key) +{ + _private_key = private_key; +} + + void WiFiSSLClient::flush() { } diff --git a/arduino/libraries/WiFi/src/WiFiSSLClient.h b/arduino/libraries/WiFi/src/WiFiSSLClient.h index 965245b..ce8ed57 100644 --- a/arduino/libraries/WiFi/src/WiFiSSLClient.h +++ b/arduino/libraries/WiFi/src/WiFiSSLClient.h @@ -22,13 +22,14 @@ #include #include +#include #include #include #include +#include #include -// #include -// #include + class WiFiSSLClient /*: public Client*/ { @@ -49,6 +50,8 @@ public: virtual void stop(); virtual uint8_t connected(); virtual operator bool(); + virtual void setCertificate(const char *client_ca); + virtual void setPrivateKey (const char *private_key); // using Print::write; @@ -57,6 +60,8 @@ public: private: static const char* ROOT_CAs; + const char *_cert; // user-provided certificate + const char *_private_key; // user-provided private mbedtls_entropy_context _entropyContext; mbedtls_ctr_drbg_context _ctrDrbgContext; @@ -64,6 +69,8 @@ private: mbedtls_ssl_config _sslConfig; mbedtls_net_context _netContext; mbedtls_x509_crt _caCrt; + mbedtls_x509_crt _clientCrt; + mbedtls_pk_context _clientKey; bool _connected; int _peek;