mirror of
https://github.com/ok-home/ota_ws_update.git
synced 2025-11-13 22:03:27 +03:00
preencrypted EMBED_TEXTFILES
This commit is contained in:
@@ -14,6 +14,7 @@ if(CONFIG_OTA_PRE_ENCRYPTED_MODE)
|
|||||||
#esp_wifi
|
#esp_wifi
|
||||||
EMBED_FILES
|
EMBED_FILES
|
||||||
source/ota_ws_update.html
|
source/ota_ws_update.html
|
||||||
|
EMBED_TXTFILES
|
||||||
rsa_key/private.pem
|
rsa_key/private.pem
|
||||||
)
|
)
|
||||||
#openssl genrsa -out rsa_key/private.pem 3072
|
#openssl genrsa -out rsa_key/private.pem 3072
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ static bool image_header_was_checked = false;
|
|||||||
static esp_ota_handle_t update_handle = 0;
|
static esp_ota_handle_t update_handle = 0;
|
||||||
// pre-encrypted handle
|
// pre-encrypted handle
|
||||||
static esp_decrypt_handle_t enc_handle; // handle
|
static esp_decrypt_handle_t enc_handle; // handle
|
||||||
static esp_decrypt_cfg_t enc_cfg = {}; // cfg
|
//static esp_decrypt_cfg_t enc_cfg = {}; // cfg
|
||||||
static pre_enc_decrypt_arg_t enc_arg = {}; // arg
|
static pre_enc_decrypt_arg_t enc_arg = {}; // arg
|
||||||
|
|
||||||
extern const char rsa_private_pem_start[] asm("_binary_private_pem_start");
|
extern const char rsa_private_pem_start[] asm("_binary_private_pem_start");
|
||||||
@@ -75,6 +75,7 @@ esp_err_t start_ota_ws(void)
|
|||||||
|
|
||||||
image_header_was_checked = false;
|
image_header_was_checked = false;
|
||||||
|
|
||||||
|
esp_decrypt_cfg_t enc_cfg; // cfg
|
||||||
enc_cfg.rsa_priv_key = rsa_private_pem_start;
|
enc_cfg.rsa_priv_key = rsa_private_pem_start;
|
||||||
enc_cfg.rsa_priv_key_len = rsa_private_pem_end-rsa_private_pem_start;
|
enc_cfg.rsa_priv_key_len = rsa_private_pem_end-rsa_private_pem_start;
|
||||||
|
|
||||||
@@ -91,6 +92,7 @@ esp_err_t start_ota_ws(void)
|
|||||||
esp_err_t write_ota_ws(int enc_data_read, uint8_t *enc_ota_write_data)
|
esp_err_t write_ota_ws(int enc_data_read, uint8_t *enc_ota_write_data)
|
||||||
{
|
{
|
||||||
//return ESP_OK; // debug return
|
//return ESP_OK; // debug return
|
||||||
|
pre_enc_decrypt_arg_t enc_arg;
|
||||||
enc_arg.data_in = (char*)enc_ota_write_data;
|
enc_arg.data_in = (char*)enc_ota_write_data;
|
||||||
enc_arg.data_in_len = enc_data_read;
|
enc_arg.data_in_len = enc_data_read;
|
||||||
esp_err_t ret = esp_encrypted_img_decrypt_data(enc_handle, &enc_arg);
|
esp_err_t ret = esp_encrypted_img_decrypt_data(enc_handle, &enc_arg);
|
||||||
@@ -144,7 +146,6 @@ esp_err_t end_ota_ws(void)
|
|||||||
abort_ota_ws();
|
abort_ota_ws();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = esp_ota_end(update_handle);
|
ret = esp_ota_end(update_handle);
|
||||||
if (ret != ESP_OK) {
|
if (ret != ESP_OK) {
|
||||||
if (ret == ESP_ERR_OTA_VALIDATE_FAILED) {
|
if (ret == ESP_ERR_OTA_VALIDATE_FAILED) {
|
||||||
@@ -168,7 +169,10 @@ esp_err_t abort_ota_ws(void)
|
|||||||
{
|
{
|
||||||
esp_err_t ret = esp_encrypted_img_decrypt_abort(enc_handle);
|
esp_err_t ret = esp_encrypted_img_decrypt_abort(enc_handle);
|
||||||
if(ret)
|
if(ret)
|
||||||
{return ret;}
|
{
|
||||||
|
esp_ota_abort(update_handle);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
return esp_ota_abort(update_handle);
|
return esp_ota_abort(update_handle);
|
||||||
}
|
}
|
||||||
// false - rollback disable
|
// false - rollback disable
|
||||||
|
|||||||
@@ -171,13 +171,14 @@ static esp_err_t ota_ws_handler(httpd_req_t *req)
|
|||||||
}
|
}
|
||||||
if (strncmp(json_key, OTA_PROCESS_ROLLBACK, sizeof(OTA_PROCESS_ROLLBACK)) == 0) // process rollback &
|
if (strncmp(json_key, OTA_PROCESS_ROLLBACK, sizeof(OTA_PROCESS_ROLLBACK)) == 0) // process rollback &
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG,"rollback command %s %s",json_key,json_value);
|
|
||||||
if(strncmp(json_value,"true",sizeof("true")) == 0)
|
if(strncmp(json_value,"true",sizeof("true")) == 0)
|
||||||
{
|
{
|
||||||
|
ESP_LOGI(TAG,"Rollback and restart");
|
||||||
ret = rollback_ota_ws(true); // rollback and restart
|
ret = rollback_ota_ws(true); // rollback and restart
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
ESP_LOGI(TAG,"App veryfied, fix ota update");
|
||||||
ret = rollback_ota_ws(false); // app veryfied
|
ret = rollback_ota_ws(false); // app veryfied
|
||||||
}
|
}
|
||||||
goto _recv_ret;
|
goto _recv_ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user