#include #include #include #include "secure_api.h" #include "storage.h" #include "http_client.h" #include "constants.h" #include "esp_log.h" static const char *TAG = "secure_api"; static char *process_secure_request(const char *uri) { char *url = calloc(1, 255); assert(url); size_t orig_len = storage_get_secure_origin(url); assert(orig_len > 0); strcat(url + strlen(url), uri); ESP_LOGI(TAG, "HTTP request on %s", url); char *root_cat = calloc(1, ROOT_CA_MAX_BYTES); assert(root_cat); assert(storage_get_root_ca(root_cat) > 0); http_request_opts opts = { .url = url, .root_ca = root_cat}; char *res = http_client_exec(&opts); free(url); free(root_cat); return res; } enum DevEnrollmentStatus secure_api_get_device_enrollment_status() { ESP_LOGI(TAG, "Will check device enrollment status"); // Prepare URI char *uri = calloc(1, 255); assert(uri); sprintf(uri, "/devices_api/mgmt/enrollment_status?id="); assert(storage_get_dev_name(uri + strlen(uri)) > 0); char *res = process_secure_request(uri); free(uri); if (res == NULL) { ESP_LOGE(TAG, "Failed to query device enrollment status!"); return DevEnrollError; } // TODO : parse reponse printf("response = %s\n", res); free(res); return DevEnrollError; }