Commit Graph
100 Commits
Author SHA1 Message Date
Harshal Patil 8657860580 Merge branch 'fix/mbedtls_port_coverity_fixes' into 'master'
fix(mbedtls/port): Fix some divide-by-zero and deadcode coverity checks

Closes IDF-9851 and IDF-9846

See merge request espressif/esp-idf!30954
2024-05-27 12:55:38 +08:00
harshal.patil 7c7c33ecbd fix(mbedtls/port): Fix some divide-by-zero and deadcode coverity checks 2024-05-23 09:45:44 +05:30
harshal.patil a15f19260b fix(soc): Cleanup inaccessible SHA registers from the header files 2024-05-20 15:34:42 +05:30
Harshal Patil bb34d78bce Merge branch 'fix/aes_ext_mem_case_for_older_targets' into 'master'
fix(mbedtls/aes): Check location of the buffer only for SOC_AXI_DMA_EXT_MEM_ENC_ALIGNMENT

Closes IDFCI-2153

See merge request espressif/esp-idf!30850
2024-05-16 15:10:28 +08:00
harshal.patil 141cdac87e fix(mbedtls/aes): Check location of the buffer only for SOC_AXI_DMA_EXT_MEM_ENC_ALIGNMENT
When buffer_needs_realloc in the AES driver, check the location of the buffer only in case
of SOC_AXI_DMA_EXT_MEM_ENC_ALIGNMENT for allocating the newer buffer, otherwise use generic
DMA capable memory (as was done earlier)
2024-05-16 13:36:30 +08:00
harshal.patil 1c21eb367e fix(hal/test_apps): Fix build failure of the crypto hal test app for ESP32-P4
- Add bootloader_support component in its priv_requires as we use source files from mbedtls
2024-05-14 11:53:44 +05:30
harshal.patil 3eb6487bb5 fix(bootloader_support): Make esp_flash_encrypt.h independent of spi_flash_mmap.h header 2024-05-13 16:54:45 +05:30
harshal.patil 5dfbc47192 fix(mbedtls/crypto_shared_gdma): Enable AXI-DMA enable external memory AES-ECC access
- When external memory encryption is enabled, set the aes_ecc bit of AXI-DMA to enable memory access
2024-05-13 16:54:45 +05:30
harshal.patil f07db4ef4d ci(otatool): fix test failure caused due to closing connection incorrectly 2024-04-15 17:09:39 +05:30
harshal.patil 6ec486e351 fix(esp_system): Enable crpyto peripherals related clocks for specific ESP32-P4 ECOs 2024-04-12 14:56:53 +05:30
harshal.patil 5ba9b53667 fix(hal): Clear reset on parent crpyto lock while resetting a crypto peripheral 2024-04-12 14:55:11 +05:30
harshal.patil e383616503 fix(mbedtls/aes): Fix incorrect dma alignment size 2024-04-02 14:30:14 +08:00
harshal.patil 1975c1c69e docs(security): Update security-related docs for ESP32-P4 2024-04-01 17:34:28 +05:30
harshal.patil 272633bde1 fix(mbedtls/ecdsa): Fix dependant peripheral's enable and reset 2024-03-29 12:40:13 +05:30
harshal.patil 84b6940ce4 feat(mbedtls/ecdsa): Wrapped ecdsa_write_signature to support deterministic ECDSA signatures 2024-03-29 12:14:11 +05:30
harshal.patil 70ef80d974 feat(mbedtls/ecdsa): Add support for deterministic ECDSA signature generation 2024-03-29 12:14:11 +05:30
harshal.patil cd98dfc3fd feat(hal): Add LL and HAL layer support for deterministic ECDSA 2024-03-29 12:14:11 +05:30
harshal.patil 95fac15698 feat(hal/ecdsa): Add HAL API for operation successful check 2024-03-29 12:14:11 +05:30
Harshal Patil 4ef1bf8031 Merge branch 'fix/esp32c5_sha_api_definitions' into 'master'
fix(hal/sha): Add RCC enable and reset API definitions for ESP32-C5 SHA

Closes IDFCI-2111

See merge request espressif/esp-idf!29883
2024-03-27 21:46:22 +08:00
harshal.patil e454fa4026 fix(hal/sha): Add RCC enable and reset API definitions for ESP32-C5 SHA 2024-03-27 18:09:33 +05:30
Harshal Patil 5274bf88e4 Merge branch 'esp32p4/add_sha_support' into 'master'
feat: add SHA support for ESP32-P4

Closes IDF-7541 and IDF-7882

See merge request espressif/esp-idf!24865
2024-03-27 20:08:28 +08:00
harshal.patil 22857529dd ci(hal/crypto): Update crypto test app to use SHA-DMA process API from mbedtls 2024-03-27 11:23:30 +05:30
harshal.patil 9cd10e196b feat(hal/sha): use RCC atomic block to enable/reset the SHA peripheral 2024-03-27 11:23:30 +05:30
harshal.patil 211a2a5477 feat(mbedtls/sha): Support SHA-DMA operations by satisfying L1 cache alignment requirements
- Use block mode as default SHA operation mode instead of DMA
2024-03-27 11:23:29 +05:30
harshal.patil d737625215 feat(mbedtls/sha): Support in AXI-DMA SHA driver layer 2024-03-27 11:23:29 +05:30
harshal.patil 853bff88c5 change(mbedtls/sha): replace Cache ROM APIs usage with APIs from esp_cache.h 2024-03-27 11:23:29 +05:30
harshal.patil 507b5fd2b6 fix(soc/sha_struct): fix register name continue to conti
- As contnue being a reserved keyword in C, the register name
continue is not valid
2024-03-27 11:23:28 +05:30
harshal.patil e6782156c4 feat(hal/sha): add SHA peripheral support for esp32p4 2024-03-27 11:23:28 +05:30
harshal.patil c4f052cee4 feat(mbedtls/aes): Satisfy L1 cache alignment for AES-GCM DMA operations 2024-03-26 11:38:33 +05:30
harshal.patil 07f7b06d8d change(mbedtls/aes): Move aad desc population into the internal AES-GCM DMA process API 2024-03-26 11:31:11 +05:30
harshal.patil 80b33ed3e7 fix(soc/sha_struct): fix register name continue to conti
- As continue being a reserved keyword in C, the register name continue is not valid
2024-03-26 11:31:11 +05:30
harshal.patil 0eb52a8fbf feat(hal/aes): Add LL layer support for ESP32-P4 AES-GCM 2024-03-26 11:31:11 +05:30
harshal.patil 0b16999093 fix(mbedtls/aes): Remove ESP_CACHE_MSYNC_FLAG_UNALIGNED flag for the cache M2C operation 2024-03-22 14:45:34 +05:30
Harshal Patil 03756359b2 Merge branch 'update/qemu_release_versions' into 'master'
Update QEMU release versions

See merge request espressif/esp-idf!29706
2024-03-20 14:26:07 +08:00
harshal.patil bc899d0bad ci(esp-tls): Fix test-specific leak for ESP32-P4 2024-03-13 15:22:07 +05:30
harshal.patil e8268d8b6b feat(hal/aes): use RCC atomic block to enable/reset the AES peripheral 2024-03-13 15:22:07 +05:30
harshal.patil 2abb656ba2 feat(mbedtls/aes): Support AES-DMA operations by satisfying L1 cache alignment requirements
- Use DMA RX done interrupt status bit while waiting for DMA rx transfer
2024-03-13 15:22:07 +05:30
harshal.patil 9b15189583 change(mbedtls): replace Cache ROM APIs usage with APIs from esp_cache.h
- Only APIs used in esp_crypto_shared_gdma and aes have been replaced
- Get dcache line size using cache api instead of Kconfig
2024-03-13 15:22:07 +05:30
harshal.patil a6012c9e5a feat(mbedtls/aes): add AES peripheral support for esp32p4 2024-03-13 15:22:06 +05:30
harshal.patil 83dd60307f feat(mbedtls/esp_crypto_shared_gdma): support AXI-DMA in the crypto shared gdma layer
- In case of AXI-DMA, the DMA descriptors need to be 8 bytes aligned
lldesc_t do not satify this condition thus we need to replace it with
dma_descriptor_t (align(4) and align(8)) in esp_crypto_shared_gdma.

- Added new shared gdma start API that supports the dma_descriptor_t
DMA descriptor.

- Added some generic dma descriptor macros and helper functions

- replace lldesc_t with dma_descriptor_t
2024-03-13 15:22:06 +05:30
harshal.patil 2c570ed53b change(mbedtls/aes): moved esp_aes_internal.h to be a private header
- Also enable AES-GCM test in the hal crypto test app for all targets
2024-03-13 15:22:06 +05:30
harshal.patil 343a6f47ab fix(mbedtls/aes-gcm): Fix null pointer derefernce coverity reports
- Also fixed a tcp_transport and https_server report
2024-03-12 12:36:00 +05:30
Harshal Patil ff3e51885a Merge branch 'fix/incorrect_parent_crypto_clk_reset' into 'master'
fix(hal/crypto): Do not reset parent crypto clk when resetting a crypto peripheral

See merge request espressif/esp-idf!29422
2024-03-08 18:28:54 +08:00
harshal.patil 2b6f12ba51 fix(hal/crypto): Do not reset parent crypto clk when resetting a crypto peripheral 2024-03-05 15:08:08 +05:30
harshal.patil 483b87750c docs(wifi_provisioning): Use heap to allocate memory for the response
Added a note to specify that the memory for the response of a custom endpoint
should be allocated using the heap, as this memory gets freed by the protocomm layer
once it has been passed to the transport layer.

Closes https://github.com/espressif/esp-idf/issues/13263
2024-03-04 16:34:27 +05:30
harshal.patil a21a16f34f ci(mbedtls/gcm): Added test to verify software fallback for non-AES cipher GCM operations 2024-02-23 10:47:30 +05:30
harshal.patil 8977be856d fix(mbedtls/gcm): Add support for software fallback for non-AES ciphers in a GCM operation
- Even if the config MBEDTLS_HARDWARE_AES is enabled, we now support fallback
to software implementation of GCM operations when non-AES ciphers are used.
2024-02-23 10:47:30 +05:30
harshal.patil f4581d7103 docs(secure_boot_v2): Specify the workflow to disable revocation of unused key digests slots 2024-02-15 14:31:41 +05:30
harshal.patil 8ac4d9ab99 fix(mbedtls/gcm): Avoid using GCM hardware when config MBEDTLS_HARDWARE_GCM is disabled 2024-01-04 12:20:11 +05:30
harshal.patil c1ed825d3e fix(mbedtls/gcm): Fix build failure when config MBEDTLS_HARDWARE_GCM is disabled 2024-01-04 12:20:10 +05:30
harshal.patil 42943845e4 feat(bootloader_support): Encrypt only the app image instead of the whole partition
Currently, when flash encryption is enabled, the whole partition gets encrypted.
This can be optimised by encrypting only the app image instead of encrypting the whole partition.

Closes https://github.com/espressif/esp-idf/issues/12576
2023-12-18 17:10:17 +05:30
harshal.patil cb169cb02f fix(bootloader_support): Fix image_length calculation when secure boot v1 is enabled
Fixed the value of the image_length field of the image metadata populated by esp_image_verfiy()
to include the size of the signature sector when Secure Boot V1 is enabled.
2023-12-18 17:08:11 +05:30
harshal.patil fd637d5be7 feat(examples): Add BLE support in the esp_local_ctrl example 2023-12-15 11:10:26 +05:30
harshal.patil fd012bf2c4 fix(examples): Fix encoding issue in esp_local_ctrl's proto script 2023-12-15 11:10:26 +05:30
harshal.patil fe293dfd83 feat(bootloader_support): Make esp_secure_boot_verify_sbv2_signature_block() function public
Closes https://github.com/espressif/esp-idf/issues/12717
2023-12-11 18:50:55 +05:30
Harshal Patil d69ee9e133 Merge branch 'fix/aes_mpi_interrupt_allocation_workflow_for_aes_gcm' into 'master'
fix(mbedtls/aes): fix AES interrupt allocation for AES-GCM operations

See merge request espressif/esp-idf!27516
2023-12-01 19:03:00 +08:00
harshal.patil 47821f6299 fix(mbedtls/aes): fix AES interrupt allocation for AES-GCM operations 2023-11-30 11:59:59 +05:30
harshal.patil 5e1335aae4 fix(nvs_flash): Fix the memory leak in the nvs_flash test app
The leak is now reduced by allocating the AES interrupt and
loading the partitions in the test setup instead of in the tests itself.
2023-11-22 16:23:18 +05:30
harshal.patil 91af44d6e8 fix(soc/esp32h2): Fix llperi_rng_data field discrepancy 2023-11-16 17:49:26 +05:30
harshal.patil 798059ace1 fix(soc/esp32c6): Fix llperi_rng_data field discrepancy 2023-11-16 17:49:26 +05:30
harshal.patil d3be7bda05 fix(mbedtls): move interrupt allocation during initialization phase 2023-11-06 11:20:53 +05:30
harshal.patil 6cf9cc2c9b docs(secure_boot_v1): add missing digest byte swap information
- In the secure bootloader digest algorithm section, the final
four byte word byte-swap information was not mentioned.
2023-10-12 17:35:10 +05:30
harshal.patil 5e7672a21d docs(build): enable docs build of DS and HMAC for esp32p4 2023-10-12 17:25:12 +05:30
harshal.patil ef92f03658 feat(efuses): enable eFuse example test (secure boot) for ESP32-P4 2023-10-12 10:12:54 +05:30
harshal.patil f46a93e565 feat(secure_boot): add secure boot support for esp32p4 2023-10-12 10:12:54 +05:30
harshal.patil 57d10477da feat(ecdsa): use RCC atomic block to enable/reset the ECDSA peripheral 2023-10-11 14:59:04 +05:30
harshal.patil 43864f7fb4 feat(ds): use RCC atomic block to enable/reset the DS peripheral 2023-10-11 14:59:04 +05:30
harshal.patil 18b93e9564 feat(hmac): use RCC atomic block to enable/reset the HMAC peripheral 2023-10-11 14:59:04 +05:30
harshal.patil 1c6ff8ce9f feat(ecc): use RCC atomic block to enable/reset the ECC peripheral 2023-10-11 14:59:04 +05:30
harshal.patil c5cc4f488a feat(mpi): use RCC atomic block to enable/reset the MPI peripheral 2023-10-11 14:59:03 +05:30
harshal.patil 3483cf61aa fix(esp_hw_support/esp_ds): remove enabling redundant peripherals 2023-10-11 14:59:03 +05:30
harshal.patil 6a7caa7b8e feat(esp_hw_support): Added locking mechanism for the ECDSA and ECC peripheral 2023-09-20 16:05:50 +05:30
harshal.patil aa4783519a feat(esp_hw_support): Add esp_crypto_lock layer for esp32c2 2023-09-20 16:05:49 +05:30
harshal.patil a686c20ee5 feat(bootloader): Update micro-ecc version to v1.1
This fix ensures that https://nvd.nist.gov/vuln/detail/CVE-2020-27209 is not
reported by the ESP-IDF SBOM tool. Please note that, this CVE was anyways not
applicable for ESP32 platform, as the bootloader (user of micro-ecc library)
do not perform signing on the device, its only verification that happens in
secure-boot-v1 case.
2023-09-20 11:29:58 +05:30
harshal.patil 66bbe8c156 fix: Fix esptool usage in the secure boot test application 2023-09-13 10:29:51 +05:30
harshal.patil 4c0dd8388b feat(mbedtls): Integrate the ecdsa export public key feature in mbedtls 2023-09-06 11:07:40 +05:30
harshal.patil cc32fbb302 ci(hal): add test for export public key mode of the ecdsa peripheral 2023-09-06 11:07:40 +05:30
harshal.patil d86b320892 feat(ecdsa): add ECDSA peripheral support for esp32p4 2023-09-06 11:07:37 +05:30
harshal.patil 21c3549800 ci(hal): add support for 4096 bits size digital signature hal test 2023-09-01 15:44:21 +05:30
harshal.patil b8c208cdb3 feat(ds): add Digital Signature peripheral support for esp32p4 2023-09-01 15:44:21 +05:30
harshal.patil 095c2a3324 feat(hmac): add HMAC peripheral support for esp32p4 2023-09-01 15:41:39 +05:30
harshal.patil 37303266f0 fix(esp_prov): update devices tuple usage due to API deprecations
- a recent commit fixed the API deprecations,
and the BLEDevice object now needs to be accessed through a tuple.
- thus the changes were made in the code wherein the object was used,
but updating the usage in the condition when de
vname is not None got skipped.
2023-08-22 14:44:38 +05:30
harshal.patil 031175d22a feat(mpi): add MPI peripheral support for esp32p4 2023-08-03 09:44:02 +05:30
harshal.patil f2801ae4c9 feat(ecc): add ECC peripheral support for esp32p4 2023-08-01 10:20:30 +05:30
harshal.patil b4cf035608 feat(soc): Add hwcrypto_reg.h for esp32p4 2023-08-01 10:19:18 +05:30
harshal.patil 9e1edd74c7 fix(esp_prov): Fixed the deprecation APIs warnings
- Updated the extraction of service_uuids using AdvertisementData
- Replaced the `get_services()` API with the `services` property
2023-07-19 14:24:47 +05:30
harshal.patil eb3dab8af4 ci(mbedtls): added a test for the mbedtls_internal_shaX_process API 2023-07-14 04:08:30 +00:00
harshal.patil 79d07f9909 fix(mbedtls): Fix the port for the mbedtls_internal_shaX_process API
- Also added the fix to update intermediate SHA state in the mbedtls_shaX_update API
2023-07-14 04:08:30 +00:00
harshal.patil 990e1e9307 refactor(mbedtls): refactored the return values check in some esp-aes APIs 2023-07-12 14:41:41 +05:30
harshal.patil 38255c048a fix(mbedtls): Fixed the transmission of return values of the esp-aes APIs
- Earlier, some intermediate return values were not stored and returned,
thus incorrect return values used to get transmitted to the upper layer of APIs.

- Also, zeroised the output buffer in case of error condition.
2023-07-12 14:41:41 +05:30
harshal.patil f0ae5bd25a mbedtls: update submodule to include:
fix: mbedtls_ecdsa_can_do was not being defined when ECDSA_SIGN_ALT is defined but ECDSA_VERIFY_ALT is not defined causing mbedtls_ecdsa_verify_restartable to always fail.
feature: initial version of the sbom.yml file
2023-06-23 14:07:45 +05:30
harshal.patil 0b86bcd35f efuse: use esp32 qemu target for a efuses example test.
The efuses example test with secure boot v2 and flash encryption enabled can be run on the esp32 qemu image.
2023-06-07 18:19:56 +05:30
Harshal Patil 972e17410a Merge branch 'fix/crypto_test_app_minor_fixes' into 'master'
hal: minor fixes needed in the crypto hal test app

See merge request espressif/esp-idf!23949
2023-06-05 20:04:08 +08:00
harshal.patil 7d4e69d5fa hal: minor fixes needed in the crypto hal test app 2023-06-01 11:37:36 +05:30
harshal.patil 60ccb8f439 esp32c6: xts-aes register preefix discrepency 2023-05-26 15:33:21 +05:30
harshal.patil bc825431e8 esp32h2: xts-aes register prefix discrepency 2023-05-26 15:33:15 +05:30
harshal.patil ed4ceea43d esp32c2: xts-aes register prefix discrepency 2023-05-25 11:27:18 +05:30
harshal.patil 0058fb3a05 esp32c3: xts-aes register prefix discrepency 2023-05-25 11:27:10 +05:30
harshal.patil 873901e7aa bootloader: add a config to enable flashing of bootloader using
the command `idf.py flash` when secure boot v2 is enabled.
2023-05-24 11:50:14 +05:30
harshal.patil 21c6d5392f hal: add ecdsa peripheral verification tests 2023-05-22 15:19:34 +05:30