diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp b/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp index 6f9fbd7a9e..8e46dca763 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp @@ -571,6 +571,14 @@ bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) return _ssl->loadObject(SSL_OBJ_X509_CACERT, stream, size); } +bool WiFiClientSecure::loadCACert(const uint8_t* pk, size_t size) +{ + if (!_ssl) { + return false; + } + return _ssl->loadObject(SSL_OBJ_X509_CACERT, pk, size); +} + bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) { if (!_ssl) { @@ -579,6 +587,14 @@ bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) return _ssl->loadObject(SSL_OBJ_X509_CERT, stream, size); } +bool WiFiClientSecure::loadCertificate(const uint8_t* pk, size_t size) +{ + if (!_ssl) { + return false; + } + return _ssl->loadObject(SSL_OBJ_X509_CERT, pk, size); +} + bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size) { if (!_ssl) { @@ -587,6 +603,14 @@ bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size) return _ssl->loadObject(SSL_OBJ_RSA_KEY, stream, size); } +bool WiFiClientSecure::loadPrivateKey(const uint8_t* pk, size_t size) +{ + if (!_ssl) { + return false; + } + return _ssl->loadObject(SSL_OBJ_RSA_KEY, pk, size); +} + extern "C" int __ax_port_read(int fd, uint8_t* buffer, size_t count) { ClientContext* _client = SSLContext::getIOContext(fd); diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecure.h b/libraries/ESP8266WiFi/src/WiFiClientSecure.h index 17fcf54293..05683591f1 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecure.h +++ b/libraries/ESP8266WiFi/src/WiFiClientSecure.h @@ -54,8 +54,11 @@ class WiFiClientSecure : public WiFiClient { void setPrivateKey(const uint8_t* pk, size_t size); bool loadCertificate(Stream& stream, size_t size); + bool loadCertificate(const uint8_t* pk, size_t size); bool loadPrivateKey(Stream& stream, size_t size); + bool loadPrivateKey(const uint8_t* pk, size_t size); bool loadCACert(Stream& stream, size_t size); + bool loadCACert(const uint8_t* pk, size_t size); template bool loadCertificate(TFile& file) {