It is that maybe less modification working on the components is better, so I just modified the platform
code of AES, SHA and so on.
ESP8266 has no real hardware AES, SHA or bignum peripheral, but some method can speed up the process of part
of upper algorithm, so I also added the platform code of AES, SHA, bignum, ARC, MD5.
ESP8266 has no platform of bignum, so users should not enable the bignum hardware at "menuconfig".
Bootloader can get the version of application for specific section,
and then check if some features are supported.
Developers can use the macro "ESP_IDF_VERSION" to limite some function like following:
include "esp_idf_version.h"
if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(3, 4, 0) && ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(4, 0, 0) // 3.4 <= ver < 4.0
do_xxx_process();
endif