print return code and more verbose errors, move things around to correspond with their logical steps
This commit is contained in:
@@ -66,7 +66,6 @@ int WiFiSSLClient::connect(const char* host, uint16_t port)
|
|||||||
mbedtls_ssl_config_init(&_sslConfig);
|
mbedtls_ssl_config_init(&_sslConfig);
|
||||||
|
|
||||||
|
|
||||||
mbedtls_x509_crt_init(&_caCrt);
|
|
||||||
mbedtls_net_init(&_netContext);
|
mbedtls_net_init(&_netContext);
|
||||||
|
|
||||||
ets_printf("*** connect inited\n");
|
ets_printf("*** connect inited\n");
|
||||||
@@ -84,54 +83,52 @@ int WiFiSSLClient::connect(const char* host, uint16_t port)
|
|||||||
|
|
||||||
ets_printf("*** connect ssl hostname\n");
|
ets_printf("*** connect ssl hostname\n");
|
||||||
/* Hostname set here should match CN in server certificate */
|
/* Hostname set here should match CN in server certificate */
|
||||||
if(mbedtls_ssl_set_hostname(&_sslContext, host) != 0)
|
if(mbedtls_ssl_set_hostname(&_sslContext, host) != 0) {
|
||||||
{
|
|
||||||
stop();
|
stop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ets_printf("*** connect ssl config\n");
|
ets_printf("*** connect ssl config\n");
|
||||||
|
if (ret= mbedtls_ssl_config_defaults(&_sslConfig, MBEDTLS_SSL_IS_CLIENT,
|
||||||
if (mbedtls_ssl_config_defaults(&_sslConfig, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
|
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||||
|
MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
|
||||||
stop();
|
stop();
|
||||||
|
ets_printf("Error Setting up SSL Config: %d", ret);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ets_printf("*** connect authmode\n");
|
ets_printf("*** connect authmode\n");
|
||||||
|
// we're always using the root CA cert from partition, so MBEDTLS_SSL_VERIFY_REQUIRED
|
||||||
|
ets_printf("*** Loading CA Cert...");
|
||||||
|
mbedtls_x509_crt_init(&_caCrt);
|
||||||
mbedtls_ssl_conf_authmode(&_sslConfig, MBEDTLS_SSL_VERIFY_REQUIRED);
|
mbedtls_ssl_conf_authmode(&_sslConfig, MBEDTLS_SSL_VERIFY_REQUIRED);
|
||||||
|
|
||||||
|
// 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 = {};
|
||||||
|
|
||||||
ets_printf("*** connect part findfirst\n");
|
ets_printf("*** connect part findfirst\n");
|
||||||
|
|
||||||
const esp_partition_t* part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "certs");
|
const esp_partition_t* part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "certs");
|
||||||
if (part == NULL)
|
if (part == NULL) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ets_printf("*** connect part mmap\n");
|
ets_printf("*** connect part mmap\n");
|
||||||
|
|
||||||
int ret = esp_partition_mmap(part, 0, part->size, SPI_FLASH_MMAP_DATA, (const void**)&certs_data, &handle);
|
int ret = esp_partition_mmap(part, 0, part->size, SPI_FLASH_MMAP_DATA, (const void**)&certs_data, &handle);
|
||||||
if (ret != ESP_OK)
|
if (ret != ESP_OK) {
|
||||||
{
|
ets_printf("*** Error partition mmap %d\n", ret);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
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");
|
||||||
|
mbedtls_ssl_conf_ca_chain(&_sslConfig, &_caCrt, NULL);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
stop();
|
stop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ets_printf("*** connect conf ca chain\n");
|
// TODO: Check for _cert and _private_key
|
||||||
|
|
||||||
mbedtls_ssl_conf_ca_chain(&_sslConfig, &_caCrt, NULL);
|
|
||||||
|
|
||||||
|
|
||||||
ets_printf("*** connect conf RNG\n");
|
ets_printf("*** connect conf RNG\n");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user