I have a simple app which runs into memory issues (with esp8266) so I'm changing from mbedtls to WolfSSL, the one from wolfssl.com .
I consistently run on this type of error with a cut down sample :
E (10118) esp-tls-wolfssl: wolfSSL_connect returned -0x1
E (10134) esp-tls-wolfssl: esp_wolfssl_handshake: This is to check whether handshake failed due to invalid certificate
E (10145) esp-tls-wolfssl: Failed to verify peer certificate , returned 24!
E (10153) esp-tls: Failed to open new connection
E (10158) TRANS_SSL: Failed to open a new connection
My app code basically looks like this :
bool CloudMessaging::sendMessage(const char *msg) {
// Configure, if necessary
if (! http_client) {
bzero(&httpc, sizeof(httpc));
httpc.event_handler = HttpEvent;
httpc.auth_type = HTTP_AUTH_TYPE_BASIC;
httpc.method = HTTP_METHOD_POST;
httpc.cert_pem = fcm_root_cert_pem_start;
ESP_LOGD(tag, "%s: cert_pem set", __FUNCTION__);
if (httpc.url)
free((void *)httpc.url);
httpc.url = 0;
asprintf((char **)&httpc.url, "%s/send", fcm_url_legacy); // Legacy HTTP API
ESP_LOGD(tag, "%s(%s)", __FUNCTION__, httpc.url);
http_client = esp_http_client_init(&httpc);
esp_http_client_set_header(http_client, "Content-type", "application/json");
char *tmp_auth_key;
asprintf(&tmp_auth_key, "key=%s", auth_key); // Legacy HTTP API
esp_http_client_set_header(http_client, "Authorization", tmp_auth_key);
free((void *)tmp_auth_key); // is copied in esp_http_client
}
ESP_LOGD(tag, "%s msg %s", __FUNCTION__, msg);
// Send
esp_http_client_set_post_field(http_client, msg, strlen(msg));
esp_err_t err = esp_http_client_perform(http_client);
if (err != ESP_OK) {
esp_http_client_cleanup(http_client);
http_client = 0;
return false;
}
Any ideas ?
Thanks for helping.