40 lines
856 B
C
40 lines
856 B
C
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
#include "jwt.h"
|
|
#include "dev_name.h"
|
|
|
|
#include "esp_log.h"
|
|
|
|
static const char *TAG = "jwt";
|
|
|
|
char *jwt_gen(cJSON *payload)
|
|
{
|
|
char *kid = dev_name();
|
|
if (!kid)
|
|
{
|
|
ESP_LOGE(TAG, "Failed to allocated memory to store device name!");
|
|
return NULL;
|
|
}
|
|
|
|
cJSON *header_json = cJSON_CreateObject();
|
|
if (!header_json)
|
|
return NULL;
|
|
cJSON_AddStringToObject(header_json, "alg", "ES256");
|
|
cJSON_AddStringToObject(header_json, "typ", "JWT");
|
|
cJSON_AddStringToObject(header_json, "kid", kid);
|
|
|
|
char *header = cJSON_PrintUnformatted(header_json);
|
|
free(kid);
|
|
cJSON_Delete(header_json);
|
|
if (!header)
|
|
{
|
|
ESP_LOGE(TAG, "Failed to generate JSON header!");
|
|
return NULL;
|
|
}
|
|
|
|
printf("header: %s\n", header);
|
|
|
|
return strdup("TODO:)");
|
|
} |