From a57aa71190b9fb6aedb0e5a04dbe6d035fb38c0f Mon Sep 17 00:00:00 2001 From: Aditya Patwardhan Date: Mon, 11 Mar 2024 16:39:52 +0530 Subject: [PATCH] feat(security): Add security_features_app example to demonstrate security features --- .../bootloader_support/src/flash_encrypt.c | 14 +- .../bootloader_support/src/secure_boot.c | 10 +- examples/security/.build-test-rules.yml | 4 + .../security_features_app/CMakeLists.txt | 8 + .../security/security_features_app/README.md | 502 ++++++++++++++++++ .../encrypted_data/README.md | 3 + .../security_features_app/main/CMakeLists.txt | 3 + .../main/Kconfig.projbuild | 18 + .../main/security_features_app_main.c | 179 +++++++ .../security_features_app/partitions.csv | 7 + .../qemu/efuse_esp32c3.hex | 35 ++ .../qemu/flash_image.bin | Bin 0 -> 4194304 bytes .../qemu/qemu_flash_args | 5 + .../security_features_app/sdkconfig.ci | 4 + .../security_features_app/sdkconfig.defaults | 31 ++ .../sdkconfig.defaults.esp32c3 | 8 + .../test/secure_jtag_token.bin | 1 + 17 files changed, 820 insertions(+), 12 deletions(-) create mode 100644 examples/security/security_features_app/CMakeLists.txt create mode 100644 examples/security/security_features_app/README.md create mode 100644 examples/security/security_features_app/encrypted_data/README.md create mode 100644 examples/security/security_features_app/main/CMakeLists.txt create mode 100644 examples/security/security_features_app/main/Kconfig.projbuild create mode 100644 examples/security/security_features_app/main/security_features_app_main.c create mode 100644 examples/security/security_features_app/partitions.csv create mode 100644 examples/security/security_features_app/qemu/efuse_esp32c3.hex create mode 100644 examples/security/security_features_app/qemu/flash_image.bin create mode 100644 examples/security/security_features_app/qemu/qemu_flash_args create mode 100644 examples/security/security_features_app/sdkconfig.ci create mode 100644 examples/security/security_features_app/sdkconfig.defaults create mode 100644 examples/security/security_features_app/sdkconfig.defaults.esp32c3 create mode 100644 examples/security/security_features_app/test/secure_jtag_token.bin diff --git a/components/bootloader_support/src/flash_encrypt.c b/components/bootloader_support/src/flash_encrypt.c index 5b37480dc2..4f568cea1c 100644 --- a/components/bootloader_support/src/flash_encrypt.c +++ b/components/bootloader_support/src/flash_encrypt.c @@ -357,23 +357,23 @@ bool esp_flash_encryption_cfg_verify_release_mode(void) ESP_LOGW(TAG, "Not disabled UART bootloader cache (set DIS_DOWNLOAD_ICACHE->1)"); } #endif - bool soft_dis_jtag = false; + bool soft_dis_jtag_complete = false; #if SOC_EFUSE_SOFT_DIS_JTAG size_t soft_dis_jtag_cnt_val = 0; esp_efuse_read_field_cnt(ESP_EFUSE_SOFT_DIS_JTAG, &soft_dis_jtag_cnt_val); - soft_dis_jtag = (soft_dis_jtag_cnt_val == ESP_EFUSE_SOFT_DIS_JTAG[0]->bit_count); - if (soft_dis_jtag) { + soft_dis_jtag_complete = (soft_dis_jtag_cnt_val == ESP_EFUSE_SOFT_DIS_JTAG[0]->bit_count); + if (soft_dis_jtag_complete) { bool hmac_key_found = false; - hmac_key_found = esp_efuse_find_purpose(ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_JTAG, NULL); - hmac_key_found |= esp_efuse_find_purpose(ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_ALL, NULL); + hmac_key_found = esp_efuse_find_purpose(ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_JTAG, NULL); + hmac_key_found |= esp_efuse_find_purpose(ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_ALL, NULL); if (!hmac_key_found) { ESP_LOGW(TAG, "SOFT_DIS_JTAG is set but HMAC key with respective purpose not found"); - soft_dis_jtag = false; + soft_dis_jtag_complete = false; } } #endif - if (!soft_dis_jtag) { + if (!soft_dis_jtag_complete) { #if SOC_EFUSE_DIS_PAD_JTAG secure = esp_efuse_read_field_bit(ESP_EFUSE_DIS_PAD_JTAG); result &= secure; diff --git a/components/bootloader_support/src/secure_boot.c b/components/bootloader_support/src/secure_boot.c index b077469e04..9df2e6278c 100644 --- a/components/bootloader_support/src/secure_boot.c +++ b/components/bootloader_support/src/secure_boot.c @@ -298,23 +298,23 @@ bool esp_secure_boot_cfg_verify_release_mode(void) } #endif - bool soft_dis_jtag = false; + bool soft_dis_jtag_complete = false; #if SOC_EFUSE_SOFT_DIS_JTAG size_t soft_dis_jtag_cnt_val = 0; esp_efuse_read_field_cnt(ESP_EFUSE_SOFT_DIS_JTAG, &soft_dis_jtag_cnt_val); - soft_dis_jtag = (soft_dis_jtag_cnt_val == ESP_EFUSE_SOFT_DIS_JTAG[0]->bit_count); - if (soft_dis_jtag) { + soft_dis_jtag_complete = (soft_dis_jtag_cnt_val == ESP_EFUSE_SOFT_DIS_JTAG[0]->bit_count); + if (soft_dis_jtag_complete) { bool hmac_key_found = false; hmac_key_found = esp_efuse_find_purpose(ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_JTAG, NULL); hmac_key_found |= esp_efuse_find_purpose(ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_ALL, NULL); if (!hmac_key_found) { ESP_LOGW(TAG, "SOFT_DIS_JTAG is set but HMAC key with respective purpose not found"); - soft_dis_jtag = false; + soft_dis_jtag_complete = false; } } #endif - if (!soft_dis_jtag) { + if (!soft_dis_jtag_complete) { #if SOC_EFUSE_HARD_DIS_JTAG secure = esp_efuse_read_field_bit(ESP_EFUSE_HARD_DIS_JTAG); result &= secure; diff --git a/examples/security/.build-test-rules.yml b/examples/security/.build-test-rules.yml index c540531f55..5313911a78 100644 --- a/examples/security/.build-test-rules.yml +++ b/examples/security/.build-test-rules.yml @@ -29,3 +29,7 @@ examples/security/nvs_encryption_hmac: - nvs_sec_provider depends_filepatterns: - examples/security/nvs_encryption_hmac/**/* + +examples/security/security_features_app: + disable: + - if: IDF_TARGET not in ["esp32c3"] diff --git a/examples/security/security_features_app/CMakeLists.txt b/examples/security/security_features_app/CMakeLists.txt new file mode 100644 index 0000000000..4a35c3aa0f --- /dev/null +++ b/examples/security/security_features_app/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(security_features_app) + +target_add_binary_data(${CMAKE_PROJECT_NAME}.elf "${CONFIG_EXAMPLE_SECURE_JTAG_TOKEN_PATH}" TEXT) diff --git a/examples/security/security_features_app/README.md b/examples/security/security_features_app/README.md new file mode 100644 index 0000000000..9272b81c22 --- /dev/null +++ b/examples/security/security_features_app/README.md @@ -0,0 +1,502 @@ +| Supported Targets | ESP32-C3 | +| ----------------- | -------- | + + +# All Secure + +This example demonstrates how to enable all of the available security features on the esp32c3 target at once. +This example shall use combination of host based python tools and firmware for enabling all the related security eFuses. +For simplicity the security features such as Secure Boot V2, Flash Encryption, NVS Encryption shall be enabled through host based python tools (e.g., espefuse). +Some additional security eFuses shall be enabled in the firmware. + +**The device that has followed all the steps mentioned below can be used for production use-cases.** + +> [!CAUTION] +> The instructions in the example directly burn eFuses and once done, it cannot be reverted. Please go through the below steps carefully before executing the example. All the steps must be followed without any changes and in the exact sequence, otherwise the device may end up in an unrecoverable state. + +### Hardware Required + +* A development board with ESP32C3 SoC +* A USB cable for power supply and programming + +**Note: The hardware is not required if you plan to run the example with help of QEMU.** + +## Pre-requisites + +### 1. Set ESPPORT +In the example, we need to use the Serial port in nearly all the commands. To make it easier, we shall set the ESPPORT environment variable at once and reuse it later. See the documentation about [Connecting the ESP device to PC](https://docs.espressif.com/projects/esp-idf/en/v5.2.1/esp32c3/get-started/establish-serial-connection.html#connect-esp32-c3-to-pc) to find out the Serial port. + +``` +export ESPPORT=/* Serial port to which esp is connected */ +``` + +
+ Setup serial port for QEMU + If you are enabling eFuses on esp32c3 emulated using QEMU then we shall set the serial port as follows: + + export ESPPORT=socket://localhost:5555 + + Please note that this value is set in correspondence with the command to start serial connection with QEMU, do not change the values. + +
+ +**Please make sure to perform this step every time when you open a new terminal to use `esptool/espefuse` commands.** + +### 2. Erase flash + +We shall erase the flash on the device to ensure a clean state. + +```idf.py -p $ESPPORT erase_flash``` + + +### 3. Install esptool +We shall require esptool utility which can be installed as follows: + +```pip install esptool``` + +### 4. Installing qemu (optional) + +If you want to enable the security features on an esp32c3 which has been virtually emulated using qemu then you need to install the necessary packages. + +The detailed instructions on how to use QEMU can be found in the [QEMU documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-guides/tools/qemu.html#qemu-emulator). + + +## Enabling Security Features + +We shall enable the necessary security features one by one as follows: + +### Enabling Secure Boot V2 +For more details about Secure Boot V2 protocol checkout the [Secure boot V2 documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/security/secure-boot-v2.html). + +Please follow below steps to enable Secure Boot V2: + + +1. Generate Signing Key + + ``` + espsecure.py generate_signing_key --version 2 --scheme rsa3072 secure_boot_signing_key.pem + ``` + +2. Generate Public Key Digest + + ``` + espsecure.py digest_sbv2_public_key --keyfile secure_boot_signing_key.pem --output digest.bin + ``` + +3. Burn the key digest in eFuse + + ``` + espefuse.py --port $ESPPORT --chip esp32c3 burn_key BLOCK_KEY0 digest.bin SECURE_BOOT_DIGEST0 + ``` + + where $ESPPORT is the serial port to which the esp32c3 chip is connected. + We have used `BLOCK_KEY0` here to store the Secure Boot V2 digest. Generally, the `BLOCK` can be a free key block from `BLOCK_KE0` to `BLOCK_KEY5`. + + +4. Enable Secure Boot V2 + + ``` + espefuse.py --port $ESPPORT --chip esp32c3 burn_efuse SECURE_BOOT_EN + ``` + +With above steps the Secure Boot V2 feature shall be enabled. The firmware build step is configured to generate signed binaries for `bootloader` and `application` by default (so there is no need to manually sign). +The necessary `security eFuses` are yet to be burned. They shall be burned by the application when first launched. + +#### Use multiple Secure Boot V2 signing keys +**It is recommended to use multiple secure boot v2 signing keys**. + +When the application is built (later in the workflow) the `bootloader` and `application` shall only be signed with the first key. To sign it with multiple keys, please follow below additional steps: + +- Repeat `Step 1` to `Step 3` for `secure_boot_signing_key_2.pem` and `secure_boot_signing_key_3.pem` respectively. +- Sign it with remaining two keys by executing following commands for `secure_boot_signing_key_2.pem` and `secure_boot_signing_key_3.pem` respectively: + + ``` + espsecure.py sign_data --version 2 --keyfile /* Signing key placeholder */ --output bootloader-signed.bin build/bootloader/bootloader.bin + + espsecure.py sign_data --version 2 --keyfile /* Signing key placeholder */ --output my-app-signed.bin build/security_features.bin + ``` + + +### Enabling Flash Encryption + +Details about the Flash Encryption protocol can be found at the [Flash Encryption documentation](https://docs.espressif.com/projects/esp-idf/en/stable/esp32c3/security/flash-encryption.html) +The indicates the status of Flash Encryption feature for the chip. The example also demonstrates writing and reading encrypted partitions in flash. + +Please follow below steps to enable Flash Encryption: + +1. Generate Flash Encryption keys + + ``` + espsecure.py generate_flash_encryption_key my_flash_encryption_key.bin + ``` + + Note: It is recommended to ensure that the RNG used by host machine to generate the flash encryption key has good entropy + +2. Burn Flash Encryption keys + + ``` + espefuse.py --port $ESPPORT burn_key BLOCK_KEY1 my_flash_encryption_key.bin XTS_AES_128_KEY + ``` + + We have used `BLOCK_KEY1` here to store the Flash Encryption key. Generally, the `BLOCK` can be a free key block from `BLOCK_KE0` to `BLOCK_KEY4`. + +3. Enable Flash Encryption + + ``` + espefuse.py --port $ESPPORT --chip esp32c3 burn_efuse SPI_BOOT_CRYPT_CNT 7 + ``` + +At this point the Flash Encryption feature is enabled for the device. The necessary `security eFuses` shall be enabled by the `security_features` firmware. + +#### Encrypting the partitions +After the application is built (Later in the workflow), all partitions that need encryption can be encrypted with the following command: + +``` +espsecure.py encrypt_flash_data --aes_xts --keyfile my_flash_encryption_key.bin --address /* Placeholder for partition offset */ --output /* Placeholder for Output File */ /* Placeholder for File to encrypt */ +``` + +The bootloader offset for esp32c3 is `0x0`. The partition table offset for the example has been set to `0xD000` which can be changed through menuconfig. The partition offset for other partitions can be obtained by running ```idf.py partition-table``` + +For this example we need to encrypt only the following 3 partitions: `bootloader.bin`, `partition-table.bin`, `security_features.bin`. + +It can be done with following commands: + +``` +espsecure.py encrypt_flash_data --aes_xts --keyfile my_flash_encryption_key.bin --address 0x0 --output encrypted_data/bootloader-enc.bin build/bootloader/bootloader.bin + +espsecure.py encrypt_flash_data --aes_xts --keyfile my_flash_encryption_key.bin --address 0xD000 --output encrypted_data/partition-table-enc.bin build/partition_table/partition-table.bin + +espsecure.py encrypt_flash_data --aes_xts --keyfile my_flash_encryption_key.bin --address 0x20000 --output encrypted_data/security_features-enc.bin build/security_features_app.bin +``` + +Please refer to [Encrypted Partition](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/security/flash-encryption.html#encrypted-partitions) to check which partitions must be encrypted by default. + +### Enabling NVS Encryption + +We shall use the `HMAC based NVS encryption scheme`, Please find more details in the [NVS encryption documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/storage/nvs_encryption.html#nvs-encryption-hmac-peripheral-based-scheme) + +For generation of NVS encryption keys and NVS partition, we shall use [NVS partition generator](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/storage/nvs_partition_gen.html#nvs-partition-generator-utility) +We shall use the [nvs_partition_gen.py](../../../components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py) script for the operations. + +1. Generate HMAC key and NVS encryption key + + ``` + python3 $IDF_PATH/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py generate-key --keyfile nvs_encr_key.bin --key_protect_hmac --kp_hmac_keygen --kp_hmac_keyfile hmac_key.bin + ``` +2. Burn the HMAC key in eFuse + + ``` + espefuse.py --port $ESPPORT burn_key BLOCK_KEY2 keys/hmac_key.bin HMAC_UP + ``` + + We have used `BLOCK_KEY2` here to store the HMAC key. Generally, `BLOCK` can be a free keyblock between `BLOCK_KEY0` and `BLOCK_KEY5`. + + If you want to change the value of the eFuse key block for this example, make sure to update the same value in `menuconfig → Component config → NVS Security Provider → eFuse key ID storing the HMAC key`. + +3. Generate encrypted NVS partition. + + If you dont want to put external data in the NVS partition then you may skip this step. + See [Generating NVS partition](https://docs.espressif.com/projects/esp-idf/en/stable/esp32c3/api-reference/storage/nvs_partition_gen.html#generate-encrypted-nvs-partition) for detailed information on generating the encrypted NVS partition. + Execute following command to generate the encrypted NVS partition. + + ``` + python3 nvs_partition_gen.py encrypt /* CSV placeholder */ nvs_encr_partition.bin /* NVS partition offset */ --inputkey keys/nvs_encr_key.bin + ``` + * `CSV placeholder`: CSV file which contains data of the NVS partition. See [CSV file format](https://docs.espressif.com/projects/esp-idf/en/stable/esp32c3/api-reference/storage/nvs_partition_gen.html#csv-file-format) for more details. + * `NVS partition offset`: NVS partition offset. Can be found out by executing `idf.py partition-table` + +4. This shall generate `nvs_encr_partition.bin` which we shall flash later at the [Flash stage](README.md#flash) of the workflow. + +### Enabling Secure JTAG Return Material Access (RMA) + +The target provides an ability to disable JTAG access in the device for the software. Which can be re-enabled in future after authentication using a unique token generated beforehand. This way the module can be opened up by bypassing security features after authentication for debugging purposes after it has returned back to the manufacturer due to some issue. This way when a security wise locked device comes back to the ODM/OEM due to some issue, the module can be opened up by bypassing security features after successful authentication. + +1. Generate the HMAC key + + ``` + python3 ../hmac_soft_jtag/jtag_example_helper.py generate_hmac_key secure_jtag_hmac_key.bin + ``` + This key needs to be stored at a secure place in order to re-generate the secure token afterwards. + +2. Generate the secure token + + ``` + python3 ../hmac_soft_jtag/jtag_example_helper.py generate_token secure_jtag_hmac_key.bin secure_jtag_token.bin + ``` + + The example directly consumes this token data and re-enables the software disabled JTAG interface. The re-enablement can be tested by attempting a JTAG connection with the device after JTAG is enabled by the firmware. More details about JTAG debugging can be found [here](https://docs.espressif.com/projects/esp-idf/en/stable/esp32c3/api-guides/jtag-debugging/index.html) + If this is not generated, the example uses a test-only token which is present in the folder. + +3. Burn the key in the eFuse + + ``` + espefuse.py --port $ESPPORT --chip esp32c3 burn_key BLOCK_KEY3 secure_jtag_hmac_key.bin HMAC_DOWN_JTAG + ``` + + We have used `BLOCK_KEY3` here to store the HMAC key. Generally, `BLOCK` can be a free keyblock between `BLOCK_KEY0` and `BLOCK_KEY5`. + +4. Disable software access for JTAG + + ``` + espefuse.py --port $ESPPORT burn_efuse SOFT_DIS_JTAG 7 + ``` + After this the JTAG cannot be accessed before it is re-enabled through software with correct token. + +5. Configuring appropriate JTAG interface + + By default esp32c3 is set to use the [built-in JTAG interface](https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/api-guides/jtag-debugging/configure-builtin-jtag.html). Please follow the steps given [here](https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32c3/api-guides/jtag-debugging/configure-other-jtag.html) to configure the alternative JTAG interface. + Please note that JTAG configuration cannot be done once the application firmware is flashed on the device. + +## Build + +### Set the target + +The target can be set with following command: + +``` +idf.py set-target esp32c3 +``` + +### Build the example + +The example can be built with following command + +``` +idf.py build +``` + +### Secure Boot V2 signing +The example is configured to build the signed binaries for the `bootloader.bin` and `security_features.bin` (application). +These shall be signed with the first secure boot key. + +If you want to use multiple Secure Boot V2 signing keys for the image then please perform the step of [Signing with multiple Secure Boot V2 keys](README.md#use-multiple-secure-boot-v2-signing-keys). + +### Encrypting partitions + +At this point, we shall encrypt all the necessary partitions. Please perform [Encrypting the partitions](README.md#encrypting-the-partitions) step to do the same. + + +## Flash +At this point we shall have all the necessary partitions which are ready to flash. + +The offsets at which the partitions need to be flashed can be found out by executing `idf.py partition-table`. + +The partitions can be flashed with help of the `esptool` utility. + +``` +esptool.py -p $ESPPORT write_flash /* Placeholder for offset */ /* Placeholder for file name */ +``` +Along with these, esptool command may need some additional options. +Please check the output of `idf.py build` command executed earlier for all the necessary options that need to be provided with esptool. + +For this example the following command can be used +``` +esptool.py --chip esp32c3 -b 115200 --before default_reset --after no_reset --no-stub -p $ESPPORT write_flash 0x0 encrypted_data/bootloader-enc.bin 0xd000 encrypted_data/partition-table-enc.bin 0x20000 encrypted_data/security_features-enc.bin --force +``` + +
+ Generate flash image for qemu +In case of qemu the flash image can be generated with help of the following command: + +``` +esptool.py --chip esp32c3 merge_bin --fill-flash-size 4MB -o qemu/security_features_flash_image.bin @qemu/qemu_flash_args +``` +The same file shall be used by the command to execute the image on qemu. + +
+ +## Monitor the output + +Run the monitor tool to view serial output + +``` +idf.py -p $ESPPORT monitor +``` + +## Example Output + +On the first boot-up, there would be prints about firmware not being secure. Please ignore the prints as we shall enable all necessary security eFuses in our application. On the Second boot onwards, you shall not see any such prints. + +### ROM bootloader verifying software bootloader. +``` +ESP-ROM:esp32c3-api1-20210207 +Build:Feb 7 2021 +rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT) +SPIWP:0xee +mode:DIO, clock div:1 +Valid secure boot key blocks: 0 +secure boot verification succeeded +load:0x3fcd5990,len:0x3b94 +load:0x403cc710,len:0xb9c +load:0x403ce710,len:0x5ba8 +entry 0x403cc71a +``` +#### Early logs for Secure Boot V2 and Flash Encryption + +``` +I (101) esp_image: Verifying image signature... +I (106) secure_boot_v2: Verifying with RSA-PSS... +I (107) secure_boot_v2: Signature verified successfully! +I (108) boot: Loaded app from partition at offset 0x20000 +I (109) secure_boot_v2: enabling secure boot v2... +I (109) secure_boot_v2: secure boot v2 is already enabled, continuing.. +I (110) boot: Checking flash encryption... +I (110) flash_encrypt: flash encryption is enabled (0 plaintext flashes left) +I (111) boot: Disabling RNG early entropy source... +``` +#### Flash Encryption warning on first boot (should be ignored) + +``` +W (156) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header. +E (157) flash_encrypt: Flash encryption settings error: app is configured for RELEASE but efuses are set for DEVELOPMENT +E (160) flash_encrypt: Mismatch found in security options in bootloader menuconfig and efuse settings. Device is not secure. +``` + +#### Unused Secure Boot V2 Digests getting revoked +``` +I (162) efuse: Batch mode of writing fields is enabled +W (163) secure_boot: Unused SECURE_BOOT_DIGEST1 should be revoked. Fixing.. +W (164) secure_boot: Unused SECURE_BOOT_DIGEST2 should be revoked. Fixing.. +I (165) efuse: BURN BLOCK0 +I (175) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (177) efuse: Batch mode. Prepared fields are committed +I (177) secure_boot: Fixed +I (179) efuse: BURN BLOCK0 +I (189) efuse: BURN BLOCK0 - OK (all write block bits are set) +``` + +#### Enablement of relevant security eFuses +``` +W (199) flash_encrypt: Not disabled UART bootloader encryption (set DIS_DOWNLOAD_MANUAL_ENCRYPT->1) +W (199) flash_encrypt: Not disabled UART bootloader cache (set DIS_DOWNLOAD_ICACHE->1) +W (199) flash_encrypt: Not disabled JTAG PADs (set DIS_PAD_JTAG->1) +W (199) flash_encrypt: Not disabled USB JTAG (set DIS_USB_JTAG->1) +W (199) flash_encrypt: Not disabled direct boot mode (set DIS_DIRECT_BOOT->1) +W (199) flash_encrypt: Not write-protected DIS_ICACHE (set WR_DIS_DIS_ICACHE->1) +I (199) flash_encrypt: Disable UART bootloader encryption... +I (199) efuse: BURN BLOCK0 +I (209) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (219) flash_encrypt: Disable UART bootloader cache... +I (219) efuse: BURN BLOCK0 +I (229) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (229) flash_encrypt: Disable JTAG... +I (229) efuse: BURN BLOCK0 +I (239) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (249) efuse: BURN BLOCK0 +I (249) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (259) efuse: BURN BLOCK0 +I (269) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (269) efuse: BURN BLOCK0 +I (279) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (289) efuse: BURN BLOCK0 +I (299) efuse: BURN BLOCK0 - OK (all write block bits are set) +W (299) secure_boot: Not disabled JTAG in the soft way (set SOFT_DIS_JTAG->max) +W (299) secure_boot: Not enabled AGGRESSIVE KEY REVOKE (set SECURE_BOOT_AGGRESSIVE_REVOKE->1) +I (299) secure_boot: Enabling Security download mode... +I (299) secure_boot: Disable hardware & software JTAG... +I (299) efuse: BURN BLOCK0 +I (309) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (319) efuse: BURN BLOCK0 +I (329) efuse: BURN BLOCK0 - OK (all write block bits are set) +I (329) secure_boot: Prevent read disabling of additional efuses... +``` + +#### Final status of Secure Boot V2 and Flash Encryption + +``` +I (329) security_features_app: Flash Encryption is enabled in Release Mode +I (329) security_features_app: Secure Boot is enabled in Release Mode +``` + +#### Flash Encryption demo + +``` +Erasing partition "storage" (0x1000 bytes) +Writing data with esp_partition_write: +I (339) security_features_app: 0x3fc8fa40 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |................| +I (339) security_features_app: 0x3fc8fa50 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f |................| +Reading with esp_partition_read: +I (339) security_features_app: 0x3fc8fa60 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f |................| +I (339) security_features_app: 0x3fc8fa70 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f |................| +Reading with esp_flash_read: +I (339) security_features_app: 0x3fc8fa60 b3 e8 57 98 45 1f 33 de 71 30 71 9b 48 a2 d7 71 |..W.E.3.q0q.H..q| +I (339) security_features_app: 0x3fc8fa70 28 fd fb 54 39 fb 4f 47 be cd 7a e1 55 70 09 6d |(..T9.OG..z.Up.m| +``` + +#### NVS encryption + +These logs show that, the initialisation of the encrypted NVS partitions is successful. +``` +I (349) nvs: NVS partition "nvs" is encrypted. +I (359) security_features_app: NVS partition "custom_nvs" is encrypted. +``` + +## Enable Security Features with help of QEMU + +Espressif fork of [QEMU](https://github.com/espressif/qemu) offers the ability to emulate `esp32c3` target on the host machine with help of `QEMU`. That way all of the above security features can be enabled on the esp32c3 that is emulated on the host machine. A major advantage of this is that no hardware is lost while trying out the security features. + +Below are the commands that can be used to to emulate the esp32c3 device on host machine. + +### Configure eFuse for QEMU + +1. Generate the qemu eFuse file: +A hex file containing the eFuse configuration of ESP32C3 v0.3 (ECO3) has been kept in the same folder. This file can be used to generate the qemu eFuse binary with help of following command. + + ``` + xxd -r -p qemu/efuse_esp32c3.hex qemu/efuse_esp32c3.bin + ``` + +2. Setup serial connection to interact with QEMU + + The below command shall enable a serial connection to the esp32c3 emulated using qemu. The `espefuse` utility when invoked in other terminal can interact with this for performing eFuse related operations. + + + ``` + qemu-system-riscv32 -nographic \ + -machine esp32c3 \ + -drive file=qemu/flash_image.bin,if=mtd,format=raw \ + -global driver=esp32c3.gpio,property=strap_mode,value=0x02 \ + -drive file=qemu/efuse_esp32c3.bin,if=none,format=raw,id=efuse \ + -global driver=nvram.esp32c3.efuse,property=drive,value=efuse \ + -serial tcp::5555,server,nowait + ``` + + This command shall start a serial connection with QEMU. Keep this running in one terminal and execute espefuse commands in an alternate terminal. + + After espefuse commands are used to update the eFuses of the emulated esp the eFuse file generated in *Step 1* shall get ovwewritten. To revert to the original state, execute the command provided in *Step 1* once again. + + +3. Execute the commands to enable security features + + At this point you can execute all the commands mentioned above for [enabling security features](README.md#enabling-security-features). Please keep the above qemu instance running in one terminal and execute all `esptool/espefuse` related commands in a different terminal. + + **For qemu, `before=no_reset` option needs to be provided additionally to every espefuse command. Please make sure you add this just after `-p $ESPPORT` in the command** + + After all the `esptool/espefuse` operations are completed you can close this terminal by pressing `q + Enter` in the same terminal. + +4. Build the example + + Perform the [Build](README.md#build) step and all necessary substeps (e.g. encrypting partition). Please make sure the file names of newly generated files and their locations in the commands are not changed. + +5. Build qemu image + + The qemu image can be built with following command + + ``` + esptool.py --chip esp32c3 merge_bin --fill-flash-size 4MB -o qemu/security_features_flash_image.bin @qemu/qemu_flash_args + ``` + +### Run example on QEMU + +The following command can be used to run example on qemu + +``` +qemu-system-riscv32 -nographic \ + -machine esp32c3 \ + -drive file=qemu/security_features_flash_image.bin,if=mtd,format=raw \ + -drive file=qemu/efuse_esp32c3.bin,if=none,format=raw,id=efuse \ + -global driver=nvram.esp32c3.efuse,property=drive,value=efuse \ + -serial mon:stdio +``` + +The qemu session can be closed by pressing `CTRL+ a` and then immediately pressing `x`. diff --git a/examples/security/security_features_app/encrypted_data/README.md b/examples/security/security_features_app/encrypted_data/README.md new file mode 100644 index 0000000000..466196d14c --- /dev/null +++ b/examples/security/security_features_app/encrypted_data/README.md @@ -0,0 +1,3 @@ +# Encrypted data + +This folder shall contain the encrypted files generated with the command. diff --git a/examples/security/security_features_app/main/CMakeLists.txt b/examples/security/security_features_app/main/CMakeLists.txt new file mode 100644 index 0000000000..c9b76807b0 --- /dev/null +++ b/examples/security/security_features_app/main/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRCS "security_features_app_main.c" + INCLUDE_DIRS "." + REQUIRED_IDF_TARGETS esp32c3) diff --git a/examples/security/security_features_app/main/Kconfig.projbuild b/examples/security/security_features_app/main/Kconfig.projbuild new file mode 100644 index 0000000000..5f6cf77e15 --- /dev/null +++ b/examples/security/security_features_app/main/Kconfig.projbuild @@ -0,0 +1,18 @@ +menu "Example Configuration" + + config EXAMPLE_JTAG_REENABLE_EFUSE_BLOCK + int "JTAG Re-enable efuse key id" + default 3 + range 0 5 + help + The value of the eFuse key id in which the HMAC key is stored for the JTAG re-enablement. + The example readily assumes that the respective hmac key is burned in the eFuse at this value + + config EXAMPLE_SECURE_JTAG_TOKEN_PATH + string "Secure JTAG token path" + default "secure_jtag_token.bin" + help + The path to the binary file containing the token to re-enable JTAG. + This path is relative to the root directory of the example project. + +endmenu diff --git a/examples/security/security_features_app/main/security_features_app_main.c b/examples/security/security_features_app/main/security_features_app_main.c new file mode 100644 index 0000000000..59876fc787 --- /dev/null +++ b/examples/security/security_features_app/main/security_features_app_main.c @@ -0,0 +1,179 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ +/* Flash encryption Example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "soc/efuse_reg.h" +#include "esp_efuse.h" +#include "esp_chip_info.h" +#include "esp_flash.h" +#include "esp_partition.h" +#include "esp_flash_encrypt.h" +#include "esp_efuse_table.h" +#include "esp_secure_boot.h" +#include "nvs_flash.h" +#include "nvs_sec_provider.h" +#include "inttypes.h" + +static const char* TAG = "security_features_app"; + +#define CUSTOM_NVS_PART_NAME "custom_nvs" + +extern const uint8_t secure_jtag_token_start[] asm("_binary_secure_jtag_token_bin_start"); +extern const uint8_t secure_jtag_token_end[] asm("_binary_secure_jtag_token_bin_end"); + +#define SECURE_JTAG_TOKEN_LENGTH 32 + +static void example_read_write_flash(void) +{ + const esp_partition_t* partition = esp_partition_find_first( + ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "storage"); + assert(partition); + + printf("Erasing partition \"%s\" (0x%" PRIx32 " bytes)\n", partition->label, partition->size); + + ESP_ERROR_CHECK(esp_partition_erase_range(partition, 0, partition->size)); + + /* Generate the data which will be written */ + const size_t data_size = 32; + uint8_t plaintext_data[data_size]; + for (uint8_t i = 0; i < data_size; ++i) { + plaintext_data[i] = i; + } + + printf("Writing data with esp_partition_write:\n"); + ESP_LOG_BUFFER_HEXDUMP(TAG, plaintext_data, data_size, ESP_LOG_INFO); + ESP_ERROR_CHECK(esp_partition_write(partition, 0, plaintext_data, data_size)); + + uint8_t read_data[data_size]; + printf("Reading with esp_partition_read:\n"); + ESP_ERROR_CHECK(esp_partition_read(partition, 0, read_data, data_size)); + ESP_LOG_BUFFER_HEXDUMP(TAG, read_data, data_size, ESP_LOG_INFO); + + printf("Reading with esp_flash_read:\n"); + ESP_ERROR_CHECK(esp_flash_read(NULL, read_data, partition->address, data_size)); + ESP_LOG_BUFFER_HEXDUMP(TAG, read_data, data_size, ESP_LOG_INFO); +} + +static esp_err_t example_custom_nvs_part_init(const char *name) +{ +#if CONFIG_NVS_ENCRYPTION + esp_err_t ret = ESP_FAIL; + nvs_sec_cfg_t cfg = {}; + nvs_sec_scheme_t *sec_scheme_handle = NULL; + nvs_sec_config_hmac_t sec_scheme_cfg = NVS_SEC_PROVIDER_CFG_HMAC_DEFAULT(); + ret = nvs_sec_provider_register_hmac(&sec_scheme_cfg, &sec_scheme_handle); + if (ret != ESP_OK) { + return ret; + } + + ret = nvs_flash_read_security_cfg_v2(sec_scheme_handle, &cfg); + if (ret != ESP_OK) { + /* We shall not generate keys here as that must have been done in default NVS partition initialization case */ + ESP_LOGE(TAG, "Failed to read NVS security cfg: [0x%02X] (%s)", ret, esp_err_to_name(ret)); + return ret; + } + + ret = nvs_flash_secure_init_partition(name, &cfg); + if (ret == ESP_OK) { + ESP_LOGI(TAG, "NVS partition \"%s\" is encrypted.", name); + } + return ret; +#else + return nvs_flash_init_partition(name); +#endif +} + +void app_main(void) +{ + bool restart_required = false; + bool sb_release_mode = esp_secure_boot_cfg_verify_release_mode(); + if (!sb_release_mode) { + restart_required = true; + ESP_LOGI(TAG, "Secure Boot V2 not in Release mode\nSetting Release mode..."); + esp_efuse_batch_write_begin(); + if (esp_secure_boot_enable_secure_features() == ESP_OK) { + esp_efuse_batch_write_commit(); + sb_release_mode = esp_secure_boot_cfg_verify_release_mode(); + } else { + esp_efuse_batch_write_cancel(); + } + + if (!sb_release_mode) { + ESP_LOGE(TAG, "Failed to set Secure Boot V2 to Release mode"); + } + } + + bool fe_release_mode = esp_flash_encryption_cfg_verify_release_mode(); + if (!fe_release_mode) { + restart_required = true; + ESP_LOGI(TAG, "Flash encryption not in Release mode\nSetting Release mode..."); + esp_flash_encryption_set_release_mode(); + fe_release_mode = esp_flash_encryption_cfg_verify_release_mode(); + if (!fe_release_mode) { + ESP_LOGE(TAG, "Failed to set Flash Encryption to Release mode"); + } + } + + if (restart_required) { + ESP_LOGI(TAG, "Restarting now"); + esp_restart(); + } + + if (fe_release_mode) { + ESP_LOGI(TAG, "Flash Encryption is enabled in Release Mode"); + } else { + ESP_LOGE(TAG, "Flash Encryption is not enabled in Release mode"); + } + + if (sb_release_mode) { + ESP_LOGI(TAG, "Secure Boot is enabled in Release Mode"); + } else { + ESP_LOGE(TAG, "Secure Boot is not enabled in Release mode"); + } + + example_read_write_flash(); + /* Initialize the default NVS partition */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + /* Initialize the custom NVS partition */ + ret = example_custom_nvs_part_init(CUSTOM_NVS_PART_NAME); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase_partition(CUSTOM_NVS_PART_NAME)); + ret = example_custom_nvs_part_init(CUSTOM_NVS_PART_NAME); + } + ESP_ERROR_CHECK(ret); + ESP_LOGI(TAG, "JTAG Status: Not enabled"); + ESP_LOGI(TAG, "Enabling in .."); + for (int i = 0; i < 5; i++) { + ESP_LOGI(TAG, "%d...", i); + vTaskDelay(1 / portTICK_PERIOD_MS); + } + ESP_LOGI(TAG, "Enabling JTAG"); + size_t secure_jtag_token_length = strlen((const char *)secure_jtag_token_start); + if (secure_jtag_token_length != SECURE_JTAG_TOKEN_LENGTH) { + ESP_LOGE(TAG, "Invalid JTAG token length %d, should be %d", secure_jtag_token_length, SECURE_JTAG_TOKEN_LENGTH); + } + ret = esp_hmac_jtag_enable(CONFIG_EXAMPLE_JTAG_REENABLE_EFUSE_BLOCK, secure_jtag_token_start); + if (ret != ESP_OK) { + ESP_LOGE(TAG, "Failed to enable JTAG"); + } + +} diff --git a/examples/security/security_features_app/partitions.csv b/examples/security/security_features_app/partitions.csv new file mode 100644 index 0000000000..c29eb4ecb1 --- /dev/null +++ b/examples/security/security_features_app/partitions.csv @@ -0,0 +1,7 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, , 0x6000, +# Extra partition to demonstrate reading/writing of encrypted flash +storage, data, 0xff, , 0x1000, encrypted +factory, app, factory, , 1M, +# Custom NVS data partition +custom_nvs, data, nvs, , 0x6000, diff --git a/examples/security/security_features_app/qemu/efuse_esp32c3.hex b/examples/security/security_features_app/qemu/efuse_esp32c3.hex new file mode 100644 index 0000000000..4435ec5c83 --- /dev/null +++ b/examples/security/security_features_app/qemu/efuse_esp32c3.hex @@ -0,0 +1,35 @@ +000000000000000000000000000000000000000000000000000000000000 +00000000000000000c000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000 +00000000 diff --git a/examples/security/security_features_app/qemu/flash_image.bin b/examples/security/security_features_app/qemu/flash_image.bin new file mode 100644 index 0000000000000000000000000000000000000000..a1bc830d88921aed3de834e3411ecfc97be4b1cf GIT binary patch literal 4194304 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0{_tt9SZ;e000c~w;sj5Ldbvt0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 TV8DO@0|pEjFkrxd0R#I$dTxqV literal 0 HcmV?d00001 diff --git a/examples/security/security_features_app/qemu/qemu_flash_args b/examples/security/security_features_app/qemu/qemu_flash_args new file mode 100644 index 0000000000..c587939fe2 --- /dev/null +++ b/examples/security/security_features_app/qemu/qemu_flash_args @@ -0,0 +1,5 @@ +--flash_mode dio --flash_freq 80m --flash_size keep + +0x0 encrypted_data/bootloader-enc.bin +0x20000 encrypted_data/security_features-enc.bin +0xd000 encrypted_data/partition-table-enc.bin diff --git a/examples/security/security_features_app/sdkconfig.ci b/examples/security/security_features_app/sdkconfig.ci new file mode 100644 index 0000000000..676e16ab77 --- /dev/null +++ b/examples/security/security_features_app/sdkconfig.ci @@ -0,0 +1,4 @@ +# This file uses insecure configurations for testing purpose +# Do not use this configurations for you project +CONFIG_SECURE_BOOT_SIGNING_KEY="test/test_secure_boot_signing_key.pem" +CONFIG_EXAMPLE_SECURE_JTAG_TOKEN_PATH="test/secure_jtag_token.bin" diff --git a/examples/security/security_features_app/sdkconfig.defaults b/examples/security/security_features_app/sdkconfig.defaults new file mode 100644 index 0000000000..32987b85f3 --- /dev/null +++ b/examples/security/security_features_app/sdkconfig.defaults @@ -0,0 +1,31 @@ +# This example uses an extra partition to demonstrate encrypted/non-encrypted reads/writes. +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_OFFSET=0xD000 + +# Secure Boot V2 +CONFIG_SECURE_SIGNED_ON_BOOT=y +CONFIG_SECURE_SIGNED_ON_UPDATE=y +CONFIG_SECURE_SIGNED_APPS=y +CONFIG_SECURE_BOOT_V2_RSA_ENABLED=y +CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME=y +CONFIG_SECURE_BOOT=y +CONFIG_SECURE_BOOT_V2_ENABLED=y +CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES=y +CONFIG_SECURE_BOOT_SIGNING_KEY="secure_boot_signing_key.pem" + +CONFIG_SECURE_BOOT_FLASH_BOOTLOADER_DEFAULT=y + +# Please note that this does not make the device insecure as JTAG shall be soft disabled with instructions from README along + +CONFIG_SECURE_BOOT_INSECURE=y +CONFIG_SECURE_BOOT_ALLOW_JTAG=y + +# Flash Encryption +CONFIG_SECURE_FLASH_ENC_ENABLED=y +CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE=y +CONFIG_SECURE_FLASH_ENCRYPT_ONLY_IMAGE_LEN_IN_APP_PART=y +CONFIG_SECURE_FLASH_CHECK_ENC_EN_IN_APP=y +CONFIG_SECURE_ROM_DL_MODE_ENABLED=y +CONFIG_SECURE_ENABLE_SECURE_ROM_DL_MODE=y diff --git a/examples/security/security_features_app/sdkconfig.defaults.esp32c3 b/examples/security/security_features_app/sdkconfig.defaults.esp32c3 new file mode 100644 index 0000000000..ca0101a317 --- /dev/null +++ b/examples/security/security_features_app/sdkconfig.defaults.esp32c3 @@ -0,0 +1,8 @@ + +CONFIG_SECURE_BOOT_ENABLE_AGGRESSIVE_KEY_REVOKE=y + + +# NVS encryption +CONFIG_NVS_ENCRYPTION=y +CONFIG_NVS_SEC_KEY_PROTECT_USING_HMAC=y +CONFIG_NVS_SEC_HMAC_EFUSE_KEY_ID=2 diff --git a/examples/security/security_features_app/test/secure_jtag_token.bin b/examples/security/security_features_app/test/secure_jtag_token.bin new file mode 100644 index 0000000000..e547179e74 --- /dev/null +++ b/examples/security/security_features_app/test/secure_jtag_token.bin @@ -0,0 +1 @@ + {qػa768Lpg {qػa768LpgŔ1㏉a>z(̍Q \ No newline at end of file