Giter Site home page Giter Site logo

esp-wolfssl's Introduction

ESP-WOLFSSL

Licensing


IMPORTANT NOTE

Until March 2021, this repository contained binary distribution of wolfSSL libraries, which could be used royalty-free on all Espressif MCU products. This royalty-free binary distribution is not available anymore.

This repository now uses upstream wolfSSL GitHub pointer as submodule and can still be used as ESP-IDF component. Please follow licensing requirements per wolfssl/LICENSING


Requirements

Getting Started

  • Please clone this repository using,
git clone --recursive https://github.com/espressif/esp-wolfssl

Options (Debugging and more)

  • esp-wolfssl esp-tls related options can be obtained by choosing SSL library as wolfSSL in idf.py/make menuconfig -> Component Config -> ESP-TLS -> choose SSL Library . It shows following options

    • Enable SMALL_CERT_VERIFY

      • This is a flag used in wolfSSL component and is enabled by default in esp-wolfssl.
      • Enabling this flag allows user to authenticate the server by providing the Intermediate CA certificate of the server, for a more strict check disable this flag after which you will have to provide the root certificate at top of the hierarchy of certificate chain which will have Common Name = Issuer Name, Such a strict check is not compulsary in most cases hence by default the flag is enabled but the option is provided for the user.
    • Enable Debug Logs for wolfSSL

      • This option prints detailed logs of all the internal operations, highly useful when debugging an error.
  • esp-wolfssl specific options (see NOTE) are available under idf.py/make menuconfig -> Component Config -> wolfSSL.

    • Enable ALPN ( Application Layer Protocol Negotiation ) in wolfSSL

      • This option is enabled by default for wolfSSL, and can be disabled if not required.
    • Enable OCSP (Online Certificate Status Protocol) in wolfSSL

      • This options is disabled by default. Enabling it adds support for checking the host's certificate revocation status during the TLS handshake.

NOTE These options are valid for esp-tls only if wolfSSL is selected as its SSL/TLS Library.

Comparison of wolfSSL and mbedTLS

The following table shows a typical comparison between wolfSSL and mbedtls when https_request (which has server authentication) was run with both SSL/TLS libraries and with all respective configurations set to default. (mbedtls IN_CONTENT length and OUT_CONTENT length were set to 16384 bytes and 4096 bytes respectively)

Property wolfSSL mbedTLS
Total Heap Consumed ~19 Kb ~37 Kb
Task Stack Used ~2.2 Kb ~3.6 Kb
Bin size ~858 Kb ~736 Kb

Additional Pointers

In general, these are links which will be useful for using both wolfSSL, as well as networked and secure applications in general. Furthermore, there is a more comprehensive tutorial that can be found in Chapter 11 of the official wolfSSL manual. The examples in the wolfSSL package and Chapter 11 do appropriate error checking, which is worth taking a look at. For a more comprehensive API, check out chapter 17 of the official manual.

esp-wolfssl's People

Contributors

adityahpatwardhan avatar dgarske avatar donghengqaz avatar frankencode avatar igrr avatar laukik-hase avatar mahavirj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp-wolfssl's Issues

After introducing the wolfssl library using the Bluetooth example code, Bluetooth does not work

Hi, I ran into a new problem when I introduced the wolfssl library while using the Bluetooth sample code, and Bluetooth didn't work. The program prompts "MAC address is not set".
image
image

Then I added the code before the Bluetooth initialization:
uint8_t mac[6] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55};
esp_base_mac_addr_set(mac);

The program no longer says "MAC address is not set," but Bluetooth still doesn't start scanning and print the scan result.
I don't know what went wrong

how do I use this library to create a SHA1 Hasher?

Hi, how do I use this library to implement the following python code?

from cryptography.hazmat.primitives import hashes
vin = bytes("5YJ3E1EA1KF000000", "UTF8")

Create A SHA1 Hasher

digest = hashes.Hash(hashes.SHA1())

Put VIN Into The Hasher

digest.update(vin)

Set vinSHA To The Hex String Of The VIN Hash

vinSHA = digest.finalize().hex()

Get The First 16 Characters

middleSection = vinSHA[0:16]
print(middleSection) # a6bab0d54ffaecf1

availability of esp-wolfssl for v3.3

Readme files says
To run the examples user must have installed ESP-IDF version v4.1 (minimum supported)

is there any plan to release this for v3.3
or Anybody is using this with esp-idf v3.3

esp-idf/esp_https_server and wolf-ssl dont work

Hi,

I am trying wolfSSL together with the esp_https_server component in esp-idf(v4.1-dev) .
When I try to build https, i get an error that some functions are missing.
Possibly there are some parts missing in esp-idf to utilize esp-wolfssl correctly.

Im getting the following error:
esp-idf/components/esp_https_server/src/https_server.c: In function 'httpd_ssl_close':
esp-idf/components/esp_https_server/src/https_server.c:31:5: error: implicit declaration of function 'esp_tls_server_session_delete'; did you mean 'esp_tls_conn_delete'? [-Werror=implicit-function-declaration]

esp-idf/components/esp_https_server/src/https_server.c: In function 'httpd_ssl_open':
esp-idf/components/esp_https_server/src/https_server.c:104:15: error: implicit declaration of function 'esp_tls_server_session_create'; did you mean 'wolfSSL_save_session_cache'? [-Werror=implicit-function-declaration]

in menuconfig im selecting:
Choose SSL/TLS library for ESP-TLS (See help for more Info) (wolfSSL (License info in wolfSSL directory README)) --->
and
[*] Include wolfSSL in esp-tls
and
[*] Enable ESP_HTTPS_SERVER component

BR /W

wc_AesCfbEncrypt results in LoadProhibited

I'm trying to encrypt and decrypt some data using AES-128 in CFB mode. Most of the time I'm getting very weird exceptions like this:

Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x400da2c7  PS      : 0x00060130  A0      : 0x800d2c91  A1      : 0x3ffd3730  
A2      : 0x3ffb3874  A3      : 0x3ffd37c0  A4      : 0x3ffd3780  A5      : 0x00000033  
A6      : 0x00000001  A7      : 0x3ffb397c  A8      : 0xfa6f0b8d  A9      : 0xfa6f0b7d  
A10     : 0x4016d6a8  A11     : 0x00000005  A12     : 0x3f4006f8  A13     : 0x3ffb4934  
A14     : 0x0000000a  A15     : 0x3ffb4988  SAR     : 0x00000004  EXCCAUSE: 0x0000001c  
EXCVADDR: 0xfa6f0b8d  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffd  

Backtrace:0x400da2c4:0x3ffd3730 0x400d2c8e:0x3ffd3750 0x400d2e10:0x3ffd3780 0x400d2e89:0x3ffd3830 0x4008787d:0x3ffd38a0

After poking the source code a bit and examining objdumps, I have found that this line of code at aes.c:7102 doesn't evaluate properly for some reason:

tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;

The value ends up in A8, after which it is being dereferenced which causes the exception. In the particular register dump above it is equal to 0xfa6f0b8d. However, this piece of code just before the function call prints a sane result:

// 0x3ffb3874 0x3ffb397c 16 0 0x3ffb398c
ESP_LOGI("AES-DBG", "%p %p %i %i %p",
        &aes,
        aes.tmp,
        AES_BLOCK_SIZE,
        aes.left,
        (uint8_t*)aes.tmp + AES_BLOCK_SIZE - aes.left);

These two calculations are separated by a function call and two if statements, neither of which manipulate the aes structure:

int wc_AesCfbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
{
    byte*  tmp = NULL;
    byte*  reg = NULL;

    if (aes == NULL || out == NULL || in == NULL) {
        return BAD_FUNC_ARG;
    }

    if (aes->left && sz) {
        reg = (byte*)aes->reg + AES_BLOCK_SIZE - aes->left;
    }

    /* consume any unused bytes left in aes->tmp */
    tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;

I having trouble wrapping my head around this issue

Can it work with Arduino framework?

I'm looking for a smaller footprint SSL lib for esp32 with the use of Arduino framework. Can i implement wolfssl if i'm not directly using IDF?

ESP8266_RTOS_SDK v3.4 ld.exe failed ~~

d:/msys32/opt/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/8.4.0/../../../../xtensa-lx106-elf/bin/ld.exe: D:/msys32/home/esp/ESP8266_RTOS_SDK/components/esp-wolfssl/wolfssl/lib\libwolfssl.a(integer.o).literal.mp_read_radix+0x0): undefined reference to `__ctype_ptr__'
d:/msys32/opt/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/8.4.0/../../../../xtensa-lx106-elf/bin/ld.exe: D:/msys32/home/esp/ESP8266_RTOS_SDK/components/esp-wolfssl/wolfssl/lib\libwolfssl.a(internal.o).literal.MatchDomainName+0x0): undefined reference to `__ctype_ptr__'
collect2.exe: error: ld returned 1 exit status
make: *** [D:\msys32\home\esp\ESP8266_RTOS_SDK/make/project.mk:5

Update codebase, improve component installation

I opened espressif/esp-idf#9288 in the hopes of improving the wolfSSL component integration with the ESP-IDF.

In the comments of the PR I learned there's a completely new and exciting IDF Component Manager in the works, but not quite complete as noted in espressif/idf-component-manager#4 (comment):

Component Manager was released recently and at this stage, it's only available for uploading internal (Espressif) components.

In the meantime, the wolfSSL code here in this repo has grown quite stale. The current submodule points to code that is well over a year old.

I'd like to help. It sounds like updating this repo may or may not be the best place for a new wolfSSL component? Any suggestions of how best to proceed will be appreciated. Thanks.

See also: https://www.wolfssl.com/Espressif/ as well as current install scripts for wolfSSL and wolfSSH.

When I create ecc_private_key, an ERROR message is displayed: ***ERROR*** A stack overflow in task main has been detected. And reboot

Hi, when I create ecc_private_key, an ERROR message is displayed: ERROR A stack overflow in task main has been detected. And reboot. Can you help me see what's wrong with the code?
while (true)
{
// create private key
ecc_key key;
int ret;
WC_RNG rng;

    wc_ecc_init(&key);
    wc_InitRng(&rng);
    int curveId = ECC_SECP256R1;
    int keySize = wc_ecc_get_curve_size_from_id(curveId);
    ret = wc_ecc_make_key_ex(&rng, keySize, &key, curveId);

    int check_result;
    check_result = wc_ecc_check_key(&key);

    if (check_result == MP_OKAY)
    {
        printf("check_key success==============\n");
    }
    else
    {
        printf("check_key failed==============\n");
    }

    /* code */
    printf("hello");
    printf("\n");
    vTaskDelay(100);
}

image

Logging problems... forced to use ESP_EARLY_LOGE; ESP_LOGx variants don't show on to idf.py monitor

It appears to me (I've done several checks and spent all weekend with this problem), that use of 'esp-wolfssl' is preventing proper output e.g. within 'idf.py monitor' command, of logging information explicitly coded within either the app_main or subsidiary user functions calling ESP_LOGx(,,...) ESP-IDF macros.

I point this because even the basic client example provided, any additional user code can only putting out messages in the 'idf.py monitor' when I resort to ESP_EARLY_LOGE i.e. logging macros that are essentially ISR-safe and do not use printf()'s behind your back. Logging stuff coming from "system" modules seem to pass along effortlessly, though...

I also wish to know, does anyone here know whether the 'wolfssl_client' example properly address the WiFi API for recent versions of IDF properly? If you try to compile the example as it comes, it blocks trying to connecting to the WiFi AP, keeps retrying forever... does not give any explicit error though. I guess this comes down to using deprecated sequence of WiFi setting up commands wrt the "new way" of doing WiFi within IDF.

I can provide source code examples for you to appreciate the difference in WiFi handling wrt older ESP-IDF way.
Kind regards & thanks in advance!

What do I do when I always return '-170' when using wc_ecc_shared_secret?

My program receives an ephemeral_key (publickey) in the format ProtobufCBinaryData. I want to use my private key (private_key ECC_SECP256R1) and ephemeral_key to generate a shared key, What do I do when I always return '-170' when using wc_ecc_shared_secret?

ecc_key my_private_key; // ECC_SECP256R1
byte my_public_key[65]; // wc_ecc_export_x963_ex()

ecc_key other_pub_key[65];
int to_load_key(ProtobufCBinaryData ephemeral_key)
{
int ret = 0;

wc_ecc_init(&other_pub_key);
ret = wc_ecc_import_x963((byte *)ephemeral_key.data, (word32)ephemeral_key.len, &other_pub_key);

//int curve_idx = wc_ecc_get_curve_idx(ECC_SECP256R1);
//other_pub_key= wc_ecc_new_point(); // ecc_point *other_pub_key;
//ret = wc_ecc_import_point_der(ephemeral_key.data, ephemeral_key.len, curve_idx, other_pub_key);

ret = wc_ecc_shared_secret(&my_private_key, &other_pub_key, shared_key, shared_key_len);
if (ret != 0)
{
    ESP_LOGI(TAG, "========= wc_ecc_shared_secret error %d", ret);
    wc_ecc_free(&other_pub_key);
    return -4; // Error computing shared key
}
return 0;

}

TLS 1.2 support available?

Hi,
Is there a list describing which methods that are supported or not supported in the static lib?
We are wondering mainly if TLS 1.2 is supported.
We try to do a wolfTLSv1_2_client_method() but according to our debug session it does a wolfTLSv1_3_client_method().
But we see that README.md says that:
"The binary library does not include wolfSSL features for TLS 1.3, FIPS or DTLS 1.2."
BR /W

Customizing user_settings.h

I would like to import esp-wolfssl as a git submodule directly, and yet be able to customize the settings.
user_settings.h by default disables unsafe features, which unfortunately we need (specifically, we need 3DES, which is disabled by the macro NO_DES3).

At the moment it seems that the only possibility is to manually modify port/user_settings.h; this is because it is included directly by wolfssl source. This inclusion is controlled by the WOLFSSL_USER_SETTINGS macro, which is set directly in component.mk.

Is there some macro I am missing? Otherwise, would it be possible to change port/user_settings.h in a way that it can be customized without needing to touch the repo content?

For example, something like this:

#ifdef ESP_WOLFSSL_CUSTOM_USER_SETTINGS
#include <esp_user_settings.h>  // File provided by the user, not bundled in esp-wolfssl
#else
// all the content of port/user_settings.h
#endif

Does not compile with new gcc 11.2

I had to do a lot of patches of wolfssl to get it finally compiling again with newest idf,

and it seems like it crashes with unencrypted http_clients,
but does not with encrypted wss:// websocket_clients.

But then in fails to validate the server's certificate, although provided with

    esp_websocket_client_config_t ws_cfg = {
        .uri = url.data(),
        .task_stack = 4*1024,
        .cert_pem = cloud_cert_pem.data(),
        .cert_len = cloud_cert_pem.size(),
    };

Is wolfssl somehow broken nowadays?

how to configure TLS 1.3 DH key size?

When building the esp-wolfssl/examples/wolfssl_client example, I am encountering an error:

$ idf.py build
Executing action: all (aliases: build)
Running ninja in directory /mnt/c/workspace/esp-wolfssl/examples/wolfssl_client/build
Executing "ninja all"...
[0/1] Re-running CMake...
-- Building ESP-IDF components for target esp32
-- Project sdkconfig file /mnt/c/workspace/esp-wolfssl/examples/wolfssl_client/sdkconfig
-- App "wolfssl" version: 19613e4
...
[937/1107] Building C object esp-idf/wolfssl/CMakeFiles/__idf_wolfssl.dir/src/tls.c.obj
FAILED: esp-idf/wolfssl/CMakeFiles/__idf_wolfssl.dir/src/tls.c.obj
...
/home/gojimmypi/esp/esp-idf/components/wolfssl/src/tls.c:90:10: error: #error Please configure your TLS 1.3 DH key size using either: HAVE_FFDHE_2048, HAVE_FFDHE_3072, HAVE_FFDHE_4096, HAVE_FFDHE_6144 or HAVE_FFDHE_8192
         #error Please configure your TLS 1.3 DH key size using either: HAVE_FFDHE_2048, HAVE_FFDHE_3072, HAVE_FFDHE_4096, HAVE_FFDHE_6144 or HAVE_FFDHE_8192

I followed the instructions in the README.md regarding the idf.py menuconfig but I didn't see any mention of key size.

I've also tried the WolfSSL download code as described in my blog here with essentially the same error.

Any suggestions on setting the TLS 1.3 DH key size? Thanks.

*edit: also tried adding #define HAVE_FFDHE_2048 at the beginning of wolfssl_client_demo.c, no luck. I also tried adding the define just above this line in tls.c - also no joy.

CMake error at 381, of component.cmake

After adding wolfssl using idf.py add dependency, and when I select wolfssl in Esp-tls options, the project doesn't build, the issue it says is cmake error at line 31 of component.cmake of esp idf framework.
_component_get_property function invoked with incorrect arguments

using sh2lib example with wolfssl is calling panic handler (IDFGH-3195)

Environment

  • IDF version
    v4.1-beta1-112-g4fe18a925

Problem Description

I (3770) example_connect: IPv4 address: 192.168.0.112                                                                                                                                                                                                                          I (3770) example_connect: IPv6 address: fe80:0000:0000:0000:4e11:aeff:fe6b:6460                                                                                                                                                                                                Connecting to server                                                                                                                                                                                                                                                           I (4120) wolfssl: wolfSSL Entering wolfSSL_Init                                                                                                                                                                                                                                I (4120) wolfssl: wolfSSL Entering wolfCrypt_Init                                                                                                                                                                                                                              I (4120) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4120) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4130) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4130) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4140) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4150) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4150) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4160) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4160) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4170) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4180) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4180) wolfssl: wolfSSL Entering EVP_get_cipherbyname                                                                                                                                                                                                                        I (4190) wolfssl: wolfSSL_RAND_seed                                                                                                                                                                                                                                            I (4200) wolfssl: wolfSSL Entering TLSv1_2_client_method_ex                                                                                                                                                                                                                    I (4200) wolfssl: wolfSSL Entering wolfSSL_CTX_new_ex                                                                                                                                                                                                                          I (4200) wolfssl: wolfSSL Entering wolfSSL_CertManagerNew                                                                                                                                                                                                                      I (4210) wolfssl: wolfSSL Leaving WOLFSSL_CTX_new, return 0                                                                                                                                                                                                                     priv_ssl 0I (4220) wolfssl: wolfSSL Entering wolfSSL_UseALPN                                                                                                                                                                                                                  E (4220) esp-tls-wolfssl: Use wolfSSL ALPN failed -173                                                                                                                                                                                                                         I (4230) wolfssl: wolfSSL Entering SSL_shutdown()                                                                                                                                                                                                                              I (4230) wolfssl: wolfSSL Entering SSL_free                                                                                                                                                                                                                                    I (4240) wolfssl: wolfSSL Leaving SSL_free, return 0                                                                                                                                                                                                                           I (4240) wolfssl: wolfSSL Entering SSL_CTX_free                                                                                                                                                                                                                                I (4250) wolfssl: CTX ref count down to 0, doing full free                                                                                                                                                                                                                     I (4260) wolfssl: wolfSSL Entering wolfSSL_CertManagerFree                                                                                                                                                                                                                     I (4260) wolfssl: wolfSSL Leaving SSL_CTX_free, return 0                                                                                                                                                                                                                       I (4270) wolfssl: wolfSSL Entering wolfSSL_Cleanup                                                                                                                                                                                                                             I (4270) wolfssl: wolfSSL Entering wolfSSL_RAND_Cleanup()                                                                                                                                                                                                                      I (4280) wolfssl: wolfSSL Entering wolfCrypt_Cleanup                                                                                                                                                                                                                           E (4290) esp-tls: create_ssl_handle failed                                                                                                                                                                                                                                     E (4290) esp-tls: Failed to open new connection                                                                                                                                                                                                                                I (4300) wolfssl: wolfSSL Entering SSL_shutdown()                                                                                                                                                                                                                              I (4300) wolfssl: wolfSSL Entering SSL_free                                                                                                                                                                                                                                    I (4310) wolfssl: wolfSSL Leaving SSL_free, return 0                                                                                                                                                                                                                           I (4310) wolfssl: wolfSSL Entering SSL_CTX_free                                                                                                                                                                                                                                F:/ESP-IDF-v4.1/esp-idf/components/freertos/queue.c:1447 (xQueueGenericReceive)- assert failed!                                                                                                                                                                                abort() was called at PC 0x40092be1 on core 1                                                                                                                                                                                                                                  0x40092be1: xQueueGenericReceive at F:/ESP-IDF-v4.1/esp-idf/components/freertos/queue.c:1447 (discriminator 1)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ELF file SHA256: 2f7467423dd24cc6d24aff07c0027c7e459db7742b76939e63a0fb1c5b521425                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Backtrace: 0x40087755:0x3ffcf7a0 0x40087ae9:0x3ffcf7c0 0x40092be1:0x3ffcf7e0 0x4015a032:0x3ffcf820 0x40165319:0x3ffcf840 0x40165355:0x3ffcf860 0x4013fbff:0x3ffcf880 0x40101eb9:0x3ffcf8a0 0x401020d7:0x3ffcf8c0 0x40101c19:0x3ffcf8e0 0x40101d45:0x3ffcf900 0x400d6742:0x3ffcf940 0x400d6471:0x3ffcf9d0 0x40092171:0x3ffcfa00                                                                                                                                                                                                                                0x40087755: invoke_abort at F:/ESP-IDF-v4.1/esp-idf/components/esp32/panic.c:157                                                                                                                                                                                                                                                                                                                                                                                                                                                                              0x40087ae9: abort at F:/ESP-IDF-v4.1/esp-idf/components/esp32/panic.c:174                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0x40092be1: xQueueGenericReceive at F:/ESP-IDF-v4.1/esp-idf/components/freertos/queue.c:1447 (discriminator 1)                                                                                                                                                                                                                                                                                                                                                                                                                                                0x4015a032: wc_LockMutex at /builds/esp-components/esp-wolfssl/wolfssl/wolfcrypt/src/wc_port.c:835                                                                                                                                                                                                                                                                                                                                                                                                                                                            0x40165319: SSL_CTX_RefCount at /builds/esp-components/esp-wolfssl/wolfssl/src/internal.c:4827                                                                                                                                                                                                                                                                                                                                                                                                                                                                0x40165355: FreeSSL_Ctx at /builds/esp-components/esp-wolfssl/wolfssl/src/internal.c:1911                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0x4013fbff: wolfSSL_CTX_free at /builds/esp-components/esp-wolfssl/wolfssl/src/ssl.c:404                                                                                                                                                                                                                                                                                                                                                                                                                                                                      0x40101eb9: esp_wolfssl_cleanup at F:/ESP-IDF-v4.1/esp-idf/components/esp-tls/esp_tls_wolfssl.c:209                                                                                                                                                                                                                                                                                                                                                                                                                                                           0x401020d7: esp_wolfssl_conn_delete at F:/ESP-IDF-v4.1/esp-idf/components/esp-tls/esp_tls_wolfssl.c:198                                                                                                                                                                                                                                                                                                                                                                                                                                                       0x40101c19: esp_tls_conn_delete at F:/ESP-IDF-v4.1/esp-idf/components/esp-tls/esp_tls.c:97                                                                                                                                                                                                                                                                                                                                                                                                                                                                    0x40101d45: esp_tls_conn_http_new at F:/ESP-IDF-v4.1/esp-idf/components/esp-tls/esp_tls.c:405                                                                                                                                                                                                                                                                                                                                                                                                                                                                 0x400d6742: sh2lib_connect at f:\esp-idf-v4.1\http2_request\build/../components/sh2lib/sh2lib.c:246                                                                                                                                                                                                                                                                                                                                                                                                                                                           0x400d6471: http2_task at f:\esp-idf-v4.1\http2_request\build/../main/http2_request_example_main.c:105                                                                                                                                                                                                                                                                                                                                                                                                                                                        0x40092171: vPortTaskWrapper at F:/ESP-IDF-v4.1/esp-idf/components/freertos/port.c:143                                                                                                                                                                                                                                                                                    

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.