AchimPieters / esp32-homekit-demo

esp32-homekit-demo
https://www.studiopieters.nl
MIT License
17 stars 4 forks source link

Add support for wolfSSL Managed Components #6

Closed gojimmypi closed 4 months ago

gojimmypi commented 4 months ago

Related to the recent update of wolfSSL published for https://github.com/wolfSSL/wolfssh/pull/699, this PR adds Apple HomeKit support for wolfSSL as a Managed Component and removes the static local copy.

For details on wolfSSL Managed Components, see these blogs:

As the SRP issue in https://github.com/wolfSSL/wolfssl/issues/7210 was addressed after the release of wolfSSL 5.7.0 in https://github.com/wolfSSL/wolfssl/pull/7505, this PR includes a link to pre-release version 5.7.1-preview2e or later to work properly.

See the respective LED example README for addition details. This section was added:

Requirements

This project uses the wolfSSL Managed Component. Version 5.7.1-Preview2e or later must be used.

See: https://components.espressif.com/components/wolfssl/wolfssl/versions/5.7.1-preview2e

Currently, a preview release is available, and can be installed like this:

idf.py add-dependency "wolfssl/wolfssl^5.7.1-preview2e"

To enable support for Apple HomeKit, be sure to check the respective box in idf.py menuconfig.

The local sdkconfig.defaults has been edited to enable the wolfSSL support for Apple HomeKit by default.

gojimmypi commented 4 months ago

@AchimPieters let me know if any problems are encountered. We can meet on discord or zoom to resolve any issues.

AchimPieters commented 4 months ago

FAILED: esp-idf/esptool_py/CMakeFiles/app_check_size /project/examples/led/build/esp-idf/esptool_py/CMakeFiles/app_check_size cd /project/examples/led/build/esp-idf/esptool_py && /opt/esp/python_env/idf5.4_py3.10_env/bin/python /opt/esp/idf/components/partition_table/check_sizes.py --offset 0x8000 partition --type app /project/examples/led/build/partition_table/partition-table.bin /project/examples/led/build/main.bin Error: app partition is too small for binary main.bin size 0x101d90:

It seems it's getting "big"?

gojimmypi commented 4 months ago

Hi @AchimPieters your device a 2MB ESP32? There are options in wolfSSL user_settings.h that can reduce code size. Let me revisit the settings you were using. Stand by...

Edit: ok, I see that the hardware acceleration was turned off by default. Even with hardware acceleration, the software code still needs to be present for fallback (e.g. when hardware busy). Disabling all hardware acceleration saves about 8K of memory.

I'm preparing a new PR with more Kconfig settings to allow for a smaller footprint on devices with limited flash.