WIP enroll device

This commit is contained in:
2024-08-23 21:00:18 +02:00
parent dd0a957a63
commit 3b7e2f9a0c
8 changed files with 132 additions and 9 deletions

View File

@ -98,11 +98,49 @@ void app_main(void)
ESP_LOGI(TAG, "Current root CA:\n%s", root_ca);
free(root_ca);
// Check current device enrollment status
ESP_LOGI(TAG, "Check enrollment status");
int status = secure_api_get_device_enrollment_status();
ESP_LOGI(TAG, "Current enrollment status: %d\n", status);
bool validated = false;
while (!validated)
{
// Check current device enrollment status
ESP_LOGI(TAG, "Check enrollment status");
enum DevEnrollmentStatus status = secure_api_get_device_enrollment_status();
ESP_LOGI(TAG, "Current enrollment status: %d\n", status);
switch (status)
{
case DevEnrollError:
ESP_LOGE(TAG, "Failed to retrieve device enrollment status!");
break;
case DevEnrollPending:
ESP_LOGI(TAG, "Device enrolled, but not validated yet. Please accept device on central system web UI");
break;
case DevEnrollValidated:
ESP_LOGI(TAG, "Device enrolled and validated. Ready to operate!");
validated = true;
break;
case DevEnrollUnknown:
ESP_LOGI(TAG, "Device unknown, need to enroll!");
// TODO : remove certificate if present
if (secure_api_enroll_device() != 0)
{
ESP_LOGE(TAG, "Failed to enroll device!");
reboot();
}
break;
}
// Wait before next try
system_sleep(60);
};
// TODO : retrieve certificate if missing
ESP_LOGI(TAG, "Starting main loop");
system_sleep(120);
reboot();