Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
jwt.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Linaro Ltd
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DATA_JWT_H_
8#define ZEPHYR_INCLUDE_DATA_JWT_H_
9
10#include <zephyr/types.h>
11#include <stdbool.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
34 char *base;
35
38 char *buf;
39
41 size_t len;
42
48
49 /* Pending bytes yet to be converted to base64. */
50 unsigned char wip[3];
51
52 /* Number of pending bytes. */
54};
55
71int jwt_init_builder(struct jwt_builder *builder,
72 char *buffer,
73 size_t buffer_size);
74
78int jwt_add_payload(struct jwt_builder *builder,
79 int32_t exp,
80 int32_t iat,
81 const char *aud);
82
86int jwt_sign(struct jwt_builder *builder,
87 const char *der_key,
88 size_t der_key_len);
89
90
91static inline size_t jwt_payload_len(struct jwt_builder *builder)
92{
93 return (builder->buf - builder->base);
94}
95
96#ifdef __cplusplus
97}
98#endif
99
104#endif /* ZEPHYR_INCLUDE_DATA_JWT_H_ */
int jwt_add_payload(struct jwt_builder *builder, int32_t exp, int32_t iat, const char *aud)
add JWT primary payload.
int jwt_sign(struct jwt_builder *builder, const char *der_key, size_t der_key_len)
Sign the JWT token.
static size_t jwt_payload_len(struct jwt_builder *builder)
Definition: jwt.h:91
int jwt_init_builder(struct jwt_builder *builder, char *buffer, size_t buffer_size)
Initialize the JWT builder.
__INT32_TYPE__ int32_t
Definition: stdint.h:74
JWT data tracking.
Definition: jwt.h:32
char * base
The base of the buffer we are writing to.
Definition: jwt.h:34
unsigned char wip[3]
Definition: jwt.h:50
char * buf
The place in this buffer where we are currently writing.
Definition: jwt.h:38
int pending
Definition: jwt.h:53
size_t len
The length remaining to write.
Definition: jwt.h:41
bool overflowed
Flag that is set if we try to write past the end of the buffer.
Definition: jwt.h:47