esp-idf/components
KonstantinKondrashov 5ed8388f6b mbedtls: Add Montgomery exponentiation implementation (HAC 14.94)
It gave us a better performance of RSA operations. (2~11 times)

The old modexp implementation (Z = X ^ Y mod M) loaded all the data into
the hw registers and was waiting for completion, but due to
the hardware RSA implementation, the calculations always started with 4096 bit,
which took a lot of time.
Measurement results (measurements were made for keys: 2048, 3072 and 4096 bits)
(Old) - Sliding-window exponentiation (HAC 14.85):
keysize = 2048 bits
RSA key operation (performance): public [93206 us], private [280189 us]
keysize = 3072 bits
RSA key operation (performance): public [293614 us], private [858157 us]
 keysize = 4096 bits
RSA key operation (performance): public [653192 us], private [1912126 us]

Instead (Old) - Sliding-window exponentiation (HAC 14.85) was implemented
(New) - Montgomery exponentiation (HAC 14.94) which showed
better performance on private and public keys.
keysize = 2048 bits
RSA key operation (performance): public [14504 us], private [149456 us]
keysize = 3072 bits
RSA key operation (performance): public [35073 us], private [392743 us]
keysize = 4096 bits
RSA key operation (performance): public [58650 us], private [787186 us]

For this reason, the old implementation was removed
and the MBEDTLS_HARDWARE_MPI option was turned on by default.

Why the MPI_INTERRUPT option is removed:
the old implementation used calculations on the hardware and
it took a lot of time (10ms - 500ms). And in order not to stand idle
while waiting for completion, an interrupt option was added.
This made it possible to carry out other tasks during the calculation,
and this one to block. The new method is free from such a drawback and
the maximum duration of one RSA HW operation does not exceed 70us (usually 2-70 μs).
This option is no longer needed.

Closes: IDF-965
2019-11-05 16:33:11 +08:00
..
app_trace timer_group: use the LL 2019-08-09 13:46:31 +08:00
app_update Merge branch 'bugfix/remove_v40_deprecations' into 'master' 2019-09-19 16:07:01 +08:00
asio components: use new component registration api 2019-06-21 19:53:29 +08:00
bootloader Merge branch 'feature/load_elf' into 'master' 2019-09-27 19:36:25 +08:00
bootloader_support bootloader_support: fix logging prints around chip revision 2019-10-11 14:35:22 +05:30
bt Merge branch 'hfp_bugfix' into 'master' 2019-10-14 21:47:56 +08:00
cbor cbor: add tinycbor library and example 2019-08-22 17:44:29 +08:00
coap ESP32/coap_mbedtls:add macro checks 2019-10-09 16:46:46 +08:00
console tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
cxx cxx: force pthread to appear later in link line 2019-09-17 20:08:12 +08:00
driver spi: move deprecated functions into internal header 2019-10-08 11:51:39 +08:00
efuse bootloader: shrink bin size 2019-09-27 10:58:30 +08:00
esp32 Merge branch 'feature/add_psram_workaround_option' into 'master' 2019-10-09 23:41:09 +08:00
esp_adc_cal esp_adc_cal: Remove deprecated ADC calibration functions 2019-09-13 09:44:07 +10:00
esp_common Merge branch 'fix/cmake_req_private_comp' into 'master' 2019-10-11 12:58:45 +08:00
esp_eth Merge branch 'bugfix/ethernet_unitest_crash' into 'master' 2019-10-16 13:05:16 +08:00
esp_event esp_wifi: wifi support new event mechanism 2019-08-20 09:39:51 +00:00
esp_gdbstub espcoredump: fix issue with spi_flash access 2019-09-06 15:37:55 +08:00
esp_http_client fixes : set_url discards username and password 2019-10-04 10:42:43 +05:30
esp_http_server esp_http_server : Bugfix in parsing of empty header values 2019-09-06 11:02:36 +08:00
esp_https_ota esp_https_ota: Added error checking functionalities. 2019-08-15 21:10:00 +08:00
esp_https_server esp-tls: Naming variables refering to certificates and keys in a neutral way to suggest that both PEM and DER format could be used, added comments descibing important details about using these formats 2019-08-02 09:25:16 +02:00
esp_local_ctrl tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
esp_ringbuf ringbuf: Remove deprecated RingbufferType_t 2019-09-13 09:44:07 +10:00
esp_rom Support ELF files loadable with gdb 2019-09-24 07:19:50 +00:00
esp_websocket_client Merge branch 'bugfix/ws_client_fix_event_blocking' into 'master' 2019-10-14 15:17:34 +08:00
esp_wifi Merge branch 'bugfix/fix_sta_wpa2_enterprise_issue' into 'master' 2019-10-14 21:27:05 +08:00
esp-tls ESP32/esp-tls: include esp_err.h in esp_tls.h 2019-10-07 19:47:32 +08:00
espcoredump coredump: use esp_flash api in coredump 2019-09-14 17:02:08 +08:00
esptool_py Merge branch 'bugfix/missing_build_targets_cmake' into 'master' 2019-10-08 16:24:40 +08:00
expat components: use new component registration api 2019-06-21 19:53:29 +08:00
fatfs fatfs: Remove esp_vfs_fat_unregister() 2019-09-13 09:44:07 +10:00
freemodbus timer_group: use the LL 2019-08-09 13:46:31 +08:00
freertos freertos: remove semicolon in xTaskNotifyGive 2019-09-26 15:27:48 +08:00
heap heap: Remove esp_heap_alloc_caps header 2019-09-13 09:44:07 +10:00
idf_test idf_test: Disable tests for Wi-Fi auto reconnect 2019-09-17 18:41:09 +10:00
jsmn components: use new component registration api 2019-06-21 19:53:29 +08:00
json Update cJSON to v1.7.12 2019-08-14 10:03:27 +10:00
libsodium Merge branch 'bugfix/libsodium_test_timeouts' into 'master' 2019-08-08 15:02:51 +08:00
log tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
lwip ci: fix weekend test confguration update per latest refactoring of 2019-09-30 09:51:41 +02:00
mbedtls mbedtls: Add Montgomery exponentiation implementation (HAC 14.94) 2019-11-05 16:33:11 +08:00
mdns mdns: use constant size of AAAA answer in mdns packets instead of deriving from lwip struct size, since the struct could contain also zones 2019-09-24 12:12:58 +02:00
mqtt ci: fix weekend test confguration update per latest refactoring of 2019-09-30 09:51:41 +02:00
newlib newlib: Fix UT - test time adjustment happens linearly 2019-10-01 03:09:22 +08:00
nghttp Modified http_parser to handle ICY uris. 2019-10-11 05:04:08 +00:00
nvs_flash Fix Kconfig issues discovered by upstream Kconfiglib 2019-09-23 16:10:57 +02:00
openssl Fix Kconfig issues discovered by upstream Kconfiglib 2019-09-23 16:10:57 +02:00
partition_table Fix Kconfig issues discovered by upstream Kconfiglib 2019-09-23 16:10:57 +02:00
protobuf-c components: use new component registration api 2019-06-21 19:53:29 +08:00
protocomm NimBLE: Fix bug in protocomm_nimble chararcteristic access callback 2019-08-15 10:50:30 +08:00
pthread tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
sdmmc tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
soc Ethernet: optimize and bugfix 2019-10-11 12:15:17 +08:00
spi_flash spi: move deprecated functions into internal header 2019-10-08 11:51:39 +08:00
spiffs cmake: Add new compiler optimization levels definitions 2019-09-06 17:37:19 +08:00
tcp_transport tcp_transport: fix possible buffer overflow in ws transport connect 2019-10-14 06:50:22 +00:00
tcpip_adapter esp_wifi: wifi support new event mechanism 2019-08-20 09:39:51 +00:00
ulp ulp: Add aditional uint32_t object to ulp_insn_t 2019-08-15 17:34:26 +02:00
unity Fix remaining -Wstrict-prototypes warnings 2019-08-01 16:28:56 +07:00
vfs Add Chinese translation for the 2nd batch of the files in storage folder in api-reference. 2019-09-20 12:32:55 +08:00
wear_levelling Add Chinese translation for README files in components and tools folders, including: 2019-09-06 20:18:19 +08:00
wifi_provisioning cmake: Add new compiler optimization levels definitions 2019-09-06 17:37:19 +08:00
wpa_supplicant wpa_supplicant: Make hexdump logs more compact 2019-10-14 23:37:51 +08:00
xtensa make code conform to Wstrict-prototypes 2019-08-01 16:28:56 +07:00