This is an automated email from the ASF dual-hosted git repository. gustavonihei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 5d1c01aea7e2f5d46b2e36c7575bf792c3301e87 Author: Abdelatif Guettouche <abdelatif.guettou...@espressif.com> AuthorDate: Fri Oct 15 13:15:13 2021 +0200 arch/risc-v/esp32c3: Remove the AES test from the driver. Signed-off-by: Abdelatif Guettouche <abdelatif.guettou...@espressif.com> --- arch/risc-v/src/esp32c3/Kconfig | 8 - arch/risc-v/src/esp32c3/esp32c3_aes.c | 475 --------------------- .../esp32c3/esp32c3-devkit/configs/aes/defconfig | 3 +- 3 files changed, 1 insertion(+), 485 deletions(-) diff --git a/arch/risc-v/src/esp32c3/Kconfig b/arch/risc-v/src/esp32c3/Kconfig index e0866ab..ea356f8 100644 --- a/arch/risc-v/src/esp32c3/Kconfig +++ b/arch/risc-v/src/esp32c3/Kconfig @@ -1045,14 +1045,6 @@ endmenu # Partition Configuration endif -menu "AES accelerator" - depends on ESP32C3_AES_ACCELERATOR - -config ESP32C3_AES_ACCELERATOR_TEST - bool "AES driver test" - default n - -endmenu # AES accelerator menu "SHA accelerator" depends on ESP32C3_SHA_ACCELERATOR diff --git a/arch/risc-v/src/esp32c3/esp32c3_aes.c b/arch/risc-v/src/esp32c3/esp32c3_aes.c index b2a4305..74588eb 100644 --- a/arch/risc-v/src/esp32c3/esp32c3_aes.c +++ b/arch/risc-v/src/esp32c3/esp32c3_aes.c @@ -651,478 +651,3 @@ int aes_cypher(void *out, const void *in, uint32_t size, #endif -/**************************************************************************** - * Test Functions - ****************************************************************************/ - -#ifdef CONFIG_ESP32C3_AES_ACCELERATOR_TEST - -/**************************************************************************** - * Name: esp32c3_aes_ecb_test - ****************************************************************************/ - -static bool esp32c3_aes_ecb_test(void) -{ - int ret; - int i; - int keybits; - uint8_t encrypt_buf[16]; - uint8_t decrypt_buf[16]; - struct esp32c3_aes_s aes; - const int size = 16; - - const uint32_t input[8] = - { - 0x740fdb34, 0x002defca, 0xb042437b, 0xc2f42cf9, - 0xc64444be, 0x32365bc1, 0xb613cfa2, 0x15ce0d23 - }; - - const uint32_t key[16] = - { - 0x8ffdc2c5, 0x14d6c69d, 0x9cb7608f, 0x899b2472, - 0xbf9e4372, 0x855290d0, 0xc62753da, 0xdeedeab7 - }; - - const uint32_t result[3][4] = - { - /* keybits = 128 */ - - { - 0xc810df2a, 0x8ae67e6e, 0x50c5e32c, 0xd535f3e4 - }, - - /* keybits = 256 */ - - { - 0xa0714c2b, 0x356adb1f, 0xe905c243, 0x35195a7c - } - }; - - esp32c3_aes_init(); - - for (i = 0; i < 2; i++) - { - keybits = i * 128 + 128; - - ret = esp32c3_aes_setkey(&aes, key, keybits); - if (ret < 0) - { - return false; - } - - ret = esp32c3_aes_ecb_cypher(&aes, 1, input, encrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(encrypt_buf, result[i], size); - if (ret) - { - return false; - } - - ret = esp32c3_aes_ecb_cypher(&aes, 0, encrypt_buf, decrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(decrypt_buf, input, size); - if (ret) - { - return false; - } - - syslog(LOG_INFO, "ESP32-C3 AES ECB key=%d bits test: PASS\n", keybits); - } - - return true; -} - -/**************************************************************************** - * Name: esp32c3_aes_cbc_test - ****************************************************************************/ - -static bool esp32c3_aes_cbc_test(void) -{ - int ret; - int i; - int keybits; - uint8_t encrypt_buf[32]; - uint8_t decrypt_buf[32]; - uint8_t iv_buf[16]; - struct esp32c3_aes_s aes; - const int size = 32; - - const uint32_t input[8] = - { - 0x740fdb34, 0x002defca, 0xb042437b, 0xc2f42cf9, - 0xc64444be, 0x32365bc1, 0xb613cfa2, 0x15ce0d23 - }; - - const uint32_t key[16] = - { - 0x8ffdc2c5, 0x14d6c69d, 0x9cb7608f, 0x899b2472, - 0xbf9e4372, 0x855290d0, 0xc62753da, 0xdeedeab7 - }; - - const uint32_t iv[4] = - { - 0xf53a50f2, 0x8aaf711d, 0x953bbbfa, 0x228d53cb - }; - - const uint32_t result[3][8] = - { - /* keybits = 128 */ - - { - 0x04e27d12, 0x1a91e508, 0x01092431, 0x9d572184, - 0xa39979e1, 0x5543e1bc, 0x7173b71d, 0x4e3be064 - }, - - /* keybits = 256 */ - - { - 0x6f36b8fe, 0x33bc1f37, 0x24fe659c, 0x0370def0, - 0xb9a852f8, 0x64a79ae2, 0xd59f5045, 0x648a0f44 - } - }; - - for (i = 0; i < 2; i++) - { - keybits = i * 128 + 128; - - ret = esp32c3_aes_setkey(&aes, key, keybits); - if (ret < 0) - { - return false; - } - - memcpy(iv_buf, iv, 16); - ret = esp32c3_aes_cbc_cypher(&aes, 1, iv_buf, input, encrypt_buf, - size); - if (ret < 0) - { - return false; - } - - ret = memcmp(encrypt_buf, result[i], size); - if (ret) - { - return false; - } - - memcpy(iv_buf, iv, 16); - ret = esp32c3_aes_cbc_cypher(&aes, 0, iv_buf, encrypt_buf, - decrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(decrypt_buf, input, size); - if (ret) - { - return false; - } - - syslog(LOG_INFO, "ESP32-C3 AES CBC key=%d bits test: PASS\n", keybits); - } - - return true; -} - -/**************************************************************************** - * Name: esp32c3_aes_ctr_test - ****************************************************************************/ - -static bool esp32c3_aes_ctr_test(void) -{ - int ret; - int i; - int keybits; - uint8_t encrypt_buf[32]; - uint8_t decrypt_buf[32]; - uint8_t cnt_buf[16]; - uint8_t cache_buf[16]; - uint32_t nc_off; - struct esp32c3_aes_s aes; - const int size = 32; - - const uint32_t input[8] = - { - 0x740fdb34, 0x002defca, 0xb042437b, 0xc2f42cf9, - 0xc64444be, 0x32365bc1, 0xb613cfa2, 0x15ce0d23 - }; - - const uint32_t key[16] = - { - 0x8ffdc2c5, 0x14d6c69d, 0x9cb7608f, 0x899b2472, - 0xbf9e4372, 0x855290d0, 0xc62753da, 0xdeedeab7 - }; - - const uint32_t cnt[4] = - { - 0xf53a50f2, 0x8aaf711d, 0x953bbbfa, 0x228d53cb - }; - - const uint32_t result[3][8] = - { - /* keybits = 128 */ - - { - 0x5f922338, 0x5aff403d, 0x45fede3f, 0x616568c6, - 0x3cd0ffc7, 0xa26cb704, 0x0aaa8b6a, 0x1d0b5e1c - }, - - /* keybits = 256 */ - - { - 0x70af4473, 0x597d2126, 0xd598ed09, 0x3fea540c, - 0xfb5c743c, 0x0c1a39ca, 0xcbcf2d17, 0x341a7a0c - } - }; - - for (i = 0; i < 2; i++) - { - keybits = i * 128 + 128; - - ret = esp32c3_aes_setkey(&aes, key, keybits); - if (ret < 0) - { - return false; - } - - nc_off = 0; - memcpy(cnt_buf, cnt, 16); - ret = esp32c3_aes_ctr_cypher(&aes, &nc_off, cnt_buf, cache_buf, - input, encrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(encrypt_buf, result[i], size); - if (ret) - { - return false; - } - - nc_off = 0; - memcpy(cnt_buf, cnt, 16); - ret = esp32c3_aes_ctr_cypher(&aes, &nc_off, cnt_buf, cache_buf, - encrypt_buf, decrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(decrypt_buf, input, size); - if (ret) - { - return false; - } - - syslog(LOG_INFO, "ESP32-C3 AES CTR key=%d bits test: PASS\n", keybits); - } - - return true; -} - -/**************************************************************************** - * Name: esp32c3_aes_xts_test - ****************************************************************************/ - -static bool esp32c3_aes_xts_test(void) -{ - int ret; - int i; - int keybits; - uint8_t encrypt_buf[32]; - uint8_t decrypt_buf[32]; - uint8_t unit_buf[16]; - struct esp32c3_aes_xts_s aes; - int size; - - const uint32_t input[8] = - { - 0x740fdb34, 0x002defca, 0xb042437b, 0xc2f42cf9, - 0xc64444be, 0x32365bc1, 0xb613cfa2, 0x15ce0d23 - }; - - const uint32_t key[16] = - { - 0x8ffdc2c5, 0x14d6c69d, 0x9cb7608f, 0x899b2472, - 0xbf9e4372, 0x855290d0, 0xc62753da, 0xdeedeab7, - 0x7ac6c53b, 0xc94f0b81, 0xdd673fc9, 0x8c1b71a6, - 0x1f99b728, 0x5e7af2eb, 0xcc7274a3, 0xf0005b23 - }; - - const uint32_t unit[4] = - { - 0xf53a50f2, 0x8aaf711d, 0x953bbbfa, 0x228d53cb - }; - - const uint32_t result_in32[2][8] = - { - /* keybits = 256 */ - - { - 0xf70e05fd, 0x2791be41, 0x926ec006, 0xc76068f4, - 0x01fd0843, 0xdf5e576a, 0xa4b1833d, 0x90502608 - }, - - /* keybits = 512 */ - - { - 0x164b4185, 0x4cb1cce7, 0xf285e523, 0x06a5923a, - 0xae4fcb7b, 0x59ce9dc6, 0xed64546f, 0x5889cb17 - } - }; - - const uint32_t result_in30[2][8] = - { - /* keybits = 256 */ - - { - 0x26991fb6, 0x72e4a7bc, 0x97041d61, 0x9ec889af, - 0xf70e05fd, 0x2791be41, 0x926ec006, 0x000068f4 - }, - - /* keybits = 512 */ - - { - 0x4b42dd86, 0xeee792c0, 0x1516ff95, 0x1f5fd9e6, - 0x164b4185, 0x4cb1cce7, 0xf285e523, 0x0000923a - } - }; - - for (i = 0; i < 2; i++) - { - keybits = i * 256 + 256; - - ret = esp32c3_aes_xts_setkey(&aes, key, keybits); - if (ret < 0) - { - return false; - } - - /* Encrypt/Decrypt 32 bytes */ - - size = 32; - - memcpy(unit_buf, unit, 16); - ret = esp32c3_aes_xts_cypher(&aes, true, unit_buf, input, - encrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(encrypt_buf, result_in32[i], size); - if (ret) - { - return false; - } - - memcpy(unit_buf, unit, 16); - ret = esp32c3_aes_xts_cypher(&aes, false, unit_buf, encrypt_buf, - decrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(decrypt_buf, input, size); - if (ret) - { - return false; - } - - /* Encrypt/Decrypt 30 bytes */ - - size = 30; - - memcpy(unit_buf, unit, 16); - ret = esp32c3_aes_xts_cypher(&aes, true, unit_buf, input, - encrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(encrypt_buf, result_in30[i], size); - if (ret) - { - return false; - } - - memcpy(unit_buf, unit, 16); - ret = esp32c3_aes_xts_cypher(&aes, false, unit_buf, encrypt_buf, - decrypt_buf, size); - if (ret < 0) - { - return false; - } - - ret = memcmp(decrypt_buf, input, size); - if (ret) - { - return false; - } - - syslog(LOG_INFO, "ESP32-C3 AES XTS key=%d bits test: PASS\n", keybits); - } - - return true; -} - -/**************************************************************************** - * Name: esp32c3_aes_main - ****************************************************************************/ - -int esp32c3_aes_main(int argc, char *argv[]) -{ - bool success; - - syslog(LOG_INFO, "----- BEGIN TEST -----\n"); - - esp32c3_aes_init(); - - success = esp32c3_aes_ecb_test(); - if (!success) - { - goto test_end; - } - - success = esp32c3_aes_cbc_test(); - if (!success) - { - goto test_end; - } - - success = esp32c3_aes_ctr_test(); - if (!success) - { - goto test_end; - } - - success = esp32c3_aes_xts_test(); - if (!success) - { - goto test_end; - } - -test_end: - syslog(LOG_INFO, "----- END TEST -----\n"); - - syslog(LOG_INFO, "\n"); - - syslog(LOG_INFO, "----- RESULT: %s -----\n", - success ? "SUCCESS" : "FAILED"); - - return 0; -} - -#endif diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/configs/aes/defconfig b/boards/risc-v/esp32c3/esp32c3-devkit/configs/aes/defconfig index ec0efd3..bfa01f0 100644 --- a/boards/risc-v/esp32c3/esp32c3-devkit/configs/aes/defconfig +++ b/boards/risc-v/esp32c3/esp32c3-devkit/configs/aes/defconfig @@ -21,7 +21,6 @@ CONFIG_BOARD_LOOPSPERMSEC=15000 CONFIG_BUILTIN=y CONFIG_DEV_ZERO=y CONFIG_ESP32C3_AES_ACCELERATOR=y -CONFIG_ESP32C3_AES_ACCELERATOR_TEST=y CONFIG_FS_PROCFS=y CONFIG_IDLETHREAD_STACKSIZE=2048 CONFIG_INTELHEX_BINARY=y @@ -42,4 +41,4 @@ CONFIG_START_MONTH=11 CONFIG_START_YEAR=2019 CONFIG_SYSTEM_NSH=y CONFIG_UART0_SERIAL_CONSOLE=y -CONFIG_USER_ENTRYPOINT="esp32c3_aes_main" +CONFIG_USER_ENTRYPOINT="nsh_main"