Generate unsigned JWT
This commit is contained in:
parent
c55c55d56d
commit
fa431857ee
@ -12,6 +12,7 @@ static const char *TAG = "jwt";
|
||||
|
||||
char *jwt_gen(cJSON *payload)
|
||||
{
|
||||
// Generate header
|
||||
char *kid = dev_name();
|
||||
if (!kid)
|
||||
{
|
||||
@ -44,9 +45,41 @@ char *jwt_gen(cJSON *payload)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
printf("header = %s\n", header_b64);
|
||||
// Encode body to JSON
|
||||
char *body_json = cJSON_PrintUnformatted(payload);
|
||||
if (!body_json)
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to encode body to JSON!");
|
||||
free(header_b64);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *body_b64 = crypto_encode_base64_safe_url(body_json, strlen(body_json));
|
||||
free(body_json);
|
||||
if (!body_b64)
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to encode body to base64!");
|
||||
free(header_b64);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Assemble unsigned JWT parts
|
||||
char *unsigned_jwt = calloc(1, strlen(header_b64) + strlen(body_b64) + 2);
|
||||
if (!unsigned_jwt)
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to allocate memory to store unsigned JWT!");
|
||||
free(header_b64);
|
||||
free(body_b64);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
sprintf(unsigned_jwt, "%s.%s", header_b64, body_b64);
|
||||
free(header_b64);
|
||||
free(body_b64);
|
||||
|
||||
// TODO : wip
|
||||
printf("unsigned = %s\n", unsigned_jwt);
|
||||
free(unsigned_jwt);
|
||||
|
||||
// TODO : continue
|
||||
return strdup("TODO:)");
|
||||
|
Loading…
Reference in New Issue
Block a user