Marius Vikhammer
9b4ba3d707
crypto: initial S3 Beta 3 bringup and testing for SHA/AES/RSA/flash enc
2021-05-18 11:25:41 +08:00
Marius Vikhammer
fe71a8e340
aes/sha: use a shared lazy allocated GDMA channel for AES and SHA
...
Removed the old dynamically allocated GDMA channel approach.
It proved too unreliable as we couldn't not ensure consumers of the mbedtls
would properly free the channels after use.
Replaced by a single shared GDMA channel for AES and SHA, which won't be
released unless user specifically calls API for releasing it.
2021-03-09 09:23:05 +08:00
KonstantinKondrashov
f3dd0a37c7
mbedtls: Fix rsa test
2021-03-02 03:18:58 +08:00
Angus Gratton
89b6baf2b8
mbedtls tests: Add optional debug log output to AES stream tests
2021-02-12 04:08:12 +00:00
ChenJianxing
243417c48c
temporarily disable hardware encryption for esp32s3
2021-01-28 21:05:51 +08:00
Marius Vikhammer
51169b0e0c
AES/SHA: use GDMA driver instead of LL
2021-01-19 11:02:51 +08:00
Marius Vikhammer
9c8e4fd4c5
C3: build and run unit tests
...
Enable building and running of unit tests in CI for C3 as well as fix
related compile errors
Also enables building of C3 test apps
2021-01-11 11:34:37 +08:00
Marius Vikhammer
1b6891c5d8
mbedtls: merge changes from C3
2020-12-29 10:56:13 +08:00
Marius Vikhammer
0a95151a75
unit_test: Refactor all performance tests that rely on cache compensated timer
...
There is no ccomp timer on C3, which means our performance tests will start
failing again due to variance caused by cache misses.
This MR adds TEST_PERFORMANCE_CCOMP_ macro that will only fail
performance test if CCOMP timer is supported on the target
2020-12-22 18:56:24 +11:00
Marius Vikhammer
457ce080ae
AES: refactor and add HAL layer
...
Refactor the AES driver and add HAL, LL and caps.
Add better support for running AES-GCM fully in hardware.
2020-12-10 09:04:47 +00:00
Marius Vikhammer
7e0f362149
esp_crt_bundle: add additional unit tests
...
Add unit test for:
* Trusted certificate with weak hash algorithm signature
* Certificate with wrong signature
Merges https://github.com/espressif/esp-idf/pull/6117
2020-12-08 10:11:31 +08:00
Angus Gratton
a4fb6c0173
mbedtls: Add missing sha_caps includes
2020-11-17 22:51:07 +00:00
Angus Gratton
66fb5a29bb
Whitespace: Automated whitespace fixes (large commit)
...
Apply the pre-commit hook whitespace fixes to all files in the repo.
(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Marius Vikhammer
bff0016eb8
crypto accelerator support on esp32s3
...
SHA: passing unit tests
RSA: pass tests
AES: tests passing
2020-09-22 15:15:03 +08:00
Jakob Hasse
20c068ef3b
cmock: added cmock as component
...
* changing dependencies from unity->cmock
* added component.mk and Makefile.projbuild
* ignore test dir in gen_esp_err_to_name.py
* added some brief introduction of CMock in IDF
2020-09-02 16:38:37 +08:00
KonstantinKondrashov
11844a54f4
mbedtls: Fix a case for mpi_montgomery_exp_calc() when Z is not init
...
Closes: IDF-1870
2020-07-13 22:46:05 +08:00
Marius Vikhammer
b75edc84e3
esp32s2 SHA: fallback to hashing block by block for non DMA memory
...
Also adds unit test for SHA with input buffer in flash
Closes IDF-1529
2020-06-10 15:09:20 +08:00
Marius Vikhammer
71ab83cdfb
aes: increase timeout for "mbedtls AES performance" test
...
Timeout increased to 60 sec from default 30 sec.
Test would occasionally timeout on S2 due to cache misses.
2020-04-10 15:49:40 +08:00
Marius Vikhammer
832599718d
cert bundle: add server_root.pem incase bundle needs to be regenerated
2020-04-07 18:51:26 +08:00
Marius Vikhammer
9ccc5e6d84
cert bundle: Fix memory leak during cert verification
...
Also refactors the unit tests and fixes the test case, as it was giving false positives.
Closes IDFGH-2950
Closes https://github.com/espressif/esp-idf/issues/4983
2020-04-07 18:50:30 +08:00
Marius Vikhammer
32f16e8c30
crypto tests: fix mallocs that were missing MALLOC_CAP_8BIT
...
Tests had the potential to fail they got non byte-accessible memory allocated.
2020-03-30 11:12:20 +08:00
Angus Gratton
62426a6c90
Merge branch 'refactor/use_new_component_registration_functions' into 'master'
...
CMake: Use new component registration function
See merge request espressif/esp-idf!8068
2020-03-25 08:02:42 +08:00
Marius Vikhammer
32fd9d6c63
s2 crypto: update perf test to use cache comp timer
...
Updated S2 hardware accelerated crypto to use the cache compensated timer.
Re-enabled RSA performance test and set lower targets now that results are more stable
Closes: IDF-1174
2020-03-23 11:30:55 +08:00
Renz Bagaporo
3d0967a58a
test: declare requirements and include dirs private
2020-03-23 10:58:50 +08:00
Ivan Grokhotkov
6330b3345e
Merge branch 'bugfix/disable_rsa_perf_test' into 'master'
...
rsa: ignore performance test in CI
See merge request espressif/esp-idf!8026
2020-03-20 15:09:15 +08:00
Marius Vikhammer
2f5e4601ef
rsa: ignore performance test in CI
...
Even with a static key the performance vary a lot between different builds.
2020-03-19 14:16:39 +08:00
Marius Vikhammer
ffb9010cbe
aes: Fixed tag sometime being wrong for HW GCM
...
The GCM hardware accelerated algorithm for S2 would sometimes output
the wrong tag.
Added additional tests for AES and GCM
Re-enable HW GCM as default option
2020-03-18 08:44:38 +08:00
Marius Vikhammer
e21bef3f28
mpi: active hw accel for S2
...
Actives MPI/RSA hardware acceleratio for ESP32 S2.
Closes IDF-803
2020-03-13 18:33:18 +08:00
Marius Vikhammer
3351376a11
AES: optimize AES-GCM
...
HW acceleration for GCM is now enabled by default
Closes IDF-1443
2020-03-12 10:20:24 +08:00
Marius Vikhammer
37369a8a57
crypto: SHA and AES accelerator bring up for S2
...
Brings up, fixes and enables AES and SHA hardware acceleration.
Closes IDF-714
Closes IDF-716
2020-03-11 15:09:45 +08:00
Marius Vikhammer
947e3e94ed
Add ESP certificate bundle feature
...
Adds the ESP certificate bundle feature that enables users to bundle a
root certificate bundle together with their application.
Default bundle includes all Mozilla root certificates
Closes IDF-296
2020-03-04 10:51:43 +08:00
michael
2529eda907
ci: disable failed cases for s2 temporarily
2020-02-15 18:28:25 +08:00
morris
e30cd361a8
global: rename esp32s2beta to esp32s2
2020-01-22 12:14:38 +08:00
David Cermak
b0a714476a
mbedtls: added mpi multiplication test for large numbers
2020-01-09 18:11:18 +00:00
David Cermak
1acf4d46ef
mbedtls: bugnum test for rsa operations with blinding
2020-01-09 18:11:18 +00:00
michael
4220752aed
ut: Move tests back from "esp32" subfolder
...
DISABLED_FOR_TARGETS macros are used
Partly revert "ci: disable unavailable tests for esp32s2beta"
This partly reverts commit 76a3a5fb48
.
Partly revert "ci: disable UTs for esp32s2beta without runners"
This partly reverts commit eb158e9a22
.
Partly revert "fix unit test and examples for s2beta"
This partly reverts commit 9baa7826be
.
Partly revert "efuse: Add support for esp32s2beta"
This partly reverts commit db84ba868c
.
2020-01-06 17:13:53 +08:00
Marius Vikhammer
c63684cf6c
hw crypto: activated hardware acceleration for esp32s2beta
...
Activated AES, RSA and SHA hardware acceleration for esp32s2 and enabled related unit tests.
Updated with changes made for ESP32 from 0a04034
, 961f59f
and caea288
.
Added performance targets for esp32s2beta
Closes IDF-757
2019-12-12 12:37:29 +08:00
Anton Maklakov
f8bfa69060
rsa test: fix a warning
2019-11-06 18:21:39 +07:00
Angus Gratton
5b33d6cf94
Merge branch 'feature/mbedtls_add_faster_modexp' into 'master'
...
mbedtls: Add a new (X^Y) mod M implementation (HAC 14.94)
Closes IDF-965
See merge request espressif/esp-idf!6418
2019-11-06 15:51:28 +08:00
KonstantinKondrashov
e8d3b80e4b
mbedtls: Add an UT for performance RSA key operations
...
(New) - Montgomery exponentiation: Z = X ^ Y mod M (HAC 14.94)
keysize = 2048 bits
RSA key operation (performance): public [21894 us], private [199119 us]
RSA key operation (performance): public [18768 us], private [189051 us]
RSA key operation (performance): public [16242 us], private [190821 us]
keysize = 3072 bits
RSA key operation (performance): public [39762 us], private [437480 us]
RSA key operation (performance): public [36550 us], private [449422 us]
RSA key operation (performance): public [40536 us], private [443451 us]
keysize = 4096 bits
RSA key operation (performance): public [65671 us], private [885215 us]
RSA key operation (performance): public [60770 us], private [880936 us]
RSA key operation (performance): public [68951 us], private [872027 us]
(Old) - Sliding-window exponentiation: Z = X ^ Y mod M (HAC 14.85)
keysize = 2048 bits
RSA key operation (performance): public [93206 us], private [280189 us]
RSA key operation (performance): public [93060 us], private [278893 us]
RSA key operation (performance): public [97520 us], private [283252 us]
keysize = 3072 bits
RSA key operation (performance): public [293614 us], private [858157 us]
RSA key operation (performance): public [289902 us], private [843701 us]
RSA key operation (performance): public [291495 us], private [845232 us]
keysize = 4096 bits
RSA key operation (performance): public [653192 us], private [1912126 us]
RSA key operation (performance): public [656661 us], private [1901792 us]
RSA key operation (performance): public [641390 us], private [1938911 us]
2019-11-05 16:33:11 +08:00
Ivan Grokhotkov
589a1f216f
mbedtls: add SHA performance test
...
Results with this revision:
SHA256 rate 2.599MB/sec Debug 240MHz SW
SHA256 rate 1.147MB/sec Release 80MHz SW
SHA256 rate 3.469MB/sec Release 240MHz SW
SHA256 rate 2.687MB/sec Release 240MHz SW + PSRAM workaround
SHA256 rate 9.433MB/sec Debug 240MHz HW rev1
SHA256 rate 3.727MB/sec Release 80MHz HW rev1
SHA256 rate 10.961MB/sec Release 240MHz HW rev1
SHA256 rate 9.966MB/sec Release 240MHz HW rev1 + PRAM workaround
SHA256 rate 10.974MB/sec Debug 240MHz HW rev3
SHA256 rate 4.362MB/sec Release 80MHz HW rev3
SHA256 rate 13.207MB/sec Release 240MHz HW rev3
Debug = Og, assertions enabled
Release = O2, assertions disabled
2019-11-04 10:48:08 +01:00
Michael (XIAO Xufeng)
76a3a5fb48
ci: disable unavailable tests for esp32s2beta
2019-09-04 10:53:25 +10:00
Anton Maklakov
afbaf74007
tools: Mass fixing of empty prototypes (for -Wstrict-prototypes)
2019-08-01 16:28:56 +07:00
Renz Christian Bagaporo
0872efa4ef
mbedtls: remove component CMake file workarounds
2019-06-26 08:41:02 +00:00
Renz Christian Bagaporo
9eccd7c082
components: use new component registration api
2019-06-21 19:53:29 +08:00
Konstantin Kondrashov
bc8c8c68dd
mbedtls: Add UTs for modexp
2019-06-17 07:19:54 +00:00
Renz Christian Bagaporo
70dfcb35d4
mbedtls: component CMakeLists.txt corrections
...
Since !4452 the common component requirements automatically get
privately linked to libraries built under ESP-IDF build system (this
includes targets from third-party libraries). This removes a variable
that was used for that purpose before !4452 .
Since the internal target names were changed, the compile definition for
warning on using deprecated functions is not being passed. Since using
the internal name is unreliable, prefer passing this compile definition
from the test itself.
2019-06-11 18:09:26 +08:00
Konstantin Kondrashov
399d2d2605
all: Using xxx_periph.h
...
Using xxx_periph.h in whole IDF instead of xxx_reg.h, xxx_struct.h, xxx_channel.h ... .
Cleaned up header files from unnecessary headers (releated to soc/... headers).
2019-06-03 14:15:08 +08:00
Angus Gratton
c9edb7c8a9
mbedtls: Add AES-CBC performance test
...
Hardware AES engine gets 11.0MB/sec on Release config
Software AES is around 2.3MB/sec on Release config
2019-05-21 12:41:40 +10:00
Angus Gratton
f3277cf2dc
hwcrypto sha: Allow SHA contexts to be shared between tasks
...
Previously, hardware SHA engine "locks" were mutex semaphores. This meant that the task which
started a particular SHA session (in hardware) needed to finalise that session, or an invalid
FreeRTOS state was created.
Replace with binary semaphore which can be shared between tasks.
Includes a unit test, but unit test doesn't crash even without this fix
(some other unknown condition is required).
2019-01-23 04:59:44 +00:00