preencrypted fixed

This commit is contained in:
ok-home
2023-10-05 20:13:29 +07:00
parent b7ac0eb7e2
commit 9522219d5b
3 changed files with 99 additions and 85 deletions

View File

@@ -1,3 +1,3 @@
2023-10-04 18:54:18,808 - Debug Adapter (main) - CRITICAL - Debug adapter -> Extension: DEBUG_ADAPTER_STARTED
2023-10-04 18:54:18,809 - Debug Adapter (main) - CRITICAL - Debug adapter -> Extension: DEBUG_ADAPTER_READY2CONNECT
2023-10-04 18:57:36,086 - Debug Adapter (main) - CRITICAL - Debug adapter -> Extension: DEBUG_ADAPTER_STOPPED
2023-10-05 19:44:46,943 - Debug Adapter (main) - CRITICAL - Debug adapter -> Extension: DEBUG_ADAPTER_STARTED
2023-10-05 19:44:46,944 - Debug Adapter (main) - CRITICAL - Debug adapter -> Extension: DEBUG_ADAPTER_READY2CONNECT
2023-10-05 19:45:24,371 - Debug Adapter (main) - CRITICAL - Debug adapter -> Extension: DEBUG_ADAPTER_STOPPED

View File

@@ -1,40 +1,40 @@
-----BEGIN PRIVATE KEY-----
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
JOa1q528gpwjG6xzEfw1bUI=
MIIG/gIBADANBgkqhkiG9w0BAQEFAASCBugwggbkAgEAAoIBgQDFmskeWxaJtPCV
Xydauqm6Q/wW9D0ewNUo+L9sopGz/Lrw5JdynLQDcxcioqpow5Nr9A8y8+YJc9zH
sMs4qJYDLcxROeimGlPqtrj4OxFXDyok12fxDquYTXaJzTAM+rp/i/VJJVKonYU0
DOuG8tX1lsrlfkwYixaoPUGL/WuG1srHay5NKCcXjYVUKsjHkfEgfKAhF/6cPTj6
yeKH6nNQQofOYUN5hkGgT19ek3or0dYph9r3VozyjV12/D1K+o0Vl+LQc7IX3xxN
DB9s3aGVIMglir8AY2ZjkqRyJRzbIrjufXYxw/e6uP2YQyBagEBWlsEhxKVsVOvi
O5fHfw+Svd9vgO3PRIA9bDh2isO6SHis6akgWBsXNh/FS1Kyl1IrBt+CnIsgQRzz
po7hh/TfU6VCKXL5fZR+fK6Ze12MP+B30HEXrW+VhzvhCMWjbyFIYJ1jGfd5N/zD
3E26cQPn711M+13cbKJeSWU0aX9dwQxPSXJdytORijxlFfUIAmsCAwEAAQKCAYA4
3/9JJHCNPC4O4C9klttpSE4TkULSSjBQNaBrNTN4uaJY2YKZs27Am2yqRGWF99zD
sqB5SugICngeZc1oRmW/DnyDWIaU4HkM0oDUubOY+j1oEzPQlydek9Utfoh5A+WP
9omn/v0WmRgQzjMwSU65/Cfz+/ENE2N3EwJ9t3gufD4rPbc67/aoecxJWHMnteLQ
Ne6k99IJyDlRPbBc7Gc6T5vlE+um27Sh3paVkx8T47afh4HHtPqmiXfAWoONxCU7
YXXWfIo4qB80it77QHtHdAgXxEZGug2WsDakf1bC/veZ0Qm4OkfkYzFF3DhRXTia
sffXdP6z+/nB+WG0k/qIqo5BweW3aOb+pyXATGTNVsRp98cxS6GpyZb3yUDnfiLL
vKzzMwPPJyA2X1cDVUrwTETg9jRB/UDTsYLjedar2FRkVI46lPZtvdqHLx5+UpDs
CEAooRaOi10LB52zhqhyKpy2VtsHXuhOLrGlj8R5DPGqzB9ZjlOLqsIxzXgT1+kC
gcEAzDxdkbY7xj1Q7HKOVQiRr45xijkL6kleglmBFt0DqFMETYzb4Y7xDEdU82H0
XBlOnQIc6GD4PBGQDGGURSkQya7aSEWfIIRG3PCTCzSJhghPK+olFz5+39x/QUSm
zTY9rjIzAXu/VBSnFK+bL2A+etJOQFOrhfGESbWHsbuqPbigU5q9eCAcQs/GBI1F
x1ckjRCkUxpNS1jP92GWpIPVQQYd8IFwLfcA6nJq8UoXpIZazYfqeOOyN47ns7ho
TRhfAoHBAPewKcmEfikaTExIQKckN7rpfMJRmp3oWsq18AF6nywVYylhJPFo74Tw
6P/lsFJqjgCbN2bbMuw7vCq2a36tBy1rRFaNtRNjl8XjO3XP5RZG5Z9lUFA7Gvf+
pY8qUIWzBWXVi/KugpAwNvy7rgYoqKZyUFOrm/4ehCz7uGD5OmpucEVPvOQIDYPe
cqF27iLXYiTJv20ASVnpmoF5XJaztQa2O9VSupTgxNGXi+iUz+azrIeUviTbOgZP
H5flbfyBdQKBwQCV4WsNhv3g4pijnQIlFy/K9S8PsAO1gPhxknuwqquHeLz8qHWo
1zzAtQx7vBQXDp9pi+ZpBtjFRGJBI88q3hMq3z3jsewwccKLW6WdoIWYLjrj0GY9
46g6Ytekr1v112t2jfJukUD81Fc1UBYDs47GldXFUWHb3z0k1qppXX524yoNkM6g
/Heg9FeueXqO6r2xJFhjgDbfJ6MfOafSvcjfejy4hlUr9kvewe8HekdVfx/eG3OQ
GhFswlv5wUgR4+MCgcBaOJEAFoLd9fZU0vy55TdnniUToyXu3vQzYpJJ96CDLkcw
i3IpfU/B3P8CN2hCnQ2cqu1DShUCd7/Szx/YxK4YnToHTRboOR7PtjWydEe+FZUO
upjGoMDyFI+51m/+Q3dz4JVZkLd+ThG5faOmGqlT98/Kqnfn2LXMrOQ8bowYuKGs
nZ7wcP57Skv3BJs5lbrqK5LO4YvWdIETKGHRgyQtjbO9wKS2FimbLtiHn60bG9d8
i3G3eyNnqOqZKbkmgQECgcEAgX9k4kDqK7IoNdk5Keypxvk5xUi+8rM2A52aRjer
m1a32/0EmV2+gggtg5h9K4xUdoaRfvnggx5XqMNoshp4Qm5nKu4bJavdO+us2HVA
urstNyvWaoQQJm26LAoG6u57DqmX6j0RnOUjL9OBgGiNDwqaek+QbqHSc0mrSH36
Nfo9+XOssR7sZbNzKRGLlWGP1ham7QTjf6wkMFMYozBZZ96NgNbPW+gWd/kZlFCe
3YUVwrqlblfFYykcpa1p1llz
-----END PRIVATE KEY-----

View File

@@ -16,7 +16,6 @@ openssl genrsa -out rsa_key/private.pem 3072
*/
#include "esp_ota_ops.h"
#include "esp_flash_partitions.h"
#include "esp_partition.h"
@@ -29,13 +28,13 @@ static const char *TAG = "ota_ws_esp";
static const esp_partition_t *update_partition = NULL;
static bool image_header_was_checked = false;
static esp_ota_handle_t update_handle = NULL;
static esp_ota_handle_t update_handle = 0;
// pre-encrypted handle
static esp_decrypt_handle_t enc_handle = NULL; // handle
static esp_decrypt_cfg_t enc_cfg = {0}; // cfg
static pre_enc_decrypt_arg_t enc_arg = {0}; // arg
static int tst_c=0;
// static int tst_c=0;
extern const char rsa_private_pem_start[] asm("_binary_private_pem_start");
extern const char rsa_private_pem_end[] asm("_binary_private_pem_end");
@@ -43,7 +42,7 @@ extern const char rsa_private_pem_end[] asm("_binary_private_pem_end");
esp_err_t start_ota_ws(void)
{
// return ESP_OK; // debug return
tst_c=0;
// tst_c=0;
esp_err_t err;
ESP_LOGI(TAG, "Starting OTA");
@@ -98,7 +97,7 @@ esp_err_t write_ota_ws(int enc_data_read, uint8_t *enc_ota_write_data)
enc_arg.data_in = (char *)enc_ota_write_data;
enc_arg.data_in_len = enc_data_read;
esp_err_t ret = esp_encrypted_img_decrypt_data(enc_handle, &enc_arg);
ESP_LOGI("OTA ENC ","ret=%x len=%d",ret,enc_arg.data_out_len);
// ESP_LOGI("OTA ENC ","ret=%x len=%d",ret,enc_arg.data_out_len);
if (ret == ESP_FAIL || ret == ESP_ERR_INVALID_ARG)
{
ESP_LOGE(TAG, "data decrypt err %x", ret);
@@ -126,8 +125,8 @@ esp_err_t write_ota_ws(int enc_data_read, uint8_t *enc_ota_write_data)
}
}
ret = esp_ota_write(update_handle, (const void *)ota_write_data, data_read);
tst_c += data_read;
ESP_LOGI("OTA WRITE","ret=%x len=%d tst_c=%d",ret,data_read,tst_c);
// tst_c += data_read;
// ESP_LOGI("OTA WRITE","ret=%x len=%d tst_c=%d",ret,data_read,tst_c);
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "esp_ota_write err");
@@ -147,8 +146,10 @@ esp_err_t end_ota_ws(void)
return ret;
}
ret = esp_ota_end(update_handle);
if (ret != ESP_OK) {
if (ret == ESP_ERR_OTA_VALIDATE_FAILED) {
if (ret != ESP_OK)
{
if (ret == ESP_ERR_OTA_VALIDATE_FAILED)
{
ESP_LOGE(TAG, "Image validation failed, image is corrupted");
abort_ota_ws();
return ret;
@@ -158,25 +159,36 @@ esp_err_t end_ota_ws(void)
return ret;
}
ret = esp_ota_set_boot_partition(update_partition);
if (ret != ESP_OK) {
if (ret != ESP_OK)
{
ESP_LOGE(TAG, "esp_ota_set_boot_partition failed (%s)!", esp_err_to_name(ret));
abort_ota_ws();
return ret;
}
if (enc_arg.data_out)
{ free(enc_arg.data_out);}
{
free(enc_arg.data_out);
}
return ESP_OK;
}
esp_err_t abort_ota_ws(void)
{
if (enc_handle)
{esp_encrypted_img_decrypt_abort(enc_handle);}
{
ESP_LOGI("abort", "abort cmd");
esp_encrypted_img_decrypt_abort(enc_handle);
}
if (update_handle)
{esp_ota_abort(update_handle);}
enc_handle = NULL;
update_handle = NULL;
{
esp_ota_abort(update_handle);
}
if (enc_arg.data_out)
{ free(enc_arg.data_out);}
{
free(enc_arg.data_out);
}
enc_handle = NULL;
update_handle = 0;
memset(&enc_arg, 0, sizeof(pre_enc_decrypt_arg_t));
return ESP_OK;
}
// false - rollback disable
@@ -186,8 +198,10 @@ bool check_ota_ws_rollback_enable(void)
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
esp_ota_img_states_t ota_state_running_part;
const esp_partition_t *running = esp_ota_get_running_partition();
if (esp_ota_get_state_partition(running, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
if (esp_ota_get_state_partition(running, &ota_state_running_part) == ESP_OK)
{
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY)
{
ESP_LOGI(TAG, "Running app has ESP_OTA_IMG_PENDING_VERIFY state");
return true;
}