Manage to perfom secure request
This commit is contained in:
62
esp32_device/main/secure_api.c
Normal file
62
esp32_device/main/secure_api.c
Normal file
@ -0,0 +1,62 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#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;
|
||||
}
|
Reference in New Issue
Block a user