@@ -125,6 +125,9 @@ int WiFiClientSecure::_connectSSL(const char* hostName)
125125{
126126 if (!_ssl) {
127127 _ssl = std::make_shared<SSLContext>();
128+ if (!_ssl) {
129+ return 0 ;
130+ }
128131 }
129132 _ssl->connect (_client, hostName, _timeout);
130133
@@ -170,8 +173,7 @@ size_t WiFiClientSecure::write(Stream& stream)
170173 size_t totalSent = 0 ;
171174 size_t countRead;
172175 size_t countSent;
173- if (!_ssl)
174- {
176+ if (!_ssl) {
175177 return 0 ;
176178 }
177179 do {
@@ -399,61 +401,63 @@ void WiFiClientSecure::_initSSLContext()
399401bool WiFiClientSecure::setCACert (const uint8_t * pk, size_t size)
400402{
401403 _initSSLContext ();
402- return _ssl->loadObject (SSL_OBJ_X509_CACERT, pk, size);
404+ return _ssl ? _ssl ->loadObject (SSL_OBJ_X509_CACERT, pk, size) : false ;
403405}
404406
405407bool WiFiClientSecure::setCertificate (const uint8_t * pk, size_t size)
406408{
407409 _initSSLContext ();
408- return _ssl->loadObject (SSL_OBJ_X509_CERT, pk, size);
410+ return _ssl ? _ssl ->loadObject (SSL_OBJ_X509_CERT, pk, size) : false ;
409411}
410412
411413bool WiFiClientSecure::setPrivateKey (const uint8_t * pk, size_t size)
412414{
413415 _initSSLContext ();
414- return _ssl->loadObject (SSL_OBJ_RSA_KEY, pk, size);
416+ return _ssl ? _ssl ->loadObject (SSL_OBJ_RSA_KEY, pk, size) : false ;
415417}
416418
417419bool WiFiClientSecure::setCACert_P (PGM_VOID_P pk, size_t size)
418420{
419421 _initSSLContext ();
420- return _ssl->loadObject_P (SSL_OBJ_X509_CACERT, pk, size);
422+ return _ssl ? _ssl ->loadObject_P (SSL_OBJ_X509_CACERT, pk, size) : false ;
421423}
422424
423425bool WiFiClientSecure::setCertificate_P (PGM_VOID_P pk, size_t size)
424426{
425427 _initSSLContext ();
426- return _ssl->loadObject_P (SSL_OBJ_X509_CERT, pk, size);
428+ return _ssl ? _ssl ->loadObject_P (SSL_OBJ_X509_CERT, pk, size) : false ;
427429}
428430
429431bool WiFiClientSecure::setPrivateKey_P (PGM_VOID_P pk, size_t size)
430432{
431433 _initSSLContext ();
432- return _ssl->loadObject_P (SSL_OBJ_RSA_KEY, pk, size);
434+ return _ssl ? _ssl ->loadObject_P (SSL_OBJ_RSA_KEY, pk, size) : false ;
433435}
434436
435437bool WiFiClientSecure::loadCACert (Stream& stream, size_t size)
436438{
437439 _initSSLContext ();
438- return _ssl->loadObject (SSL_OBJ_X509_CACERT, stream, size);
440+ return _ssl ? _ssl ->loadObject (SSL_OBJ_X509_CACERT, stream, size) : false ;
439441}
440442
441443bool WiFiClientSecure::loadCertificate (Stream& stream, size_t size)
442444{
443445 _initSSLContext ();
444- return _ssl->loadObject (SSL_OBJ_X509_CERT, stream, size);
446+ return _ssl ? _ssl ->loadObject (SSL_OBJ_X509_CERT, stream, size) : false ;
445447}
446448
447449bool WiFiClientSecure::loadPrivateKey (Stream& stream, size_t size)
448450{
449451 _initSSLContext ();
450- return _ssl->loadObject (SSL_OBJ_RSA_KEY, stream, size);
452+ return _ssl ? _ssl ->loadObject (SSL_OBJ_RSA_KEY, stream, size) : false ;
451453}
452454
453455void WiFiClientSecure::allowSelfSignedCerts ()
454456{
455457 _initSSLContext ();
456- _ssl->allowSelfSignedCerts ();
458+ if (_ssl) {
459+ _ssl->allowSelfSignedCerts ();
460+ }
457461}
458462
459463extern " C" int __ax_port_read (int fd, uint8_t * buffer, size_t count)
0 commit comments