Skip to content

Commit 3b31484

Browse files
committed
Temporary fix
1 parent caa8d07 commit 3b31484

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

libraries/WiFiClientSecure/src/WiFiClientSecure.cpp

+23-1
Original file line numberDiff line numberDiff line change
@@ -261,21 +261,25 @@ void WiFiClientSecure::setInsecure()
261261
void WiFiClientSecure::setCACert (const char *rootCA)
262262
{
263263
_CA_cert = rootCA;
264+
_use_insecure = false;
264265
}
265266

266267
void WiFiClientSecure::setCertificate (const char *client_ca)
267268
{
268269
_cert = client_ca;
270+
_use_insecure = false;
269271
}
270272

271273
void WiFiClientSecure::setPrivateKey (const char *private_key)
272274
{
273275
_private_key = private_key;
276+
_use_insecure = false;
274277
}
275278

276279
void WiFiClientSecure::setPreSharedKey(const char *pskIdent, const char *psKey) {
277280
_pskIdent = pskIdent;
278281
_psKey = psKey;
282+
_use_insecure = false;
279283
}
280284

281285
bool WiFiClientSecure::verify(const char* fp, const char* domain_name)
@@ -300,8 +304,26 @@ char *WiFiClientSecure::_streamLoad(Stream& stream, size_t size) {
300304
return dest;
301305
}
302306

307+
bool WiFiClientSecure::_streamLoad(char **destPtr, Stream& stream, size_t size) {
308+
if (!*destPtr)
309+
*destPtr = (char*)malloc(size+1);
310+
else
311+
(char*)realloc(*destPtr, size+1);
312+
if (!*destPtr) {
313+
return false;
314+
}
315+
if (size != stream.readBytes(*destPtr, size)) {
316+
free(*destPtr);
317+
*destPtr = nullptr;
318+
return false;
319+
}
320+
(*destPtr)[size] = '\0';
321+
return true;
322+
}
323+
303324
bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) {
304-
char *dest = _streamLoad(stream, size);
325+
char *dest = _CA_cert;
326+
_streamLoad(&dest, stream, size);
305327
bool ret = false;
306328
if (dest) {
307329
setCACert(dest);

libraries/WiFiClientSecure/src/WiFiClientSecure.h

+2
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class WiFiClientSecure : public WiFiClient
7777
void setAlpnProtocols(const char **alpn_protos);
7878
const mbedtls_x509_crt* getPeerCertificate() { return mbedtls_ssl_get_peer_cert(&sslclient->ssl_ctx); };
7979
bool getFingerprintSHA256(uint8_t sha256_result[32]) { return get_peer_fingerprint(sslclient, sha256_result); };
80+
8081
int setTimeout(uint32_t seconds){ return 0; }
8182

8283
operator bool()
@@ -105,6 +106,7 @@ class WiFiClientSecure : public WiFiClient
105106

106107
private:
107108
char *_streamLoad(Stream& stream, size_t size);
109+
bool _streamLoad(char **destPtr, Stream& stream, size_t size);
108110

109111
//friend class WiFiServer;
110112
using Print::write;

0 commit comments

Comments
 (0)