4
4
ESPWebServerSecure::ESPWebServerSecure (IPAddress addr, int port)
5
5
: ESPWebServer(new httpsserver::HTTPSServer(&_sslCert, port, 4 , addr)),
6
6
_underlyingServer(this ),
7
- _sslCert()
7
+ _sslCert(),
8
+ keyStore(NULL ),
9
+ certStore(NULL )
8
10
{}
9
11
10
12
ESPWebServerSecure::ESPWebServerSecure (int port)
@@ -14,8 +16,18 @@ ESPWebServerSecure::ESPWebServerSecure(int port)
14
16
{}
15
17
16
18
void ESPWebServerSecure::setServerKeyAndCert (const uint8_t *key, int keyLen, const uint8_t *cert, int certLen) {
17
- _sslCert.setPK ((unsigned char *)key, keyLen);
18
- _sslCert.setCert ((unsigned char *)cert, certLen);
19
+ if (keyStore) free (keyStore);
20
+ if (certStore) free (certStore);
21
+ keyStore = (uint8_t *)malloc (keyLen);
22
+ certStore = (uint8_t *)malloc (certLen);
23
+ if (keyStore == NULL || certStore == NULL ) {
24
+ HTTPS_LOGE (" Out of memory for key and cert" );
25
+ return ;
26
+ }
27
+ memcpy_P (keyStore, key, keyLen);
28
+ memcpy_P (certStore, cert, certLen);
29
+ _sslCert.setPK (keyStore, keyLen);
30
+ _sslCert.setCert (certStore, certLen);
19
31
}
20
32
21
33
void ESPWebServerSecure::setServerKeyAndCert_P (const uint8_t *key, int keyLen, const uint8_t *cert, int certLen) {
0 commit comments