From 25953269788f6d1b5db45be42578940fee3c7f4a Mon Sep 17 00:00:00 2001 From: "martin.gano" Date: Mon, 20 Jul 2020 10:19:12 +0200 Subject: [PATCH] components: convert string to bytes to fix TypeError There is a string passed as an argument for function, but a format of a string seemingly refers to bytes therefore it needs to be converted to bytes Solves https://esp32.com/viewtopic.php?f=13&t=16529 (cherry picked from commit cb0bdb8bba774c0d5a670f73a23ca882dfddd2b6) --- .../nvs_partition_gen.py | 2 +- .../nvs_flash/test_nvs_host/test_nvs.cpp | 30 +++++++++++++++++++ tools/ci/config/host-test.yml | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py b/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py index 3bc10e8c3..9feef4493 100755 --- a/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py +++ b/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py @@ -786,7 +786,7 @@ def decrypt(args): page_num = 0 page_max_size = 4096 start_entry_offset = 0 - empty_data_entry = bytearray('\xff') * 32 + empty_data_entry = bytearray(b'\xff') * nvs_read_bytes # Check if key file has .bin extension input_files = [args.input, args.key, args.output] diff --git a/components/nvs_flash/test_nvs_host/test_nvs.cpp b/components/nvs_flash/test_nvs_host/test_nvs.cpp index 4b2181064..d5e5bd141 100644 --- a/components/nvs_flash/test_nvs_host/test_nvs.cpp +++ b/components/nvs_flash/test_nvs_host/test_nvs.cpp @@ -2881,6 +2881,36 @@ TEST_CASE("test nvs apis for nvs partition generator utility with encryption ena } +TEST_CASE("test decrypt functionality for encrypted data", "[nvs_part_gen]") +{ + + //retrieving the temporary test data + int status = system("cp -rf ../nvs_partition_generator/testdata ."); + CHECK(status == 0); + + //encoding data from sample_multipage_blob.csv + status = system("python ../nvs_partition_generator/nvs_partition_gen.py generate ../nvs_partition_generator/sample_multipage_blob.csv partition_encoded.bin 0x5000 --outdir ../nvs_partition_generator"); + CHECK(status == 0); + + //encrypting data from sample_multipage_blob.csv + status = system("python ../nvs_partition_generator/nvs_partition_gen.py encrypt ../nvs_partition_generator/sample_multipage_blob.csv partition_encrypted.bin 0x5000 --inputkey ../nvs_partition_generator/testdata/sample_encryption_keys.bin --outdir ../nvs_partition_generator"); + CHECK(status == 0); + + //decrypting data from partition_encrypted.bin + status = system("python ../nvs_partition_generator/nvs_partition_gen.py decrypt ../nvs_partition_generator/partition_encrypted.bin ../nvs_partition_generator/testdata/sample_encryption_keys.bin ../nvs_partition_generator/partition_decrypted.bin"); + CHECK(status == 0); + + status = system("diff ../nvs_partition_generator/partition_decrypted.bin ../nvs_partition_generator/partition_encoded.bin"); + CHECK(status == 0); + CHECK(WEXITSTATUS(status) == 0); + + + //cleaning up the temporary test data + status = system("rm -rf testdata"); + CHECK(status == 0); + +} + TEST_CASE("test nvs apis for nvs partition generator utility with encryption enabled using keygen", "[nvs_part_gen]") { int childpid = fork(); diff --git a/tools/ci/config/host-test.yml b/tools/ci/config/host-test.yml index 1a6398e22..b6ee4aa85 100644 --- a/tools/ci/config/host-test.yml +++ b/tools/ci/config/host-test.yml @@ -59,7 +59,7 @@ test_nvs_on_host: extends: .host_test_template script: - cd components/nvs_flash/test_nvs_host - - make test + - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh make test test_nvs_coverage: extends: .host_test_template