add printing for final deallocation()
This commit is contained in:
@@ -56,6 +56,28 @@ int WiFiSSLClient::connect(const char* host, uint16_t port)
|
|||||||
{
|
{
|
||||||
ets_printf("** Connect Called");
|
ets_printf("** Connect Called");
|
||||||
|
|
||||||
|
// Hardcode CERT
|
||||||
|
const char AWS_CERT_CRT[] = "-----BEGIN CERTIFICATE-----\n" \
|
||||||
|
"MIIDWTCCAkGgAwIBAgIUHi7YIHwvdKnUKTKE4MzqaVvVW7QwDQYJKoZIhvcNAQEL\n" \
|
||||||
|
"BQAwTTFLMEkGA1UECwxCQW1hem9uIFdlYiBTZXJ2aWNlcyBPPUFtYXpvbi5jb20g\n" \
|
||||||
|
"SW5jLiBMPVNlYXR0bGUgU1Q9V2FzaGluZ3RvbiBDPVVTMB4XDTE5MDkyNTE2NDA1\n" \
|
||||||
|
"NVoXDTQ5MTIzMTIzNTk1OVowHjEcMBoGA1UEAwwTQVdTIElvVCBDZXJ0aWZpY2F0\n" \
|
||||||
|
"ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMygEW9cO1ZXQY4Fo3PY\n" \
|
||||||
|
"vBGV6WHwJYKIOd5iTZ4MQmkYNqn9q2YnuXEwYJ+sw6QxSYyZ9O8yniZfviggJ2Dg\n" \
|
||||||
|
"GdTGKIbSK7B/C3w6cLnwPNsKbA2xsxnQU3yoQ99noaue4kG+WL7a5SHJHwzcFpT4\n" \
|
||||||
|
"tVffsUlFtI9fTyGg75+0X4OJiKtzPhpVrCDesKDl0wLewqqgfxasgXWk3bLGCcBy\n" \
|
||||||
|
"7YPEM2x0lp6644xz0jkJ/3KO09+AuFG54K+zv7UZOi4Tph8eiKnI2/2sM58yC233\n" \
|
||||||
|
"pCnB8gtxCegvJJ1ByM5SR3Zw5C1hq6cgN5ePv1fQ7QqOnIHygc0gDp8/nw5gnH8P\n" \
|
||||||
|
"3LcCAwEAAaNgMF4wHwYDVR0jBBgwFoAU1YI5dEJDKJgyKP6e/lSezmki1tUwHQYD\n" \
|
||||||
|
"VR0OBBYEFDTH23PCBu1Pw4xdOR3rY3Pcueh4MAwGA1UdEwEB/wQCMAAwDgYDVR0P\n" \
|
||||||
|
"AQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IBAQA1p78t3Tk+6V5h0SlokRaC5bVm\n" \
|
||||||
|
"RoXwXRmmCsZJlwvIG25buBdUAWC/2odreV4anM9HmRnECxZMIV7Q0NiuVcl3Kiok\n" \
|
||||||
|
"xtWsdsCyZkH0OMcBuiTEu+o3osTtxAp8dkzcBlh768htDXZCsAzRjFTwtZ78BqFk\n" \
|
||||||
|
"rzduv1FDtpbxoD95X8B3MOc+ZrsZ5TTA+dpepeid6K3jmG9LPmFnahCkK31Hp5dv\n" \
|
||||||
|
"WKKDKZn51PvOVAvti1QeAYcFabgeXFWb8OuCJcqWEKFJuvQRvKrpyLfpSR4NNq7M\n" \
|
||||||
|
"nM12jsbhjrGYVCmQjczqOMqF+LMnXYUSY+o6gsBCM5XRAwOLY4S7Gv53K4+l\n" \
|
||||||
|
"-----END CERTIFICATE-----\n";
|
||||||
|
|
||||||
const char AWS_CERT_PRIVATE[] =
|
const char AWS_CERT_PRIVATE[] =
|
||||||
"-----BEGIN RSA PRIVATE KEY-----\n" \
|
"-----BEGIN RSA PRIVATE KEY-----\n" \
|
||||||
"MIIEowIBAAKCAQEAzKARb1w7VldBjgWjc9i8EZXpYfAlgog53mJNngxCaRg2qf2r\n" \
|
"MIIEowIBAAKCAQEAzKARb1w7VldBjgWjc9i8EZXpYfAlgog53mJNngxCaRg2qf2r\n" \
|
||||||
@@ -85,7 +107,7 @@ int WiFiSSLClient::connect(const char* host, uint16_t port)
|
|||||||
"8cD8F7nkbodpQNEXKEEWLTkMq0UQH813Fe2mltgrHPJ94YYIwfK6\n" \
|
"8cD8F7nkbodpQNEXKEEWLTkMq0UQH813Fe2mltgrHPJ94YYIwfK6\n" \
|
||||||
"-----END RSA PRIVATE KEY-----\n";
|
"-----END RSA PRIVATE KEY-----\n";
|
||||||
|
|
||||||
//_cert = AWS_CERT_CRT;
|
_cert = AWS_CERT_CRT;
|
||||||
_private_key = AWS_CERT_PRIVATE;
|
_private_key = AWS_CERT_PRIVATE;
|
||||||
|
|
||||||
return connect(host, port, _cert, _private_key);
|
return connect(host, port, _cert, _private_key);
|
||||||
@@ -145,6 +167,7 @@ int WiFiSSLClient::connect(const char* host, uint16_t port, const char* client_c
|
|||||||
mbedtls_x509_crt_init(&_caCrt);
|
mbedtls_x509_crt_init(&_caCrt);
|
||||||
mbedtls_ssl_conf_authmode(&_sslConfig, MBEDTLS_SSL_VERIFY_REQUIRED);
|
mbedtls_ssl_conf_authmode(&_sslConfig, MBEDTLS_SSL_VERIFY_REQUIRED);
|
||||||
|
|
||||||
|
ets_printf("\n***Free internal heap before certs_data %u\n", heap_caps_get_free_size(MALLOC_CAP_8BIT));
|
||||||
// setting up CA certificates from partition
|
// setting up CA certificates from partition
|
||||||
spi_flash_mmap_handle_t handle;
|
spi_flash_mmap_handle_t handle;
|
||||||
const unsigned char* certs_data = {};
|
const unsigned char* certs_data = {};
|
||||||
@@ -163,6 +186,7 @@ int WiFiSSLClient::connect(const char* host, uint16_t port, const char* client_c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ets_printf("Length of certs_data: %d", strlen((char*)certs_data)+1);
|
||||||
ets_printf("*** connect crt parse\n");
|
ets_printf("*** connect crt parse\n");
|
||||||
ret = mbedtls_x509_crt_parse(&_caCrt, certs_data, strlen((char*)certs_data) + 1);
|
ret = mbedtls_x509_crt_parse(&_caCrt, certs_data, strlen((char*)certs_data) + 1);
|
||||||
ets_printf("*** connect conf ca chain\n");
|
ets_printf("*** connect conf ca chain\n");
|
||||||
@@ -171,23 +195,24 @@ int WiFiSSLClient::connect(const char* host, uint16_t port, const char* client_c
|
|||||||
stop();
|
stop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
ets_printf("\n***Free internal heap after certs_data %u\n", heap_caps_get_free_size(MALLOC_CAP_8BIT));
|
||||||
|
|
||||||
ets_printf("*** check for client_cert and client_key\n");
|
ets_printf("*** check for client_cert and client_key\n");
|
||||||
if (client_cert != NULL && client_key != NULL) {
|
if (client_cert != NULL && client_key != NULL) {
|
||||||
mbedtls_x509_crt_init(&_clientCrt);
|
mbedtls_x509_crt_init(&_clientCrt);
|
||||||
mbedtls_pk_init(&_clientKey);
|
mbedtls_pk_init(&_clientKey);
|
||||||
|
|
||||||
ets_printf("Loading client certificate.");
|
ets_printf("*** Loading client certificate.");
|
||||||
// note: +1 added for line ending
|
// note: +1 added for line ending
|
||||||
ret = mbedtls_x509_crt_parse(&_clientCrt, (const unsigned char *)client_cert, strlen(client_cert) + 1);
|
ret = mbedtls_x509_crt_parse(&_clientCrt, (const unsigned char *)client_cert, strlen(client_cert) + 1);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
ets_printf("Client cert not parsed, %d\n", ret);
|
ets_printf("ERROR: Client cert not parsed, %d\n", ret);
|
||||||
ets_printf("\nCert: \n %s", &_clientCrt);
|
ets_printf("\nCert: \n %s", &_clientCrt);
|
||||||
stop();
|
stop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ets_printf("Loading private key.\n");
|
ets_printf("*** Loading private key.\n");
|
||||||
ret = mbedtls_pk_parse_key(&_clientKey, (const unsigned char *)client_key, strlen(client_key)+1,
|
ret = mbedtls_pk_parse_key(&_clientKey, (const unsigned char *)client_key, strlen(client_key)+1,
|
||||||
NULL, 0);
|
NULL, 0);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
@@ -271,7 +296,7 @@ int WiFiSSLClient::connect(const char* host, uint16_t port, const char* client_c
|
|||||||
ets_printf("*** ssl set nonblock\n");
|
ets_printf("*** ssl set nonblock\n");
|
||||||
mbedtls_net_set_nonblock(&_netContext);
|
mbedtls_net_set_nonblock(&_netContext);
|
||||||
|
|
||||||
//ets_printf("Free internal heap before cleanup: %u\n", ESP.getFreeHeap());
|
ets_printf("Free internal heap before cleanup: %u\n", heap_caps_get_free_size(MALLOC_CAP_8BIT));
|
||||||
// free up the heap
|
// free up the heap
|
||||||
if (certs_data != NULL) {
|
if (certs_data != NULL) {
|
||||||
mbedtls_x509_crt_free(&_caCrt);
|
mbedtls_x509_crt_free(&_caCrt);
|
||||||
@@ -282,7 +307,7 @@ int WiFiSSLClient::connect(const char* host, uint16_t port, const char* client_c
|
|||||||
if (client_key !=NULL) {
|
if (client_key !=NULL) {
|
||||||
mbedtls_pk_free(&_clientKey);
|
mbedtls_pk_free(&_clientKey);
|
||||||
}
|
}
|
||||||
//ets_printf("Free internal heap after cleanup: %u\n", ESP.getFreeHeap());
|
ets_printf("Free internal heap after cleanup: %u\n", heap_caps_get_free_size(MALLOC_CAP_8BIT));
|
||||||
_connected = true;
|
_connected = true;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user